**javacard.security** ====Interface RSAPrivateKey ==== **All Superinterfaces:** [[javacard:java-card-api:Key|Key]] , [[javacard:java-card-api:PrivateKey|PrivateKey]] ---- *[[javacard:java-card-api:privatekey|PrivateKey]] \\ The RSAPrivateKey class is used to sign data using the RSA algorithm in its modulus/exponent form. It may also be 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:**[[javacard:java-card-api:RSAPublicKey|RSAPublicKey]] , [[javacard:java-card-api:RSAPrivateCrtKey|RSAPrivateCrtKey]] , [[javacard:java-card-api:KeyBuilder|KeyBuilder]] , [[javacard:java-card-api:Signature|Signature]] , [[javacard:java-card-api:Cipher|javacardx.crypto.Cipher]] , [[javacard:java-card-api:KeyEncryption|javacardx.crypto.KeyEncryption]] ---- ^ Method Summary ^^ | ** short** | **[[javacard:java-card-api:RSAPrivateKey#getExponent(byte[], short)|getExponent]] **(byte[] buffer,short offset)          Returns the private exponent value of the key in plain text. | | ** short** | **[[javacard:java-card-api:RSAPrivateKey#getModulus(byte[], short)|getModulus]] **(byte[] buffer,short offset)          Returns the modulus value of the key in plain text. | | ** void** | **[[javacard:java-card-api:RSAPrivateKey#setExponent(byte[], short, short)|setExponent]] **(byte[] buffer,short offset,short length)          Sets the private exponent value of the key. | | ** void** | **[[javacard:java-card-api:RSAPrivateKey#setModulus(byte[], short, short)|setModulus]] **(byte[] buffer,short offset,short length)          Sets the modulus value of the key. |   ^ Methods inherited from interface javacard.security.Key ^ | [[javacard:java-card-api:Key#clearKey()|clearKey]] , [[javacard:java-card-api:Key#getSize()|getSize]] , [[javacard:java-card-api:Key#getType()|getType]] , [[javacard:java-card-api:Key#isInitialized()|isInitialized]] |   ^ Method Detail ^ === setModulus === void **setModulus**(byte[] buffer, short offset, short length) throws [[javacard:java-card-api:CryptoException|CryptoException]] Sets the modulus value of the key. The plain text 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. 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.// \\ **Parameters:**buffer - the input buffer offset - the offset into the input buffer at which the modulus value begins length - the length of the modulus **Throws:** [[javacard:java-card-api:CryptoException|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. \\ ---- === setExponent === void **setExponent**(byte[] buffer, short offset, short length) throws [[javacard:java-card-api:CryptoException|CryptoException]] Sets the private exponent value of the key. The plain text 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. 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.// \\ **Parameters:**buffer - the input buffer offset - the offset into the input buffer at which the exponent value begins length - the length of the exponent **Throws:** [[javacard:java-card-api:CryptoException|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. \\ ---- === getModulus === 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 output buffer at which the modulus value starts **Returns:**the byte length of the modulus value returned **Throws:** [[javacard:java-card-api:CryptoException|CryptoException]] - with the following reason code: \\ *CryptoException.UNINITIALIZED_KEY if the modulus value of the key has not been successfully initialized since the time the initialized state of the key was set to false. \\ **See Also:**[[javacard:java-card-api:Key|Key]] ---- === getExponent === 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 private exponent value returned **Throws:** [[javacard:java-card-api:CryptoException|CryptoException]] - with the following reason code: \\ *CryptoException.UNINITIALIZED_KEY if the private exponent value of the key has not been successfully initialized since the time the initialized state of the key was set to false. \\ **See Also:**[[javacard:java-card-api:Key|Key]]