Package org.forgerock.secrets.keys
Enum Class KeyType
- All Implemented Interfaces:
Serializable
,Comparable<KeyType>
,Constable
Indicates the type of key. Corresponds to the WebCrypto
KeyType enum.
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
-
Method Summary
Modifier and TypeMethodDescriptionAttempts to decode an encoded key value of the given type into an appropriate key object for the given algorithm.static KeyType
forCipherConstant
(int cipherKeyType) static KeyType
Returns the type of the given key, ornull
if the input is null or not recognised.static KeyType
Returns the enum constant of this class with the specified name.static KeyType[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
PUBLIC
An asymmetric public key. Such a key does not need to be kept secret. -
PRIVATE
An asymmetric private key. The private key is used for decrypting/signing, while the public key is used for encrypting/verifying. -
SECRET
A symmetric secret key. The same key is used for all operations.
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
ofKey
Returns the type of the given key, ornull
if the input is null or not recognised.- Parameters:
key
- the key.- Returns:
- the type of key, or
null
if the key is null or not of one of the known types.
-
forCipherConstant
- Parameters:
cipherKeyType
- the cipher key type constant. Must be eitherCipher.SECRET_KEY
,Cipher.PRIVATE_KEY
, orCipher.PUBLIC_KEY
.- Returns:
- the equivalent enum constant.
- Throws:
IllegalArgumentException
- if the constant doesn't match a known key type value.
-
decode
public Key decode(byte[] encodedKeyBytes, String algorithm) throws NoSuchAlgorithmException, InvalidKeySpecException Attempts to decode an encoded key value of the given type into an appropriate key object for the given algorithm.- Parameters:
encodedKeyBytes
- the encoded key bytes. For private keys, this should be in PKCS#8 format; for public keys, in X.509 format; and, for secret keys, in raw format. The key bytes are always defensively copied so callers can safely wipe the input array after this call completes.algorithm
- the algorithm of the resulting key, such as"RSA"
or"AES"
.- Returns:
- the decoded key object.
- Throws:
NoSuchAlgorithmException
- if the algorithm doesn't correspond to a known key algorithm.InvalidKeySpecException
- if the encoded key bytes cannot be decoded as a key of the given type.IllegalArgumentException
- if the key bytes or algorithm are null or empty.
-