net.handle.security.provider
Class GenericProvider

java.lang.Object
  extended by net.handle.security.HdlSecurityProvider
      extended by net.handle.security.provider.GenericProvider

public final class GenericProvider
extends HdlSecurityProvider

An implementation of the net.handle.HDLSecurityProvider interface that accesses the generic java security/crypto interfaces.


Field Summary
 
Fields inherited from class net.handle.security.HdlSecurityProvider
ENCRYPT_ALG_AES, ENCRYPT_ALG_DES, ENCRYPT_ALG_DESEDE
 
Constructor Summary
GenericProvider()
           
 
Method Summary
 java.security.KeyPair generateDHKeyPair(java.math.BigInteger p, java.math.BigInteger g)
           
 java.security.KeyPair generateDHKeyPair(int keySize)
           
 byte[] generateSecretKey(int keyAlg)
          Generate and encode a secret key for use with the given algorithm
 javax.crypto.Cipher getCipher(int algorithm, byte[] secretKey, int direction, byte[] iv, int majorProtocolVersion, int minorProtocolVersion)
          Construct and return a Cipher object, initialized to either decrypt or encrypt using the given algorithm and secret key.
 byte[] getDESKeyFromDH(javax.crypto.interfaces.DHPublicKey pub, javax.crypto.interfaces.DHPrivateKey priv)
           
 int getIvSize(int algorithm, int majorProtocolVersion, int minorProtocolVersion)
          Returns the length in bytes of the initialization vector used by the cipher generated by getCipher().
 byte[] getKeyFromDH(javax.crypto.interfaces.DHPublicKey pub, javax.crypto.interfaces.DHPrivateKey priv, int algorithm)
          Using the given diffie-hellman key pair, generate the secret key with the algorithm ID (ENCRYPT_ALG_DES, ENCRYPT_ALG_AES or ENCRYPT_ALG_DESEDE) in the first four bytes of the array
 
Methods inherited from class net.handle.security.HdlSecurityProvider
getCipher, getInstance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GenericProvider

public GenericProvider()
Method Detail

getCipher

public javax.crypto.Cipher getCipher(int algorithm,
                                     byte[] secretKey,
                                     int direction,
                                     byte[] iv,
                                     int majorProtocolVersion,
                                     int minorProtocolVersion)
                              throws java.lang.Exception
Construct and return a Cipher object, initialized to either decrypt or encrypt using the given algorithm and secret key. The direction parameter must be either Cipher.ENCRYPT_MODE or Cipher.DECRYPT_MODE. The algorithm parameter should be one of the HdlSecurityProvider.ENCRYPT_ALG_* constants.

Specified by:
getCipher in class HdlSecurityProvider
Throws:
java.lang.Exception

getIvSize

public int getIvSize(int algorithm,
                     int majorProtocolVersion,
                     int minorProtocolVersion)
Description copied from class: HdlSecurityProvider
Returns the length in bytes of the initialization vector used by the cipher generated by getCipher(). Returns 0 if no initialization vector.

Specified by:
getIvSize in class HdlSecurityProvider

generateSecretKey

public byte[] generateSecretKey(int keyAlg)
                         throws java.lang.Exception
Generate and encode a secret key for use with the given algorithm

Specified by:
generateSecretKey in class HdlSecurityProvider
Throws:
java.lang.Exception

getDESKeyFromDH

public byte[] getDESKeyFromDH(javax.crypto.interfaces.DHPublicKey pub,
                              javax.crypto.interfaces.DHPrivateKey priv)
                       throws java.lang.Exception
Overrides:
getDESKeyFromDH in class HdlSecurityProvider
Throws:
java.lang.Exception

getKeyFromDH

public byte[] getKeyFromDH(javax.crypto.interfaces.DHPublicKey pub,
                           javax.crypto.interfaces.DHPrivateKey priv,
                           int algorithm)
                    throws java.lang.Exception
Using the given diffie-hellman key pair, generate the secret key with the algorithm ID (ENCRYPT_ALG_DES, ENCRYPT_ALG_AES or ENCRYPT_ALG_DESEDE) in the first four bytes of the array

Overrides:
getKeyFromDH in class HdlSecurityProvider
Throws:
java.lang.Exception

generateDHKeyPair

public java.security.KeyPair generateDHKeyPair(int keySize)
                                        throws java.lang.Exception
Overrides:
generateDHKeyPair in class HdlSecurityProvider
Throws:
java.lang.Exception

generateDHKeyPair

public java.security.KeyPair generateDHKeyPair(java.math.BigInteger p,
                                               java.math.BigInteger g)
                                        throws java.lang.Exception
Overrides:
generateDHKeyPair in class HdlSecurityProvider
Throws:
java.lang.Exception