Package javacard.security
Interface RSAPrivateCrtKey
-
- All Superinterfaces:
Key
,PrivateKey
public interface RSAPrivateCrtKey extends PrivateKey
TheRSAPrivateCrtKey
interface is used to sign data using the RSA algorithm in its Chinese Remainder Theorem form. It may also be used by thejavacardx.crypto.Cipher
class to encrypt/decrypt messages.Let S = md mod n, where m is the data to be signed, d is the private key exponent, and n is private key modulus composed of two prime numbers p and q. The following names are used in the initializer methods in this interface:
- P, the prime factor p
- Q, the prime factor q
- PQ = q-1 mod p
- DP1 = d mod (p - 1)
- DQ1 = d mod (q - 1)
When all five components (P,Q,PQ,DP1,DQ1) of the key are set, the key is initialized and ready for use.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description short
getDP1(byte[] buffer, short offset)
Returns the value of the DP1 parameter in plain text.short
getDQ1(byte[] buffer, short offset)
Returns the value of the DQ1 parameter in plain text.short
getP(byte[] buffer, short offset)
Returns the value of the P parameter in plain text.short
getPQ(byte[] buffer, short offset)
Returns the value of the PQ parameter in plain text.short
getQ(byte[] buffer, short offset)
Returns the value of the Q parameter in plain text.void
setDP1(byte[] buffer, short offset, short length)
Sets the value of the DP1 parameter.void
setDQ1(byte[] buffer, short offset, short length)
Sets the value of the DQ1 parameter.void
setP(byte[] buffer, short offset, short length)
Sets the value of the P parameter.void
setPQ(byte[] buffer, short offset, short length)
Sets the value of the PQ parameter.void
setQ(byte[] buffer, short offset, short length)
Sets the value of the Q parameter.-
Methods inherited from interface javacard.security.Key
clearKey, getSize, getType, isInitialized
-
-
-
-
Method Detail
-
setP
void setP(byte[] buffer, short offset, short length) throws CryptoException
Sets the value of the P parameter. The plain text data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input P parameter data is copied into the internal representation.Note:
- If the key object implements the
javacardx.crypto.KeyEncryption
interface and theCipher
object specified viasetKeyCipher()
is notnull
, the P parameter value is decrypted using theCipher
object.
- Parameters:
buffer
- the input bufferoffset
- the offset into the input buffer at which the parameter value beginslength
- the length of the parameter- Throws:
CryptoException
- with the following reason code:CryptoException.ILLEGAL_VALUE
if the input parameter data length is inconsistent with the implementation or if input data decryption is required and fails.
- If the key object implements the
-
setQ
void setQ(byte[] buffer, short offset, short length) throws CryptoException
Sets the value of the Q parameter. The plain text data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input Q parameter data is copied into the internal representation.Note:
- If the key object implements the
javacardx.crypto.KeyEncryption
interface and theCipher
object specified viasetKeyCipher()
is notnull
, the Q parameter value is decrypted using theCipher
object.
- Parameters:
buffer
- the input bufferoffset
- the offset into the input buffer at which the parameter value beginslength
- the length of the parameter- Throws:
CryptoException
- with the following reason code:CryptoException.ILLEGAL_VALUE
if the input parameter data length is inconsistent with the implementation or if input data decryption is required and fails.
- If the key object implements the
-
setDP1
void setDP1(byte[] buffer, short offset, short length) throws CryptoException
Sets the value of the DP1 parameter. The plain text data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input DP1 parameter data is copied into the internal representation.Note:
- If the key object implements the
javacardx.crypto.KeyEncryption
interface and theCipher
object specified viasetKeyCipher()
is notnull
, the DP1 parameter value is decrypted using theCipher
object.
- Parameters:
buffer
- the input bufferoffset
- the offset into the input buffer at which the parameter value beginslength
- the length of the parameter- Throws:
CryptoException
- with the following reason code:CryptoException.ILLEGAL_VALUE
if the input parameter data length is inconsistent with the implementation or if input data decryption is required and fails.
- If the key object implements the
-
setDQ1
void setDQ1(byte[] buffer, short offset, short length) throws CryptoException
Sets the value of the DQ1 parameter. The plain text data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input DQ1 parameter data is copied into the internal representation.Note:
- If the key object implements the
javacardx.crypto.KeyEncryption
interface and theCipher
object specified viasetKeyCipher()
is notnull
, the DQ1 parameter value is decrypted using theCipher
object.
- Parameters:
buffer
- the input bufferoffset
- the offset into the input buffer at which the parameter value beginslength
- the length of the parameter- Throws:
CryptoException
- with the following reason code:CryptoException.ILLEGAL_VALUE
if the input parameter data length is inconsistent with the implementation or if input data decryption is required and fails.
- If the key object implements the
-
setPQ
void setPQ(byte[] buffer, short offset, short length) throws CryptoException
Sets the value of the PQ parameter. The plain text data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input PQ parameter data is copied into the internal representation.Note:
- If the key object implements the
javacardx.crypto.KeyEncryption
interface and theCipher
object specified viasetKeyCipher()
is notnull
, the PQ parameter value is decrypted using theCipher
object.
- Parameters:
buffer
- the input bufferoffset
- the offset into the input buffer at which the parameter value beginslength
- the length of the parameter- Throws:
CryptoException
- with the following reason code:CryptoException.ILLEGAL_VALUE
if the input parameter data length is inconsistent with the implementation or if input data decryption is required and fails.
- If the key object implements the
-
getP
short getP(byte[] buffer, short offset)
Returns the value of the P parameter 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 bufferoffset
- the offset into the output buffer at which the parameter value begins- Returns:
- the byte length of the P parameter value returned
- Throws:
CryptoException
- with the following reason code:CryptoException.UNINITIALIZED_KEY
if the value of P parameter has not been successfully initialized since the time the initialized state of the key was set to false.
- See Also:
Key
-
getQ
short getQ(byte[] buffer, short offset)
Returns the value of the Q parameter 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 bufferoffset
- the offset into the output buffer at which the parameter value begins- Returns:
- the byte length of the Q parameter value returned
- Throws:
CryptoException
- with the following reason code:CryptoException.UNINITIALIZED_KEY
if the value of Q parameter has not been successfully initialized since the time the initialized state of the key was set to false.
- See Also:
Key
-
getDP1
short getDP1(byte[] buffer, short offset)
Returns the value of the DP1 parameter 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 bufferoffset
- the offset into the output buffer at which the parameter value begins- Returns:
- the byte length of the DP1 parameter value returned
- Throws:
CryptoException
- with the following reason code:CryptoException.UNINITIALIZED_KEY
if the value of DP1 parameter has not been successfully initialized since the time the initialized state of the key was set to false.
- See Also:
Key
-
getDQ1
short getDQ1(byte[] buffer, short offset)
Returns the value of the DQ1 parameter 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 bufferoffset
- the offset into the output buffer at which the parameter value begins- Returns:
- the byte length of the DQ1 parameter value returned
- Throws:
CryptoException
- with the following reason code:CryptoException.UNINITIALIZED_KEY
if the value of DQ1 parameter has not been successfully initialized since the time the initialized state of the key was set to false.
- See Also:
Key
-
getPQ
short getPQ(byte[] buffer, short offset)
Returns the value of the PQ parameter 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 bufferoffset
- the offset into the output buffer at which the parameter value begins- Returns:
- the byte length of the PQ parameter value returned
- Throws:
CryptoException
- with the following reason code:CryptoException.UNINITIALIZED_KEY
if the value of PQ parameter has not been successfully initialized since the time the initialized state of the key was set to false.
- See Also:
Key
-
-