|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.rim.device.api.crypto.DHCryptoToken
public abstract class DHCryptoToken
An interface for DH cryptographic tokens to implement.
Note: This class must be extended in order to override the default implementation.
Note: It is considered good practice to implement the equals and hashCode methods when extending this class. Otherwise, odd behaviour can occur.
Details on implementing for smart cards.
DHCryptoSystem,
DHPublicKey,
DHPrivateKey| Field Summary |
|---|
| Fields inherited from interface net.rim.device.api.crypto.AsymmetricCryptoToken |
|---|
KEY_GENERATION, PRIVATE_KEY_OPERATION, PUBLIC_KEY_OPERATION |
| Constructor Summary | ||
|---|---|---|
|
protected |
DHCryptoToken()
Creates a new DHCryptoToken object. |
| Method Summary | ||
|---|---|---|
|
DHKeyPair |
createDHKeyPair(CryptoTokenCryptoSystemData cryptoTokenData)
Returns a DH key pair. |
|
void |
deleteDHPrivateKey(CryptoTokenPrivateKeyData data)
Delete the specified key on the crypto token. |
|
void |
deleteDHPublicKey(CryptoTokenPublicKeyData data)
Delete the specified key on the crypto token. |
|
byte[] |
extractDHPrivateKeyData(CryptoTokenPrivateKeyData cryptoTokenData)
Returns the private key data. |
|
byte[] |
extractDHPublicKeyData(CryptoTokenPrivateKeyData cryptoTokenData)
Returns the public key data. |
|
byte[] |
extractDHPublicKeyData(CryptoTokenPublicKeyData cryptoTokenData)
Returns the public key data. |
|
byte[] |
generateDHSharedSecret(CryptoTokenCryptoSystemData cryptoSystemData,
CryptoTokenPrivateKeyData localPrivateKeyData,
byte[] remotePublicKeyData,
boolean useCofactor)
Generates the shared secret using a given public key (from another party) and a private key. |
|
String |
getAlgorithm()
Returns the algorithm supported by this token, ie "DH". |
|
int |
getDHCryptoSystemBitLength(CryptoTokenCryptoSystemData cryptoTokenData)
Returns the number of bits (aka the "strength") of the crypto system, eg 1024. |
|
CryptoTokenCryptoSystemData |
getDHCryptoSystemData(byte[] p,
byte[] q,
byte[] g,
int privateKeyMinRandomBits,
String name)
Creates a crypto system associated with this token. |
|
byte[] |
getDHCryptoSystemG(CryptoTokenCryptoSystemData cryptoTokenData)
Returns the g domain parameter. |
|
String |
getDHCryptoSystemName(CryptoTokenCryptoSystemData cryptoTokenData)
Returns a String that indicates the set of parameters in use, eg "WTLS1", or null. |
|
byte[] |
getDHCryptoSystemP(CryptoTokenCryptoSystemData cryptoTokenData)
Returns the p domain parameter. |
|
byte[] |
getDHCryptoSystemQ(CryptoTokenCryptoSystemData cryptoTokenData)
Returns the q domain parameter, or null. |
|
int |
getDHPrivateKeyLength(CryptoTokenCryptoSystemData cryptoTokenData)
Returns the length of the private key. |
|
int |
getDHPrivateKeyMinRandomBits(CryptoTokenCryptoSystemData cryptoTokenData)
Returns the minimum number of private key random bits. |
|
int |
getDHPublicKeyLength(CryptoTokenCryptoSystemData cryptoTokenData)
Returns the length of the public key. |
|
DHCryptoSystem[] |
getSuggestedDHCryptoSystems()
Returns a list of supported or suggested crypto systems. |
|
CryptoTokenPrivateKeyData |
injectDHPrivateKey(CryptoTokenCryptoSystemData cryptoSystemData,
byte[] data)
Inserts the raw private key data into the crypto token. |
|
CryptoTokenPublicKeyData |
injectDHPublicKey(CryptoTokenCryptoSystemData cryptoSystemData,
byte[] data)
Inserts the raw public key data into the crypto token. |
|
boolean |
isSupported(CryptoSystem cryptoSystem,
int operation)
Indicates whether the chosen operation is supported by this CryptoToken using the provided CryptoSytem. |
|
boolean |
providesUserAuthentication()
Returns true if the token provides its own user authentication checks, eg a smartcard will prompt for a password before allowing access to the keys. |
|
void |
verifyDHCryptoSystemData(CryptoTokenCryptoSystemData cryptoSystemData)
Checks the validity of the crypto system parameters represented by this token. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected DHCryptoToken()
DHCryptoToken object.
This constructor is not used.
| Method Detail |
|---|
public final String getAlgorithm()
This method will always return the String "DH".
getAlgorithm in interface CryptoTokenpublic boolean providesUserAuthentication()
providesUserAuthentication in interface CryptoToken
public int getDHCryptoSystemBitLength(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public String getDHCryptoSystemName(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public byte[] getDHCryptoSystemP(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public byte[] getDHCryptoSystemQ(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public byte[] getDHCryptoSystemG(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public int getDHPublicKeyLength(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public int getDHPrivateKeyLength(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public int getDHPrivateKeyMinRandomBits(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public byte[] extractDHPublicKeyData(CryptoTokenPublicKeyData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public byte[] extractDHPublicKeyData(CryptoTokenPrivateKeyData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public byte[] extractDHPrivateKeyData(CryptoTokenPrivateKeyData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public CryptoTokenCryptoSystemData getDHCryptoSystemData(byte[] p,
byte[] q,
byte[] g,
int privateKeyMinRandomBits,
String name)
throws CryptoTokenException,
CryptoUnsupportedOperationException,
InvalidCryptoSystemException,
UnsupportedCryptoSystemException
p - A byte array containing the domain parameter p.q - A byte array containing the domain parameter q.g - A byte array containing the domain parameter g.privateKeyMinRandomBits - An integer representing the minimum number
of random bits in the private key.name - A String representing the name of the crypto system.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
InvalidCryptoSystemException - Thrown if any or both of the
specified keys are invalid.
UnsupportedCryptoSystemException - Thrown if the specified crypto
system is invalid.
public void verifyDHCryptoSystemData(CryptoTokenCryptoSystemData cryptoSystemData)
throws CryptoTokenException,
CryptoUnsupportedOperationException,
InvalidCryptoSystemException
This method is called by DHCryptoSystem.verify() after it
has gone through the integrity tests for the DHCryptoSystem.
cryptoSystemData - The data associated with the crypto system.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
InvalidCryptoSystemException - Thrown if the specified crypto
system is invalid.
public DHCryptoSystem[] getSuggestedDHCryptoSystems()
throws CryptoTokenException,
CryptoUnsupportedOperationException
This list does not have to be exhaustive.
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.
public DHKeyPair createDHKeyPair(CryptoTokenCryptoSystemData cryptoTokenData)
throws CryptoTokenException,
CryptoUnsupportedOperationException
cryptoTokenData - The data associated with the crypto token.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public CryptoTokenPublicKeyData injectDHPublicKey(CryptoTokenCryptoSystemData cryptoSystemData,
byte[] data)
throws InvalidKeyException,
CryptoTokenException,
CryptoUnsupportedOperationException
cryptoSystemData - The data associated with the crypto token.data - A byte array containing the key data.
InvalidKeyException - Thrown if the
specified key is invalid.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public CryptoTokenPrivateKeyData injectDHPrivateKey(CryptoTokenCryptoSystemData cryptoSystemData,
byte[] data)
throws InvalidKeyException,
CryptoTokenException,
CryptoUnsupportedOperationException
cryptoSystemData - The data associated with the crypto token.data - A byte array containing the key data.
InvalidKeyException - Thrown if the
specified key is invalid.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public void deleteDHPublicKey(CryptoTokenPublicKeyData data)
throws CryptoTokenException,
CryptoUnsupportedOperationException
data - The key data contained within the token.
CryptoTokenException - Thrown if an error occurs with a crypto
token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public void deleteDHPrivateKey(CryptoTokenPrivateKeyData data)
throws CryptoTokenException,
CryptoUnsupportedOperationException
data - The key data contained within the token.
CryptoTokenException - Thrown if an error occurs with a crypto
token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
public byte[] generateDHSharedSecret(CryptoTokenCryptoSystemData cryptoSystemData,
CryptoTokenPrivateKeyData localPrivateKeyData,
byte[] remotePublicKeyData,
boolean useCofactor)
throws InvalidCryptoSystemException,
CryptoTokenException,
CryptoUnsupportedOperationException,
InvalidKeyException
cryptoSystemData - The data associated with the crypto token.localPrivateKeyData - The local private key to use.remotePublicKeyData - The remote public key to use.useCofactor - A boolean that determines whether to use cofactor or not.
InvalidCryptoSystemException - Thrown if any or both of the
specified keys are invalid.
CryptoTokenException - Thrown if there was an error communicating
with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
an unsupported operation.
InvalidKeyException - Thrown if the calculated shared secret is not contained within the expected subgroup. This
may be thrown if a small subgroup attack is detected.
public boolean isSupported(CryptoSystem cryptoSystem,
int operation)
isSupported in interface AsymmetricCryptoTokencryptoSystem - The CryptoSystem to check against.operation - An integer, either KEY_GENERATION, PUBLIC_KEY_OPERATION, PRIVATE_KEY_OPERATION,
or some other value specific to the cryptosystem that indicates the operation to be checked.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Copyright 1999-2010 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2003 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.
Copyright 2002-2003 Nokia Corporation All Rights Reserved.
Java is a trademark of Sun Microsystems, Inc.