Class PowerAuthClientKeyFactory
java.lang.Object
io.getlime.security.powerauth.crypto.client.keyfactory.PowerAuthClientKeyFactory
Class implementing client side key factory for keys related to PowerAuth processes.
- Author:
- Petr Dvorak, petr@wultra.com
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongenerateClientMasterSecretKey(PrivateKey devicePrivateKey, PublicKey serverPublicKey) Generate a master secret key KEY_MASTER_SECRET using the device private key KEY_DEVICE_PRIVATE and server public key KEY_SERVER_PUBLIC.generateClientSignatureBiometryKey(SecretKey masterSecretKey) Generate a signature key KEY_SIGNATURE_BIOMETRY from master secret key KEY_MASTER_SECRET using KDF.generateClientSignatureKnowledgeKey(SecretKey masterSecretKey) Generate a signature key KEY_SIGNATURE_KNOWLEDGE from master secret key KEY_MASTER_SECRET using KDF.generateClientSignaturePossessionKey(SecretKey masterSecretKey) Generate a signature key KEY_SIGNATURE_POSSESSION from master secret key KEY_MASTER_SECRET using KDF.generateServerEncryptedVaultKey(SecretKey masterSecretKey) Generate a transport key KEY_ENCRYPTED_VAULT from master secret key KEY_MASTER_SECRET using KDF.generateServerTransportKey(SecretKey masterSecretKey) Generate a transport key KEY_TRANSPORT from master secret key KEY_MASTER_SECRET using KDF.keysForSignatureType(PowerAuthSignatureTypes signatureType, SecretKey masterSecretKey) Generate a list with signature keys for given signature type and master secretkeysForSignatureType(PowerAuthSignatureTypes signatureType, SecretKey possessionSignatureKey, SecretKey knowledgeSignatureKey, SecretKey biometrySignatureKey) Return a correct list of keys for given signature type.
-
Constructor Details
-
PowerAuthClientKeyFactory
public PowerAuthClientKeyFactory()
-
-
Method Details
-
keysForSignatureType
public List<SecretKey> keysForSignatureType(PowerAuthSignatureTypes signatureType, SecretKey possessionSignatureKey, SecretKey knowledgeSignatureKey, SecretKey biometrySignatureKey) Return a correct list of keys for given signature type.- Parameters:
signatureType- Requested type of a signature.possessionSignatureKey- Possession factor related signature key.knowledgeSignatureKey- Knowledge factor related signature key.biometrySignatureKey- Biometry factor related signature key.- Returns:
- List with correct keys
-
keysForSignatureType
public List<SecretKey> keysForSignatureType(PowerAuthSignatureTypes signatureType, SecretKey masterSecretKey) throws InvalidKeyException, GenericCryptoException, CryptoProviderException Generate a list with signature keys for given signature type and master secret- Parameters:
signatureType- Requested signature typemasterSecretKey- Master Key Secret- Returns:
- List with keys constructed from master secret that are needed to get requested signature type.
- Throws:
InvalidKeyException- In case master secret key is invalid.GenericCryptoException- In case key derivation fails.CryptoProviderException- In case cryptography provider is incorrectly initialized.
-
generateClientMasterSecretKey
public SecretKey generateClientMasterSecretKey(PrivateKey devicePrivateKey, PublicKey serverPublicKey) throws InvalidKeyException, CryptoProviderException Generate a master secret key KEY_MASTER_SECRET using the device private key KEY_DEVICE_PRIVATE and server public key KEY_SERVER_PUBLIC.- Parameters:
devicePrivateKey- Device private key KEY_DEVICE_PRIVATE.serverPublicKey- Server public key KEY_SERVER_PUBLIC.- Returns:
- Computed symmetric key KEY_MASTER_SECRET.
- Throws:
InvalidKeyException- In case some provided key is invalid.CryptoProviderException- In case cryptography provider is incorrectly initialized.
-
generateClientSignatureBiometryKey
public SecretKey generateClientSignatureBiometryKey(SecretKey masterSecretKey) throws InvalidKeyException, GenericCryptoException, CryptoProviderException Generate a signature key KEY_SIGNATURE_BIOMETRY from master secret key KEY_MASTER_SECRET using KDF.- Parameters:
masterSecretKey- Master secret key KEY_MASTER_SECRET.- Returns:
- An instance of signature key KEY_SIGNATURE_BIOMETRY.
- Throws:
InvalidKeyException- In case master secret key is invalid.GenericCryptoException- In case key derivation fails.CryptoProviderException- In case cryptography provider is incorrectly initialized.- See Also:
-
generateClientSignatureKnowledgeKey
public SecretKey generateClientSignatureKnowledgeKey(SecretKey masterSecretKey) throws InvalidKeyException, GenericCryptoException, CryptoProviderException Generate a signature key KEY_SIGNATURE_KNOWLEDGE from master secret key KEY_MASTER_SECRET using KDF.- Parameters:
masterSecretKey- Master secret key KEY_MASTER_SECRET.- Returns:
- An instance of signature key KEY_SIGNATURE_KNOWLEDGE.
- Throws:
InvalidKeyException- In case master secret key is invalid.GenericCryptoException- In case key derivation fails.CryptoProviderException- In case cryptography provider is incorrectly initialized.- See Also:
-
generateClientSignaturePossessionKey
public SecretKey generateClientSignaturePossessionKey(SecretKey masterSecretKey) throws InvalidKeyException, GenericCryptoException, CryptoProviderException Generate a signature key KEY_SIGNATURE_POSSESSION from master secret key KEY_MASTER_SECRET using KDF.- Parameters:
masterSecretKey- Master secret key KEY_MASTER_SECRET.- Returns:
- An instance of signature key KEY_SIGNATURE_POSSESSION.
- Throws:
InvalidKeyException- In case master secret key is invalid.GenericCryptoException- In case key derivation fails.CryptoProviderException- In case cryptography provider is incorrectly initialized.- See Also:
-
generateServerEncryptedVaultKey
public SecretKey generateServerEncryptedVaultKey(SecretKey masterSecretKey) throws InvalidKeyException, GenericCryptoException, CryptoProviderException Generate a transport key KEY_ENCRYPTED_VAULT from master secret key KEY_MASTER_SECRET using KDF.- Parameters:
masterSecretKey- Master secret key KEY_MASTER_SECRET.- Returns:
- An instance of signature key KEY_ENCRYPTED_VAULT.
- Throws:
InvalidKeyException- In case master secret key is invalid.GenericCryptoException- In case key derivation fails.CryptoProviderException- In case cryptography provider is incorrectly initialized.- See Also:
-
generateServerTransportKey
public SecretKey generateServerTransportKey(SecretKey masterSecretKey) throws InvalidKeyException, GenericCryptoException, CryptoProviderException Generate a transport key KEY_TRANSPORT from master secret key KEY_MASTER_SECRET using KDF.- Parameters:
masterSecretKey- Master secret key KEY_MASTER_SECRET.- Returns:
- An instance of signature key KEY_TRANSPORT.
- Throws:
InvalidKeyException- In case master secret key is invalid.GenericCryptoException- In case key derivation fails.CryptoProviderException- In case cryptography provider is incorrectly initialized.- See Also:
-