|
|||||||||
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 CryptoToken
public 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 AsymmetricCryptoToken
cryptoSystem
- 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-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal