Site Tools


Sidebar

Smart Card Solution

User Manual

JavaCard API Samples

Java Card Specification

Knowledge Sharing

javacard:java-card-api:keybuilder

javacard.security

Class KeyBuilder


public class KeyBuilderextends 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_HMAC_SHA_1_BLOCK_64           HMAC Key Length LENGTH_HMAC_SHA_1_BLOCK_64 = 64.
static short LENGTH_HMAC_SHA_256_BLOCK_64           HMAC Key Length LENGTH_HMAC_SHA_256_BLOCK_64 = 64.
static short LENGTH_HMAC_SHA_384_BLOCK_128           HMAC Key Length LENGTH_HMAC_SHA_384_BLOCK_128 = 64.
static short LENGTH_HMAC_SHA_512_BLOCK_128           HMAC Key Length LENGTH_HMAC_SHA_512_BLOCK_128 = 64.
static short LENGTH_KOREAN_SEED_128           Korean Seed Key Length LENGTH_KOREAN_SEED_128 = 128.
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_HMAC           Key object which implements interface type HMACKey with persistent key data.
static byte TYPE_HMAC_TRANSIENT_DESELECT           Key object which implements interface type HMACKey with CLEAR_ON_DESELECT transient key data.
static byte TYPE_HMAC_TRANSIENT_RESET           Key object which implements interface type HMACKey with CLEAR_ON_RESET transient key data.
static byte TYPE_KOREAN_SEED           Key object which implements interface type KoreanSEEDKey with persistent key data.
static byte TYPE_KOREAN_SEED_TRANSIENT_DESELECT           Key object which implements interface type KoreanSEEDKey with CLEAR_ON_DESELECT transient key data.
static byte TYPE_KOREAN_SEED_TRANSIENT_RESET           Key object which implements interface type KoreanSEEDKey with CLEAR_ON_RESET transient key data.
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.

 

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
equals

 

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


TYPE_KOREAN_SEED_TRANSIENT_RESET

public static final byte TYPE_KOREAN_SEED_TRANSIENT_RESET

Key object which implements interface type KoreanSEEDKey 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_KOREAN_SEED_TRANSIENT_DESELECT

public static final byte TYPE_KOREAN_SEED_TRANSIENT_DESELECT

Key object which implements interface type KoreanSEEDKey with CLEAR_ON_DESELECT transient key data. This Key object implicitly performs a clearKey() on power on or card reset.

See Also:Constant Field Values


TYPE_KOREAN_SEED

public static final byte TYPE_KOREAN_SEED

Key object which implements interface type KoreanSEEDKey with persistent key data.

See Also:Constant Field Values


TYPE_HMAC_TRANSIENT_RESET

public static final byte TYPE_HMAC_TRANSIENT_RESET

Key object which implements interface type HMACKey with CLEAR_ON_RESET transient key data. This Key object implicitly performs a clearKey() on power on or card reset. Note, there is no length constant associated with HMAC, since the specification states that the key can have any length.

See Also:Constant Field Values


TYPE_HMAC_TRANSIENT_DESELECT

public static final byte TYPE_HMAC_TRANSIENT_DESELECT

Key object which implements interface type HMACKey with CLEAR_ON_DESELECT transient key data. This Key object implicitly performs a clearKey() on power on or card reset.

See Also:Constant Field Values


TYPE_HMAC

public static final byte TYPE_HMAC

Key object which implements interface type HMACKey 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


LENGTH_KOREAN_SEED_128

public static final short LENGTH_KOREAN_SEED_128

Korean Seed Key Length LENGTH_KOREAN_SEED_128 = 128.

See Also:Constant Field Values


LENGTH_HMAC_SHA_1_BLOCK_64

public static final short LENGTH_HMAC_SHA_1_BLOCK_64

HMAC Key Length LENGTH_HMAC_SHA_1_BLOCK_64 = 64.

See Also:Constant Field Values


LENGTH_HMAC_SHA_256_BLOCK_64

public static final short LENGTH_HMAC_SHA_256_BLOCK_64

HMAC Key Length LENGTH_HMAC_SHA_256_BLOCK_64 = 64.

See Also:Constant Field Values


LENGTH_HMAC_SHA_384_BLOCK_128

public static final short LENGTH_HMAC_SHA_384_BLOCK_128

HMAC Key Length LENGTH_HMAC_SHA_384_BLOCK_128 = 64.

See Also:Constant Field Values


LENGTH_HMAC_SHA_512_BLOCK_128

public static final short LENGTH_HMAC_SHA_512_BLOCK_128

HMAC Key Length LENGTH_HMAC_SHA_512_BLOCK_128 = 64.

See Also:Constant Field Values

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.


javacard/java-card-api/keybuilder.txt · Last modified: 2017/05/13 04:05 (external edit)