Class KeyBuilder


  • public class KeyBuilder
    extends Object
    The KeyBuilder class is a key object factory.
    • 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
      • TYPE_RSA_PRIVATE_TRANSIENT_RESET

        public static final byte TYPE_RSA_PRIVATE_TRANSIENT_RESET
        Key object which implements interface type RSAPrivateKey which uses modulus/exponent form, 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_RSA_PRIVATE_TRANSIENT_DESELECT

        public static final byte TYPE_RSA_PRIVATE_TRANSIENT_DESELECT
        Key object which implements interface type RSAPrivateKey which uses modulus/exponent form, 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_RSA_CRT_PRIVATE_TRANSIENT_RESET

        public static final byte TYPE_RSA_CRT_PRIVATE_TRANSIENT_RESET
        Key object which implements interface type RSAPrivateCrtKey which uses Chinese Remainder Theorem, 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_RSA_CRT_PRIVATE_TRANSIENT_DESELECT

        public static final byte TYPE_RSA_CRT_PRIVATE_TRANSIENT_DESELECT
        Key object which implements interface type RSAPrivateCrtKey which uses Chinese Remainder Theorem, 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_DSA_PRIVATE_TRANSIENT_RESET

        public static final byte TYPE_DSA_PRIVATE_TRANSIENT_RESET
        Key object which implements the interface type DSAPrivateKey for the DSA algorithm, 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_DSA_PRIVATE_TRANSIENT_DESELECT

        public static final byte TYPE_DSA_PRIVATE_TRANSIENT_DESELECT
        Key object which implements the interface type DSAPrivateKey for the DSA algorithm, 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_EC_F2M_PRIVATE_TRANSIENT_RESET

        public static final byte TYPE_EC_F2M_PRIVATE_TRANSIENT_RESET
        Key object which implements the interface type ECPrivateKey for EC operations over fields of characteristic 2 with polynomial basis, 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_EC_F2M_PRIVATE_TRANSIENT_DESELECT

        public static final byte TYPE_EC_F2M_PRIVATE_TRANSIENT_DESELECT
        Key object which implements the interface type ECPrivateKey for EC operations over fields of characteristic 2 with polynomial basis, 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_EC_FP_PRIVATE_TRANSIENT_RESET

        public static final byte TYPE_EC_FP_PRIVATE_TRANSIENT_RESET
        Key object which implements the interface type ECPrivateKey for EC operations over large prime fields, 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_EC_FP_PRIVATE_TRANSIENT_DESELECT

        public static final byte TYPE_EC_FP_PRIVATE_TRANSIENT_DESELECT
        Key object which implements the interface type ECPrivateKey for EC operations over large prime fields, 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_DH_PUBLIC

        public static final byte TYPE_DH_PUBLIC
        Key object which implements the interface type DHPublicKey for DH operations.
        See Also:
        Constant Field Values
      • TYPE_DH_PUBLIC_TRANSIENT_DESELECT

        public static final byte TYPE_DH_PUBLIC_TRANSIENT_DESELECT
        Key object which implements the interface type DHPublicKey for DH operations, . This Key object implicitly performs a clearKey() on applet deselection, card power on or card reset.
        See Also:
        Constant Field Values
      • TYPE_DH_PUBLIC_TRANSIENT_RESET

        public static final byte TYPE_DH_PUBLIC_TRANSIENT_RESET
        Key object which implements the interface type DHPublicKey for DH operations. This Key object implicitly performs a clearKey() on card power on or card reset.
        See Also:
        Constant Field Values
      • TYPE_DH_PRIVATE

        public static final byte TYPE_DH_PRIVATE
        Key object which implements the interface type DHPrivateKey for DH operations.
        See Also:
        Constant Field Values
      • TYPE_DH_PRIVATE_TRANSIENT_DESELECT

        public static final byte TYPE_DH_PRIVATE_TRANSIENT_DESELECT
        Key object which implements the interface type DHPrivateKey for DH operations, . This Key object implicitly performs a clearKey() on applet deselection, card power on or card reset.
        See Also:
        Constant Field Values
      • TYPE_DH_PRIVATE_TRANSIENT_RESET

        public static final byte TYPE_DH_PRIVATE_TRANSIENT_RESET
        Key object which implements the interface type DHPrivateKey for DH operations. This Key object implicitly performs a clearKey() on card power on or card reset.
        See Also:
        Constant Field Values
      • TYPE_GENERIC_SECRET

        public static final byte TYPE_GENERIC_SECRET
        Key object which implements interface type GenericSecretKey.
        Since:
        3.1
        See Also:
        Constant Field Values
      • TYPE_SM4

        public static final byte TYPE_SM4
        Key object which implements interface type SM4Key.
        Since:
        3.1
        See Also:
        Constant Field Values
      • ALG_TYPE_DSA_PUBLIC

        public static final byte ALG_TYPE_DSA_PUBLIC
        Algorithmic key type ALG_TYPE_DSA_PUBLIC choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type DSAPublicKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_DSA_PRIVATE

        public static final byte ALG_TYPE_DSA_PRIVATE
        Algorithmic key type ALG_TYPE_DSA_PRIVATE choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type DSAPrivateKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_EC_F2M_PUBLIC

        public static final byte ALG_TYPE_EC_F2M_PUBLIC
        Algorithmic key type ALG_TYPE_EC_F2M_PUBLIC choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type ECPublicKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_EC_F2M_PRIVATE

        public static final byte ALG_TYPE_EC_F2M_PRIVATE
        Algorithmic key type ALG_TYPE_EC_F2M_PRIVATE choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type ECPrivateKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_EC_FP_PUBLIC

        public static final byte ALG_TYPE_EC_FP_PUBLIC
        Algorithmic key type ALG_TYPE_EC_FP_PUBLIC choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type ECPublicKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_EC_FP_PRIVATE

        public static final byte ALG_TYPE_EC_FP_PRIVATE
        Algorithmic key type ALG_TYPE_EC_FP_PRIVATE choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type ECPrivateKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_KOREAN_SEED

        public static final byte ALG_TYPE_KOREAN_SEED
        Algorithmic key type ALG_TYPE_KOREAN_SEED choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type KoreanSEEDKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_RSA_PUBLIC

        public static final byte ALG_TYPE_RSA_PUBLIC
        Algorithmic key type ALG_TYPE_RSA_PUBLIC choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type RSAPublicKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_RSA_PRIVATE

        public static final byte ALG_TYPE_RSA_PRIVATE
        Algorithmic key type ALG_TYPE_RSA_PRIVATE choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type RSAPrivateKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_RSA_CRT_PRIVATE

        public static final byte ALG_TYPE_RSA_CRT_PRIVATE
        Algorithmic key type ALG_TYPE_RSA_CRT_PRIVATE choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type RSAPrivateCrtKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_DH_PUBLIC

        public static final byte ALG_TYPE_DH_PUBLIC
        Algorithmic key type ALG_TYPE_DH_PUBLIC choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type DSAPublicKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_DH_PRIVATE

        public static final byte ALG_TYPE_DH_PRIVATE
        Algorithmic key type ALG_TYPE_DH_PRIVATE choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type DSAPrivateKey.
        See Also:
        Constant Field Values
      • ALG_TYPE_EC_F2M_PARAMETERS

        public static final byte ALG_TYPE_EC_F2M_PARAMETERS
        Algorithmic key type ALG_TYPE_EC_F2M_PARAMETERS choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface types ECKey and Key.
        See Also:
        Constant Field Values
      • ALG_TYPE_EC_FP_PARAMETERS

        public static final byte ALG_TYPE_EC_FP_PARAMETERS
        Algorithmic key type ALG_TYPE_EC_FP_PARAMETERS choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface types ECKey and Key.
        See Also:
        Constant Field Values
      • ALG_TYPE_DSA_PARAMETERS

        public static final byte ALG_TYPE_DSA_PARAMETERS
        Algorithmic key type ALG_TYPE_DSA_PARAMETERS choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface types DSAKey and Key.
        See Also:
        Constant Field Values
      • ALG_TYPE_DH_PARAMETERS

        public static final byte ALG_TYPE_DH_PARAMETERS
        Algorithmic key type ALG_TYPE_DH_PARAMETERS choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface types DHKey and Key.
        See Also:
        Constant Field Values
      • ALG_TYPE_GENERIC_SECRET

        public static final byte ALG_TYPE_GENERIC_SECRET
        Algorithmic key type ALG_GENERIC_SECRET choice for the algorithmicKeyType parameter of the buildKey(byte, byte, short, boolean) method. The key instance created implements the interface type GenericSecretKey.
        Since:
        3.1
        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 for triple DES algorithm = 128.
        See Also:
        Constant Field Values
      • LENGTH_DES3_3KEY

        public static final short LENGTH_DES3_3KEY
        DES Key Length LENGTH_DES3_3KEY for triple DES algorithm = 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_RSA_3072

        public static final short LENGTH_RSA_3072
        RSA Key Length LENGTH_RSA_3072 = 3072.
        Since:
        3.0.5
        See Also:
        Constant Field Values
      • LENGTH_RSA_4096

        public static final short LENGTH_RSA_4096
        RSA Key Length LENGTH_RSA_4096 = 4096.
        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_EC_FP_224

        public static final short LENGTH_EC_FP_224
        EC Key Length LENGTH_EC_FP_224 = 224.
        See Also:
        Constant Field Values
      • LENGTH_EC_FP_256

        public static final short LENGTH_EC_FP_256
        EC Key Length LENGTH_EC_FP_256 = 256.
        See Also:
        Constant Field Values
      • LENGTH_EC_FP_384

        public static final short LENGTH_EC_FP_384
        EC Key Length LENGTH_EC_FP_384 = 384.
        See Also:
        Constant Field Values
      • LENGTH_EC_FP_521

        public static final short LENGTH_EC_FP_521
        EC Key Length LENGTH_EC_FP_521 = 521.
        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_AES_512

        public static final short LENGTH_AES_512
        AES Key Length LENGTH_AES_512 = 512. This key length must be used to create keys made of two AES-256 sub-keys as required for some algorithms
        Since:
        3.1
        See Also:
        Cipher.CIPHER_AES_XTS, 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_DH_1024

        public static final short LENGTH_DH_1024
        DH Key Length LENGTH_DH_1024 = 1024.
        See Also:
        Constant Field Values
      • LENGTH_DH_2048

        public static final short LENGTH_DH_2048
        DH Key Length LENGTH_DH_2048 = 2048.
        See Also:
        Constant Field Values
      • LENGTH_SM4

        public static final short LENGTH_SM4
        SM4 Key Length LENGTH_SM4 = 128.
        Since:
        3.1
        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, for example 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, for example 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.
        See Also:
        buildKey(byte, byte, short, boolean)
      • buildXECKey

        public static Key buildXECKey​(NamedParameterSpec params,
                                      short attributes,
                                      boolean keyEncryption)
                               throws CryptoException
        Creates uninitialized cryptographic keys for named curves with predefined elliptic curve domain parameters. Instances created are either implementing the XECPublicKey interface or the XECPrivateKey interface and can be used to initialize instances of Signature, Cipher, KeyPair or KeyAgreement.

        Example:

         NamedParameterSpec x25519 = NamedParameterSpec.getInstance(X25519);
         XECPrivateKey k = KeyBuilder.buildXECKey(x25519, (short)(MEMORY_TYPE_PERSISTENT|ATTR_PRIVATE), false);
         

        Parameters:
        params - named parameters defining the curve domain parameters
        attributes - the key attributes. Use bitwise OR to select relevant attributes
        • type of memory for key data storage: use JCSystem.MEMORY_TYPE_* constants, for example MEMORY_TYPE_PERSISTENT.
        • Asymmetric key type: ATTR_PUBLIC or ATTR_PRIVATE. The created key will respectively implements XECPublicKey interface or XECPrivateKey interface
        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 algorithmic key type, key memory storage type, key length and encrypted access required
        Throws:
        CryptoException - with the following reason codes:
        • CryptoException.NO_SUCH_ALGORITHM if the requested algorithm associated with the specified algorithmic type, or memory storage type for key, or size of key or key encryption interface requested is not supported.
        Since:
        3.1
        See Also:
        buildKey(byte, short, boolean)
      • buildKey

        public static Key buildKey​(byte algorithmicKeyType,
                                   byte keyMemoryType,
                                   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:
        algorithmicKeyType - the type of key and algorithm to be generated. Valid codes listed in ALG_TYPE_* constants, for example ALG_TYPE_DES.
        keyMemoryType - the type of memory for key data storage. Valid codes listed in JCSystem.MEMORY_TYPE_* constants, for example MEMORY_TYPE_PERSISTENT.
        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, for example 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 algorithmic key type, key memory storage type, key length and encrypted access required
        Throws:
        CryptoException - with the following reason codes:
        • CryptoException.NO_SUCH_ALGORITHM if the requested algorithm associated with the specified algorithmic type, or memory storage type for key, or size of key or key encryption interface requested is not supported.
        Since:
        3.0.4
        See Also:
        buildKey(byte, short, boolean)
      • buildKeyWithSharedDomain

        public static Key buildKeyWithSharedDomain​(byte algorithmicKeyType,
                                                   byte keyMemoryType,
                                                   Key domainParameters,
                                                   boolean keyEncryption)
                                            throws CryptoException
        Creates cryptographic keys for signature and key agreement algorithms. Only instances created by this method may be the key objects used to initialize instances of Signature, KeyAgreement and KeyPair. Note that the object returned must be cast to their appropriate key type interface.

        The domain parameters object in the domainParameters argument is shared with other keys created using the same parameter argument. This means that any changes to the shared parameters - by calling one of the setter methods - will be reflected within the other keys sharing these parameters.

        The domainParameters argument must be a special parameters object. Parameter objects can be created created using key algorithm types which are suffixed with _PARAMETERS using the buildKey(byte, byte, short, boolean) method. The key value, such as the secret S or the public point W for an EC Key, or X or Y for DH and DSA Key will never be shared. The key size is determined by information contained in the domainParameters argument.

        Parameters:
        algorithmicKeyType - the type of key and algorithm to be generated. Valid codes listed in ALG_TYPE_* constants, for example ALG_TYPE_EC_F2M_PUBLIC.
        keyMemoryType - the type of memory for key data storage. Valid codes listed in JCSystem.MEMORY_TYPE_* constants, for example MEMORY_TYPE_PERSISTENT.
        domainParameters - a special parameters object containing domain parameters. Parameter objects can be created created using key types which are suffixed with _PARAMETERS
        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.