KeyBuilder



javacard.security
Class KeyBuilder

java.lang.Object
  extended by javacard.security.KeyBuilder

public class KeyBuilder
extends Object

The KeyBuilder class is a key object factory.


Field Summary
static short LENGTH_AES_128
          AES Key Length LENGTH_AES_128 = 128.
static short LENGTH_AES_192
          AES Key Length LENGTH_AES_192 = 192.
static short LENGTH_AES_256
          AES Key Length LENGTH_AES_256 = 256.
static short LENGTH_DES
          DES Key Length LENGTH_DES = 64.
static short LENGTH_DES3_2KEY
          DES Key Length LENGTH_DES3_2KEY = 128.
static short LENGTH_DES3_3KEY
          DES Key Length LENGTH_DES3_3KEY = 192.
static short LENGTH_DSA_1024
          DSA Key Length LENGTH_DSA_1024 = 1024.
static short LENGTH_DSA_512
          DSA Key Length LENGTH_DSA_512 = 512.
static short LENGTH_DSA_768
          DSA Key Length LENGTH_DSA_768 = 768.
static short LENGTH_EC_F2M_113
          EC Key Length LENGTH_EC_F2M_113 = 113.
static short LENGTH_EC_F2M_131
          EC Key Length LENGTH_EC_F2M_131 = 131.
static short LENGTH_EC_F2M_163
          EC Key Length LENGTH_EC_F2M_163 = 163.
static short LENGTH_EC_F2M_193
          EC Key Length LENGTH_EC_F2M_193 = 193.
static short LENGTH_EC_FP_112
          EC Key Length LENGTH_EC_FP_112 = 112.
static short LENGTH_EC_FP_128
          EC Key Length LENGTH_EC_FP_128 = 128.
static short LENGTH_EC_FP_160
          EC Key Length LENGTH_EC_FP_160 = 160.
static short LENGTH_EC_FP_192
          EC Key Length LENGTH_EC_FP_192 = 192.
static short LENGTH_RSA_1024
          RSA Key Length LENGTH_RSA_1024 = 1024.
static short LENGTH_RSA_1280
          RSA Key Length LENGTH_RSA_1280 = 1280.
static short LENGTH_RSA_1536
          RSA Key Length LENGTH_RSA_1536 = 1536.
static short LENGTH_RSA_1984
          RSA Key Length LENGTH_RSA_1984 = 1984.
static short LENGTH_RSA_2048
          RSA Key Length LENGTH_RSA_2048 = 2048.
static short LENGTH_RSA_512
          RSA Key Length LENGTH_RSA_512 = 512.
static short LENGTH_RSA_736
          RSA Key Length LENGTH_RSA_736 = 736.
static short LENGTH_RSA_768
          RSA Key Length LENGTH_RSA_768 = 768.
static short LENGTH_RSA_896
          RSA Key Length LENGTH_RSA_896 = 896.
static byte TYPE_AES
          Key object which implements interface type AESKey with persistent key data.
static byte TYPE_AES_TRANSIENT_DESELECT
          Key object which implements interface type AESKey with CLEAR_ON_DESELECT transient key data.
static byte TYPE_AES_TRANSIENT_RESET
          Key object which implements interface type AESKey with CLEAR_ON_RESET transient key data.
static byte TYPE_DES
          Key object which implements interface type DESKey with persistent key data.
static byte TYPE_DES_TRANSIENT_DESELECT
          Key object which implements interface type DESKey with CLEAR_ON_DESELECT transient key data.
static byte TYPE_DES_TRANSIENT_RESET
          Key object which implements interface type DESKey with CLEAR_ON_RESET transient key data.
static byte TYPE_DSA_PRIVATE
          Key object which implements the interface type DSAPrivateKey for the DSA algorithm.
static byte TYPE_DSA_PUBLIC
          Key object which implements the interface type DSAPublicKey for the DSA algorithm.
static byte TYPE_EC_F2M_PRIVATE
          Key object which implements the interface type ECPrivateKey for EC operations over fields of characteristic 2 with polynomial basis.
static byte TYPE_EC_F2M_PUBLIC
          Key object which implements the interface type ECPublicKey for EC operations over fields of characteristic 2 with polynomial basis.
static byte TYPE_EC_FP_PRIVATE
          Key object which implements the interface type ECPrivateKey for EC operations over large prime fields.
static byte TYPE_EC_FP_PUBLIC
          Key object which implements the interface type ECPublicKey for EC operations over large prime fields.
static byte TYPE_RSA_CRT_PRIVATE
          Key object which implements interface type RSAPrivateCrtKey which uses Chinese Remainder Theorem.
static byte TYPE_RSA_PRIVATE
          Key object which implements interface type RSAPrivateKey which uses modulus/exponent form.
static byte TYPE_RSA_PUBLIC
          Key object which implements interface type RSAPublicKey.
 
Constructor Summary
KeyBuilder()
           
 
Method Summary
static Key buildKey(byte keyType, short keyLength, boolean keyEncryption)
          Creates uninitialized cryptographic keys for signature and cipher algorithms.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TYPE_DES_TRANSIENT_RESET

public static final byte TYPE_DES_TRANSIENT_RESET
Key object which implements interface type DESKey with CLEAR_ON_RESET transient key data.

This Key object implicitly performs a clearKey() on power on or card reset.

See Also:
Constant Field Values

TYPE_DES_TRANSIENT_DESELECT

public static final byte TYPE_DES_TRANSIENT_DESELECT
Key object which implements interface type DESKey with CLEAR_ON_DESELECT transient key data.

This Key object implicitly performs a clearKey() on power on, card reset and applet deselection.

See Also:
Constant Field Values

TYPE_DES

public static final byte TYPE_DES
Key object which implements interface type DESKey with persistent key data.

See Also:
Constant Field Values

TYPE_RSA_PUBLIC

public static final byte TYPE_RSA_PUBLIC
Key object which implements interface type RSAPublicKey.

See Also:
Constant Field Values

TYPE_RSA_PRIVATE

public static final byte TYPE_RSA_PRIVATE
Key object which implements interface type RSAPrivateKey which uses modulus/exponent form.

See Also:
Constant Field Values

TYPE_RSA_CRT_PRIVATE

public static final byte TYPE_RSA_CRT_PRIVATE
Key object which implements interface type RSAPrivateCrtKey which uses Chinese Remainder Theorem.

See Also:
Constant Field Values

TYPE_DSA_PUBLIC

public static final byte TYPE_DSA_PUBLIC
Key object which implements the interface type DSAPublicKey for the DSA algorithm.

See Also:
Constant Field Values

TYPE_DSA_PRIVATE

public static final byte TYPE_DSA_PRIVATE
Key object which implements the interface type DSAPrivateKey for the DSA algorithm.

See Also:
Constant Field Values

TYPE_EC_F2M_PUBLIC

public static final byte TYPE_EC_F2M_PUBLIC
Key object which implements the interface type ECPublicKey for EC operations over fields of characteristic 2 with polynomial basis.

See Also:
Constant Field Values

TYPE_EC_F2M_PRIVATE

public static final byte TYPE_EC_F2M_PRIVATE
Key object which implements the interface type ECPrivateKey for EC operations over fields of characteristic 2 with polynomial basis.

See Also:
Constant Field Values

TYPE_EC_FP_PUBLIC

public static final byte TYPE_EC_FP_PUBLIC
Key object which implements the interface type ECPublicKey for EC operations over large prime fields.

See Also:
Constant Field Values

TYPE_EC_FP_PRIVATE

public static final byte TYPE_EC_FP_PRIVATE
Key object which implements the interface type ECPrivateKey for EC operations over large prime fields.

See Also:
Constant Field Values

TYPE_AES_TRANSIENT_RESET

public static final byte TYPE_AES_TRANSIENT_RESET
Key object which implements interface type AESKey with CLEAR_ON_RESET transient key data.

This Key object implicitly performs a clearKey() on power on or card reset.

See Also:
Constant Field Values

TYPE_AES_TRANSIENT_DESELECT

public static final byte TYPE_AES_TRANSIENT_DESELECT
Key object which implements interface type AESKey with CLEAR_ON_DESELECT transient key data.

This Key object implicitly performs a clearKey() on power on, card reset and applet deselection.

See Also:
Constant Field Values

TYPE_AES

public static final byte TYPE_AES
Key object which implements interface type AESKey with persistent key data.

See Also:
Constant Field Values

LENGTH_DES

public static final short LENGTH_DES
DES Key Length LENGTH_DES = 64.

See Also:
Constant Field Values

LENGTH_DES3_2KEY

public static final short LENGTH_DES3_2KEY
DES Key Length LENGTH_DES3_2KEY = 128.

See Also:
Constant Field Values

LENGTH_DES3_3KEY

public static final short LENGTH_DES3_3KEY
DES Key Length LENGTH_DES3_3KEY = 192.

See Also:
Constant Field Values

LENGTH_RSA_512

public static final short LENGTH_RSA_512
RSA Key Length LENGTH_RSA_512 = 512.

See Also:
Constant Field Values

LENGTH_RSA_736

public static final short LENGTH_RSA_736
RSA Key Length LENGTH_RSA_736 = 736.

See Also:
Constant Field Values

LENGTH_RSA_768

public static final short LENGTH_RSA_768
RSA Key Length LENGTH_RSA_768 = 768.

See Also:
Constant Field Values

LENGTH_RSA_896

public static final short LENGTH_RSA_896
RSA Key Length LENGTH_RSA_896 = 896.

See Also:
Constant Field Values

LENGTH_RSA_1024

public static final short LENGTH_RSA_1024
RSA Key Length LENGTH_RSA_1024 = 1024.

See Also:
Constant Field Values

LENGTH_RSA_1280

public static final short LENGTH_RSA_1280
RSA Key Length LENGTH_RSA_1280 = 1280.

See Also:
Constant Field Values

LENGTH_RSA_1536

public static final short LENGTH_RSA_1536
RSA Key Length LENGTH_RSA_1536 = 1536.

See Also:
Constant Field Values

LENGTH_RSA_1984

public static final short LENGTH_RSA_1984
RSA Key Length LENGTH_RSA_1984 = 1984.

See Also:
Constant Field Values

LENGTH_RSA_2048

public static final short LENGTH_RSA_2048
RSA Key Length LENGTH_RSA_2048 = 2048.

See Also:
Constant Field Values

LENGTH_DSA_512

public static final short LENGTH_DSA_512
DSA Key Length LENGTH_DSA_512 = 512.

See Also:
Constant Field Values

LENGTH_DSA_768

public static final short LENGTH_DSA_768
DSA Key Length LENGTH_DSA_768 = 768.

See Also:
Constant Field Values

LENGTH_DSA_1024

public static final short LENGTH_DSA_1024
DSA Key Length LENGTH_DSA_1024 = 1024.

See Also:
Constant Field Values

LENGTH_EC_FP_112

public static final short LENGTH_EC_FP_112
EC Key Length LENGTH_EC_FP_112 = 112.

See Also:
Constant Field Values

LENGTH_EC_F2M_113

public static final short LENGTH_EC_F2M_113
EC Key Length LENGTH_EC_F2M_113 = 113.

See Also:
Constant Field Values

LENGTH_EC_FP_128

public static final short LENGTH_EC_FP_128
EC Key Length LENGTH_EC_FP_128 = 128.

See Also:
Constant Field Values

LENGTH_EC_F2M_131

public static final short LENGTH_EC_F2M_131
EC Key Length LENGTH_EC_F2M_131 = 131.

See Also:
Constant Field Values

LENGTH_EC_FP_160

public static final short LENGTH_EC_FP_160
EC Key Length LENGTH_EC_FP_160 = 160.

See Also:
Constant Field Values

LENGTH_EC_F2M_163

public static final short LENGTH_EC_F2M_163
EC Key Length LENGTH_EC_F2M_163 = 163.

See Also:
Constant Field Values

LENGTH_EC_FP_192

public static final short LENGTH_EC_FP_192
EC Key Length LENGTH_EC_FP_192 = 192.

See Also:
Constant Field Values

LENGTH_EC_F2M_193

public static final short LENGTH_EC_F2M_193
EC Key Length LENGTH_EC_F2M_193 = 193.

See Also:
Constant Field Values

LENGTH_AES_128

public static final short LENGTH_AES_128
AES Key Length LENGTH_AES_128 = 128.

See Also:
Constant Field Values

LENGTH_AES_192

public static final short LENGTH_AES_192
AES Key Length LENGTH_AES_192 = 192.

See Also:
Constant Field Values

LENGTH_AES_256

public static final short LENGTH_AES_256
AES Key Length LENGTH_AES_256 = 256.

See Also:
Constant Field Values
Constructor Detail

KeyBuilder

public KeyBuilder()
Method Detail

buildKey

public static Key buildKey(byte keyType,
                           short keyLength,
                           boolean keyEncryption)
                    throws CryptoException
Creates uninitialized cryptographic keys for signature and cipher algorithms. Only instances created by this method may be the key objects used to initialize instances of Signature, Cipher and KeyPair. Note that the object returned must be cast to their appropriate key type interface.

Parameters:
keyType - the type of key to be generated. Valid codes listed in TYPE.. constants. See TYPE_DES_TRANSIENT_RESET.
keyLength - the key size in bits. The valid key bit lengths are key type dependent. Some common key lengths are listed above above in the LENGTH_.. constants. See LENGTH_DES.
keyEncryption - if true this boolean requests a key implementation which implements the javacardx.crypto.KeyEncryption interface. The key implementation returned may implement the javacardx.crypto.KeyEncryption interface even when this parameter is false.
Returns:
the key object instance of the requested key type, length and encrypted access
Throws:
CryptoException - with the following reason codes:
  • CryptoException.NO_SUCH_ALGORITHM if the requested algorithm associated with the specified type, size of key and key encryption interface is not supported.