| Prev Class | Next Class | Frames | No Frames |
| Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
Signaturecryptix.provider.rsa.Any_RSA_PKCS1Signaturepublic abstract class Any_RSA_PKCS1Signatureextends SignatureConstructor Summary | |
| |
Method Summary | |
protected Object |
|
protected void |
|
protected void |
|
protected void |
|
protected byte[] |
|
protected void |
|
protected void |
|
protected boolean |
|
protected abstract byte[] |
|
protected Any_RSA_PKCS1Signature(String mdAlgorithm)
Constructor for an Any_RSA_PKCS1Signature.
- Parameters:
mdAlgorithm- the standard JCA algorithm name of the message digest to be used.
protected Object engineGetParameter(String param)
throws InvalidParameterExceptionprotected void engineInitSign(PrivateKey key)
throws InvalidKeyExceptionSPI: Initializes this signature object for signing, using the given private key.
- Parameters:
key- the private key to be used to generate signatures.
protected void engineInitVerify(PublicKey key)
throws InvalidKeyExceptionSPI: Initializes this signature object for verification, using the given public key.
- Parameters:
key- the public key this signature is assumed to have been generated with.
protected void engineSetParameter(String param,
Object value)
throws InvalidParameterExceptionprotected byte[] engineSign()
throws SignatureExceptionTerminates the update process and returns the signature bytes of all the data signed so far. NOTES: Sun's documentation talks about the bytes returned being X.509-encoded. For this RSA/PKCS#1 implementation, they conform to PKCS#1 section 10. Practically, the return value will be formed by concatenating a leading NULL byte, a block type BT, a padding block PS, another NULLbyte, and finally a data block D; ie:return = 0x00 || BT || PS || 0x00 || D.For signing, PKCS#1 block type 01 encryption-block formatting scheme is employed. The block type BT is a single byte valued 0x01 and the padding block PS is enough 0xFF bytes to make the length of the complete RSA Multi Precision Integer equal to the length of the public modulus. The data block D consists of the MIC -- Message Integrity Check, or message digest value-- and the MIC algorithm ASN.1 encoded identifier. The formal syntax in ASN.1 notation is:SEQUENCE { digestAlgorithm AlgorithmIdentifier, digest OCTET STRING } AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL }
- Returns:
- the signature bytes of the signing operation's result.
protected void engineUpdate(byte b)
throws SignatureExceptionUpdates the data to be signed or verified, using one byte.
- Parameters:
b- the byte to use for the update process.
protected void engineUpdate(byte[] in,
int offset,
int length)
throws SignatureExceptionUpdates the data to be signed or verified, using the specified sub-array of bytes, starting at the specified offset.
- Parameters:
in- the array of bytes.offset- the offset to start from in in.length- the number of bytes to use, starting at offset.
protected boolean engineVerify(byte[] signature)
throws SignatureExceptionTerminates the update process and verifies that the passed signature equals that of a generated one based on the updated data so far. NOTES: Sun's documentation talks about the bytes received being X.509-encoded. For this RSA/PKCS#1 implementation, the bytes received are assumed to conform to PKCS#1 section 10, or have been generated by a previous invocation of theengineSignmethod.
- Parameters:
signature- the signature bytes to be verified.
- Returns:
- true if the signature was verified successfully, false otherwise.
protected abstract byte[] getAlgorithmEncoding()
Returns the ASN.1 bytes of the AlgorithmIdentifier token described inengineSign()method above.
- Returns:
- the AlgorithmIdentifier bytes.