Java Card 2.1 Platform
Final Revision 1.0

javacard.security
Interface RSAPublicKey


public abstract interface RSAPublicKey
extends PublicKey

The RSAPublicKey is used to verify signatures on signed data using the RSA algorithm. It may also used by the javacardx.crypto.Cipher class to encrypt/decrypt messages.

When both the modulus and exponent of the key are set, the key is initialized and ready for use.

See Also:
RSAPrivateKey, RSAPrivateCrtKey, KeyBuilder, Signature, Cipher, KeyEncryption

Method Summary
 short getExponent(byte[] buffer, short offset)
          Returns the private exponent value of the key in plain text.
 short getModulus(byte[] buffer, short offset)
          Returns the modulus value of the key in plain text.
 void setExponent(byte[] buffer, short offset, short length)
          Sets the public exponent value of the key.
 void setModulus(byte[] buffer, short offset, short length)
          Sets the modulus value of the key.
 
Methods inherited from interface javacard.security.Key
clearKey, getSize, getType, isInitialized
 

Method Detail

setModulus

public void setModulus(byte[] buffer,
                       short offset,
                       short length)
                throws CryptoException
Sets the modulus value of the key. The plaintext data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input modulus data is copied into the internal representation.
Parameters:
buffer - the input buffer
offset - the offset into the input buffer at which the modulus value begins
length - the byte length of the modulus
Throws:
CryptoException - with the following reason code:
  • CryptoException.ILLEGAL_VALUE if the input modulus data length is inconsistent with the implementation or if input data decryption is required and fails.

Note:

  • If the key object implements the javacardx.crypto.KeyEncryption interface and the Cipher object specified via setKeyCipher() is not null, the modulus value is decrypted using the Cipher object.

setExponent

public void setExponent(byte[] buffer,
                        short offset,
                        short length)
                 throws CryptoException
Sets the public exponent value of the key. The plaintext data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input exponent data is copied into the internal representation.
Parameters:
buffer - the input buffer
offset - the offset into the input buffer at which the exponent value begins
length - the byte length of the exponent
Throws:
CryptoException - with the following reason code:
  • CryptoException.ILLEGAL_VALUE if the input exponent data length is inconsistent with the implementation or if input data decryption is required and fails.

Note:

  • If the key object implements the javacardx.crypto.KeyEncryption interface and the Cipher object specified via setKeyCipher() is not null, the exponent value is decrypted using the Cipher object.

getModulus

public short getModulus(byte[] buffer,
                        short offset)
Returns the modulus value of the key in plain text. The data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte).
Parameters:
buffer - the output buffer
offset - the offset into the input buffer at which the modulus value starts
Returns:
the byte length of the modulus value returned

getExponent

public short getExponent(byte[] buffer,
                         short offset)
Returns the private exponent value of the key in plain text. The data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte).
Parameters:
buffer - the output buffer
offset - the offset into the output buffer at which the exponent value begins
Returns:
the byte length of the public exponent returned

Submit a bug or feature

Java and Java Card are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1999 Sun Microsystems, Inc.
901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
All Rights Reserved.