|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--net.rim.device.api.crypto.encoder.SignatureEncoder
Defines encode signatures produced by the SignatureSigner classes.
The details of creating and using the appropriate encoding algorithm are left to SignatureEncoder and are
completely transparent to the developer.
Encoding Signatures
Encoding a signature simply involves calling the public static encode() method with a
SignatureSigner object and a string that contains the requested encoding algorithm.
For example, to encode an ECDSASignatureSigner using X509 encoding, code similar to the following would be used:
PrivateKey privateKey = ...;
SignatureSigner signer = new ECDSASignatureSigner( privateKey );
String message = "Buy 10000 shares of Jabroni Jeans";
signer.update( message );
EncodedSignature encodedSignature = SignatureEncoder.encode( signer, "X509" );
where signer is a valid ECDSASignatureSigner object that has been created with the appropriate
parameters.
Decoding Signatures
Decoding a signature involves calling the public static decode() method in this class with an
EncodedSignature object and the public key to use for verification. Decoding an ECDSA signature using the
X509 encoding algorithm can be accomplished by using code similar to the following:
PublicKey publicKey = ...;
byte[] encodedSignatureData = ...;
SignatureDecoder decoder = SignatureDecoder.decode( encodedSignatureData, "X509" );
SignatureVerifier verifier = decoder.getVerifier( publicKey );
Only the encoded signature and encoding algorithm into decode. The user gets back
a SignatureDecoder object which they can then pass a public key into to create a signature verifier. The user
can also call the initialize function of the decoder in order to change the digest used by the signature
verifier.
Supported Encoding Algorithms
Please see here for a list of the RIM supplied encoding algorithms. Currently, RIM provides the following signature encoding algorithms, which can be accessed with the specifed string :
X509 encoding use the encoding string "X509" WTLS encoding use the encoding string "WTLS" CMS encoding use the encoding string "CMS"
The X509 encoding is defined in RFC 2459. The WTLS encoding is found in WAP-199-WTLS from Feb 2000. Finally, the CMS encoding is defined in RFC 2630.
For algorithms not found in this list, a developer can implement additional signature encoding algorithms that can be integrated into the Crypto API.
See the tutorial on Adding Encoders.
EncodedSignature,
SignatureDecoder,
DecodedSignature| Constructor Summary |
| Method Summary | ||
|
static EncodedSignature |
encode(SignatureSigner signer,
String encodingAlgorithm)
Takes in the provided signature signer and returns an encoded signature using the specified encoding algorithm. |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
| Method Detail |
public static EncodedSignature encode(SignatureSigner signer, String encodingAlgorithm) throws NoSuchAlgorithmException, CryptoTokenException, CryptoUnsupportedOperationException
signer - The signature signer to use for signing.encodingAlgorithm - A String representing the encoding algorithm to use such as "X509".NoSuchAlgorithmException - Thrown if the encoding algorithm cannot
be found.CryptoTokenException - Thrown if an error occurs with the crypto
token or the crypto token is invalid.CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Copyright 1999-2002 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.