|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Object
|
+--org.logi.crypto.Crypto
|
+--org.logi.crypto.keys.K
|
+--org.logi.crypto.keys.RSAPublicKey
An instance of this class handles a single public RSA key.
| Fields inherited from class org.logi.crypto.Crypto |
BIT, cdsPath, EMPTY_ARRAY, FOUR, keySource, NIBBLE, ONE, primeCertainty, random, TWO, ZERO |
| Fields inherited from interface java.security.Key |
serialVersionUID |
| Fields inherited from interface java.security.PublicKey |
serialVersionUID |
| Constructor Summary | |
RSAPublicKey(java.math.BigInteger e,
java.math.BigInteger n)
Create a new public RSA key (e,n). |
|
| Method Summary | |
BlindFingerprint |
blind(Fingerprint fp,
BlindingFactor bf)
Blind a fingerprint with a public key and the given blinding factor in preparation for blindly signing the fingerprint with the private key. |
int |
cipherBlockSize()
Returns the size of the blocks that can be decrypted in one call to decrypt(). |
BlindingFactor |
createBlindingFactor()
Create a new blinding factor suitable for blinding a fingerprint before being signed with the private key in the pair. |
void |
encrypt(byte[] source,
int i,
byte[] dest,
int j)
Encrypt one block of data. |
boolean |
equals(java.lang.Object o)
Return true iff the two keys are equivalent. |
java.lang.String |
getAlgorithm()
The name of the algorithm is "RSA". |
byte[] |
getEncoded()
Return encoded version. |
Fingerprint |
getFingerprint()
Return the key's fingerprint using the default hash function. |
Fingerprint |
getFingerprint(java.lang.String algorithm)
Return the key's fingerprint using the specified hash function. |
java.lang.String |
getFormat()
Returns the name of the key-encoding format. |
java.math.BigInteger |
getModulus()
Return the RSA modulus. |
java.math.BigInteger |
getPublicExponent()
Return the RSA exponent. |
int |
getSize()
Return the size of the key modulo in bits. |
int |
hashCode()
Return a hash-code based on the keys SHA1 fingerprint. |
boolean |
matches(Key key)
Check if a key mathces this. |
Fingerprint |
matchFingerprint()
Returns the default fingerprint of the matching key in the key-pair. |
Fingerprint |
matchFingerprint(java.lang.String algorithm)
Returns the default fingerprint of the matching key in the key-pair. |
static RSAPublicKey |
parseCDS(java.lang.String[] param)
Used by Crypto.fromString when parsing a CDS. |
int |
plainBlockSize()
Returns the size of the blocks that can be encrypted in one call to encrypt(). |
void |
prettyPrint(java.io.PrintWriter out,
int ind,
int rec)
Print this object to out, indented with ind tabs, going down at most rec levels of recursion. |
int |
signatureSize()
Returns the length of the signature in bytes. |
int |
signBlockSize()
Returns the maximum size in bytes of the fingerprint that can be signed. |
java.lang.String |
toString()
Return a CDS for this key. |
Signature |
unBlind(BlindSignature bs,
BlindingFactor bf)
Unblind a blind signature using the same blinding factor that was used to blind the original fingerprint. |
boolean |
verify(Signature s,
Fingerprint fp)
Verify a Signature on a Fingerprint with a public key. |
| Methods inherited from class org.logi.crypto.Crypto |
binString, binString, ensureArrayLength, ensureArrayLength, equal, equalRelaxed, equalSub, fromHexNibble, fromHexString, fromString, fromString, hexString, hexString, hexString, hexString, hexString, initRandom, initRandom, makeClass, makeInt, makeLong, makeSessionKey, pastSpace, pickBits, pickBits, prettyPrint, readBlock, readInt, trimArrayLength, trimArrayLength, trimLeadingZeroes, writeBytes, writeBytes, writeInt |
| Methods inherited from class java.lang.Object |
getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.logi.crypto.keys.Key |
getFingerprint, getFingerprint, hashCode, matchFingerprint, matchFingerprint |
| Methods inherited from interface org.logi.crypto.io.PrettyPrintable |
prettyPrint |
| Methods inherited from interface java.security.Key |
getEncoded, getFormat |
| Constructor Detail |
public RSAPublicKey(java.math.BigInteger e,
java.math.BigInteger n)
(e,n).| Method Detail |
public static RSAPublicKey parseCDS(java.lang.String[] param)
throws InvalidCDSException
A valid CDS can be created by calling the toString() method.
InvalidCDSException - if the CDS is malformed.Crypto.fromString(String)public int getSize()
getSize in interface Keypublic java.lang.String getAlgorithm()
getAlgorithm in interface Keypublic java.math.BigInteger getPublicExponent()
getPublicExponent in interface java.security.interfaces.RSAPublicKeypublic java.math.BigInteger getModulus()
getModulus in interface java.security.interfaces.RSAKeypublic java.lang.String toString()
toString in class java.lang.ObjectCrypto.fromString(java.io.Reader)
public void prettyPrint(java.io.PrintWriter out,
int ind,
int rec)
throws java.io.IOException
prettyPrint in interface PrettyPrintableprettyPrint in class Cryptopublic boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic final boolean matches(Key key)
matches in interface Keypublic int plainBlockSize()
plainBlockSize in interface EncryptionKeypublic int cipherBlockSize()
cipherBlockSize in interface EncryptionKey
public void encrypt(byte[] source,
int i,
byte[] dest,
int j)
source starting at offset i and
ciphertext is written to dest, starting at
offset j.
The amount of data read and written will match the values returned
by plainBlockSize() and cipherBlockSize().
encrypt in interface EncryptionKeypublic int signBlockSize()
signBlockSize in interface VerificationKeypublic int signatureSize()
signatureSize in interface VerificationKey
public boolean verify(Signature s,
Fingerprint fp)
throws CryptoException
The method returns true iff s is a signature for
fp created with the mathcing private key.
verify in interface VerificationKeyKeyException - if this is not a public keypublic BlindingFactor createBlindingFactor()
createBlindingFactor in interface BlindingKey
public BlindFingerprint blind(Fingerprint fp,
BlindingFactor bf)
throws KeyException
blind in interface BlindingKeyKeyException - if you try to blind with a private keyKeyException - if the BlindingFactor is not an RSABlindingFactor
public Signature unBlind(BlindSignature bs,
BlindingFactor bf)
throws KeyException
unBlind in interface BlindingKeyKeyException - if there are problems, depending on the implementing class.public final Fingerprint getFingerprint()
getFingerprint in interface Key
public final Fingerprint getFingerprint(java.lang.String algorithm)
throws InvalidCDSException
getFingerprint in interface KeyInvalidCDSException - if the specified hash function is not
available.public Fingerprint matchFingerprint()
matchFingerprint in interface Key
public Fingerprint matchFingerprint(java.lang.String algorithm)
throws InvalidCDSException
matchFingerprint in interface KeyInvalidCDSException - if the specified hash function is not
available.public final int hashCode()
hashCode in interface KeyhashCode in class java.lang.Objectpublic byte[] getEncoded()
getEncoded in interface java.security.Keypublic java.lang.String getFormat()
getFormat in interface java.security.Key
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
Copyright (c) 1997-2001 Logi Ragnarsson - Distributed under the GPL