| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.rim.device.api.crypto.DHCryptoSystem
public final class DHCryptoSystem
Represents the system of asymmetric cryptography which is based on the Discrete Logarithm Problem.
Diffie-Hellman ( DH ) is defined in P1363, PKCS #3 and various other spots.
DHPublicKey, 
DHPrivateKey| Field Summary | ||
|---|---|---|
|  | static int | DEFAULT_PRIVATE_KEY_MIN_RANDOM_BITSRepresents the minimum number of random bits a private key should contain. | 
|  | static String | SUN1024Represents the 1024 bit parameters defined in the SUN JCA. | 
|  | static String | SUN512Represents the 512 bit parameters defined in the SUN JCA. | 
|  | static String | SUN768Represents the 768 bit parameters defined in the SUN JCA. | 
|  | static String | WTLS1Represents the WTLS #1 DH parameters (512 bits). | 
|  | static String | WTLS2Represents the WTLS #2 DH parameters (768 bits). | 
| Constructor Summary | ||
|---|---|---|
|  | DHCryptoSystem()Creates the DHCryptoSystemobject with the SUN1024 parameters. | |
|  | DHCryptoSystem(byte[] p,
               byte[] g)Creates a DHCryptoSystemobject with the specified p and g
 domain parameters. | |
|  | DHCryptoSystem(byte[] p,
               byte[] q,
               byte[] g)Creates a DHCryptoSystemwith the specified p, q and g
 domain parameters. | |
|  | DHCryptoSystem(byte[] p,
               byte[] q,
               byte[] g,
               int privateKeyMinRandomBits)Creates a DHCryptoSystemobject with the specified p, q and g
 domain parameters, as well as the minimum number of private key random bits. | |
|  | DHCryptoSystem(byte[] p,
               byte[] q,
               byte[] g,
               int privateKeyMinRandomBits,
               String name)Creates a DHCryptoSystemobject with the specified p, q and g
 domain parameters, as well as the minimum number of private key random bits. | |
|  | DHCryptoSystem(byte[] p,
               byte[] g,
               int privateKeyMinRandomBits)Creates a DHCryptoSystemobject with the specified p and g
 domain parameters, as well as the minimum number of private key random bits. | |
|  | DHCryptoSystem(String name)Creates the DHCryptoSystemobject using the specified parameters. | |
|  | DHCryptoSystem(String name,
               int privateKeyMinRandomBits)Creates the DHCryptoSystemobject using the specified parameters as well as
 the minimum number of private key random bits. | |
|  | DHCryptoSystem(DHCryptoToken cryptoToken,
               byte[] p,
               byte[] q,
               byte[] g,
               int privateKeyMinRandomBits,
               String name)Creates a DHCryptoSystemobject with the specified p, q and g
 domain parameters, as well as the minimum number of private key random bits. | |
|  | DHCryptoSystem(DHCryptoToken cryptoToken,
               String name,
               int privateKeyMinRandomBits)Creates the DHCryptoSystemusing the specified parameters as well as
 the minimum number of private key random bits. | |
|  | DHCryptoSystem(DHCryptoToken cryptoToken,
               CryptoTokenCryptoSystemData cryptoTokenData)Creates a DHCryptoSystemobject using the specified crypto
 token and crypto system. | |
| Method Summary | ||
|---|---|---|
|  |  DHKeyPair | createDHKeyPair() | 
|  |  KeyPair | createKeyPair()Creates a new key pair using this crypto system. | 
|  |  boolean | equals(Object obj)Indicates whether some other object is "equal to" this one. | 
|  |  String | getAlgorithm()Returns a String that indicates the algorithm, ie "DH". | 
|  |  AsymmetricCryptoToken | getAsymmetricCryptoToken()Returns the DH crypto token. | 
|  |  int | getBitLength()Returns the number of bits (aka the "strength") of the crypto system, eg 1024 (for RSA), 163 (for EC). | 
|  |  CryptoTokenCryptoSystemData | getCryptoTokenData()Returns the crypto token associated with the crypto system. | 
|  |  byte[] | getG()Returns the g domain parameter. | 
|  |  String | getName()Returns a String that indicates the set of parameters in use, eg "WTLS1", or null. | 
|  |  byte[] | getP()Returns the p domain parameter. | 
|  |  int | getPrivateKeyLength()Returns the length of the private key. | 
|  |  int | getPrivateKeyMinRandomBits()Returns the minimum number of private key random bits. | 
|  |  int | getPublicKeyLength()Returns the length of the public key. | 
|  |  byte[] | getQ()Returns the q domain parameter, or null. | 
|  |  int | hashCode()Returns a hash code value for the object. | 
|  |  boolean | isStrong()Returns whether or not the CryptoSystem is cryptographically strong as of the release date of the code. | 
|  |  void | verify()Performs integrity checks on the crypto system parameters. | 
| Methods inherited from class java.lang.Object | 
|---|
| getClass, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
public static final String WTLS1
public static final String WTLS2
public static final String SUN512
public static final String SUN768
public static final String SUN1024
public static final int DEFAULT_PRIVATE_KEY_MIN_RANDOM_BITS
Note: This default value depends on the size of P.
| Constructor Detail | 
|---|
public DHCryptoSystem()
DHCryptoSystem object with the SUN1024 parameters.
public DHCryptoSystem(String name)
DHCryptoSystem object using the specified parameters.
 
name - Specifies the parameters to use.
public DHCryptoSystem(String name,
                      int privateKeyMinRandomBits)
DHCryptoSystem object using the specified parameters as well as
 the minimum number of private key random bits.
 
name - Specifies the parameters to use.privateKeyMinRandomBits - Overrides the default minimum number of private key random bits.
public DHCryptoSystem(DHCryptoToken cryptoToken,
                      String name,
                      int privateKeyMinRandomBits)
               throws CryptoTokenException,
                      CryptoUnsupportedOperationException,
                      UnsupportedCryptoSystemException
DHCryptoSystem using the specified parameters as well as
 the minimum number of private key random bits.
 
cryptoToken - The token associated with the crypto system.name - Specifies the parameters to use.privateKeyMinRandomBits - Overrides the default minimum number of
 private key random bits.
CryptoTokenException - Thrown if there was an error communicating
 with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to
 an unsupported operation.
UnsupportedCryptoSystemException - Thrown if the specified crypto
 token is invalid.
public DHCryptoSystem(byte[] p,
                      byte[] g)
               throws InvalidCryptoSystemException,
                      UnsupportedCryptoSystemException
DHCryptoSystem object with the specified p and g
 domain parameters.
 
p - The p domain parameter.g - The g domain parameter.
InvalidCryptoSystemException - Thrown if any or both of the
 specified parameters are invalid.
UnsupportedCryptoSystemException - Thrown if the specified crypto
 system is invalid.
public DHCryptoSystem(byte[] p,
                      byte[] g,
                      int privateKeyMinRandomBits)
               throws InvalidCryptoSystemException,
                      UnsupportedCryptoSystemException
DHCryptoSystem object with the specified p and g
 domain parameters, as well as the minimum number of private key random bits.
 
p - The p domain parameter.g - The g domain parameter.privateKeyMinRandomBits - An integer that represents the minimum
 number of private key random bits. This value overrides the default value.
InvalidCryptoSystemException - Thrown if any or both of the
 specified parameters are invalid.
UnsupportedCryptoSystemException - Thrown if the specified crypto
 system is invalid.
public DHCryptoSystem(byte[] p,
                      byte[] q,
                      byte[] g)
               throws InvalidCryptoSystemException,
                      UnsupportedCryptoSystemException
DHCryptoSystem with the specified p, q and g
 domain parameters.
 
p - The p domain parameter.q - The q domain parameter. May be null.g - The g domain parameter.
InvalidCryptoSystemException - Thrown if any or both of the
 specified parameters are invalid.
UnsupportedCryptoSystemException - Thrown if the specified crypto
 system is invalid.
public DHCryptoSystem(byte[] p,
                      byte[] q,
                      byte[] g,
                      int privateKeyMinRandomBits)
               throws InvalidCryptoSystemException,
                      UnsupportedCryptoSystemException
DHCryptoSystem object with the specified p, q and g
 domain parameters, as well as the minimum number of private key random bits.
 
p - The p domain parameter.q - The q domain parameter. May be null.g - The g domain parameter.privateKeyMinRandomBits - An integer that represents the minimum
 number of random bits in the key.
InvalidCryptoSystemException - Thrown if any or both of the
 specified parameters are invalid.
UnsupportedCryptoSystemException - Thrown if the specified crypto
 system is invalid.
public DHCryptoSystem(byte[] p,
                      byte[] q,
                      byte[] g,
                      int privateKeyMinRandomBits,
                      String name)
               throws InvalidCryptoSystemException,
                      UnsupportedCryptoSystemException
DHCryptoSystem object with the specified p, q and g
 domain parameters, as well as the minimum number of private key random bits.
 
p - The p domain parameter.q - The q domain parameter. May be null.g - The g domain parameter.privateKeyMinRandomBits - The minimum number of random bits in the
 private key.name - A description of the parameters, eg "SUN1024", "WTLS1". May be null.
InvalidCryptoSystemException - Thrown if any or both of the
 specified parameters are invalid.
UnsupportedCryptoSystemException - Thrown if the specified crypto
 system is invalid.
public DHCryptoSystem(DHCryptoToken cryptoToken,
                      byte[] p,
                      byte[] q,
                      byte[] g,
                      int privateKeyMinRandomBits,
                      String name)
               throws CryptoTokenException,
                      CryptoUnsupportedOperationException,
                      InvalidCryptoSystemException,
                      UnsupportedCryptoSystemException
DHCryptoSystem object with the specified p, q and g
 domain parameters, as well as the minimum number of private key random bits.
 
cryptoToken - The crypto token.p - The p domain parameter.q - The q domain parameter. May be null.g - The g domain parameter.privateKeyMinRandomBits - An integer that represents the minimum number of private key random bits.name - A description of the parameters, eg "SUN1024", "WTLS1". May be null.
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 parameters are invalid.
UnsupportedCryptoSystemException - Thrown if the specified crypto
 system is unsupported.
public DHCryptoSystem(DHCryptoToken cryptoToken,
                      CryptoTokenCryptoSystemData cryptoTokenData)
DHCryptoSystem object using the specified crypto
 token and crypto system.
 
cryptoToken - The token associated with the crypto system.cryptoTokenData - The data associated with the crypto token.| Method Detail | 
|---|
public void verify()
            throws InvalidCryptoSystemException,
                   CryptoTokenException,
                   CryptoUnsupportedOperationException
verifyCryptoSystemData method of the associated crypto
 token is called.
 
verify in interface CryptoSystemInvalidCryptoSystemException - 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.public String getAlgorithm()
This method will always return the String "DH".
getAlgorithm in interface CryptoSystempublic AsymmetricCryptoToken getAsymmetricCryptoToken()
getAsymmetricCryptoToken in interface CryptoSystempublic CryptoTokenCryptoSystemData getCryptoTokenData()
public int getBitLength()
                 throws CryptoTokenException,
                        CryptoUnsupportedOperationException
CryptoSystemNote: the strength of a CryptoSystem is a combination of the algorithm and the bit length. For example, a 1024 bit RSA CryptoSystem is estimated to have the same cryptographic strength as 160 bit EC CryptoSystem.
getBitLength in interface CryptoSystemCryptoTokenException - Thrown when a problem occurs with a crypto
 token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown when a call is made to
 an unsupported operation.CryptoSystem.isStrong()
public boolean isStrong()
                 throws CryptoTokenException,
                        CryptoUnsupportedOperationException
Note: Due to the nature of cryptography, things that are presently strong may be insecure in the future.
isStrong in interface CryptoSystemCryptoTokenException - Thrown when a problem occurs with a crypto
 token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown when a call is made to
 an unsupported operation.
public String getName()
               throws CryptoTokenException,
                      CryptoUnsupportedOperationException
getName in interface CryptoSystemCryptoTokenException - 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[] getP()
            throws CryptoTokenException,
                   CryptoUnsupportedOperationException
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[] getQ()
            throws CryptoTokenException,
                   CryptoUnsupportedOperationException
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[] getG()
            throws CryptoTokenException,
                   CryptoUnsupportedOperationException
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 int getPublicKeyLength()
                       throws CryptoTokenException,
                              CryptoUnsupportedOperationException
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 int getPrivateKeyLength()
                        throws CryptoTokenException,
                               CryptoUnsupportedOperationException
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 int getPrivateKeyMinRandomBits()
                               throws CryptoTokenException,
                                      CryptoUnsupportedOperationException
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 int hashCode()
Objectjava.util.Hashtable.
 
 The general contract of hashCode is:
 
hashCode method on each of
     the two objects must produce the same integer result.
 Object.equals(java.lang.Object)
     method, then calling the hashCode method on each of the
     two objects must produce distinct integer results.  However, the
     programmer should be aware that producing distinct integer results
     for unequal objects may improve the performance of hashtables.
 As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
hashCode in class ObjectObject.equals(java.lang.Object), 
Hashtablepublic boolean equals(Object obj)
Object
 The equals method implements an equivalence relation:
 
x,
     x.equals(x) should return true.
 x and
     y, x.equals(y) should return
     true if and only if y.equals(x) returns
     true.
 x,
     y, and z, if x.equals(y)
     returns  true and y.equals(z) returns
     true, then x.equals(z) should return
     true.
 x
     and y, multiple invocations of x.equals(y)
     consistently return true or consistently return
     false, provided no information used in
     equals comparisons on the object is modified.
 x,
     x.equals(null) should return false.
 
 The equals method for class Object implements
 the most discriminating possible equivalence relation on objects;
 that is, for any reference values x and y,
 this method returns true if and only if x and
 y refer to the same object (x==y has the
 value true).
equals in class Objectobj - the reference object with which to compare.
true if this object is the same as the obj
          argument; false otherwise.Boolean.hashCode(), 
Hashtable
public KeyPair createKeyPair()
                      throws CryptoTokenException,
                             CryptoUnsupportedOperationException
CryptoSystem
createKeyPair in interface CryptoSystemCryptoTokenException - 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()
                          throws CryptoTokenException,
                                 CryptoUnsupportedOperationException
CryptoTokenException
CryptoUnsupportedOperationException| 
 | |||||||||
| 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