Class PrfBasedKeyDerivationKey
- java.lang.Object
-
- com.google.crypto.tink.Key
-
- com.google.crypto.tink.keyderivation.KeyDerivationKey
-
- com.google.crypto.tink.keyderivation.PrfBasedKeyDerivationKey
-
public final class PrfBasedKeyDerivationKey extends KeyDerivationKey
Represents a Derivation key which is based on a PRF.An object of this class represents the map which 1) uses the given PRF (as specified by
getPrfKey()) to get sufficient key material from the salt, then 2) creates a key for the parameters as specified ingetParameters().getDerivedKeyParameters().
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PrfBasedKeyDerivationKeycreate(PrfBasedKeyDerivationParameters parameters, PrfKey prfKey, java.lang.Integer idRequirement)booleanequalsKey(Key other)Returns true if the key is guaranteed to be equal toother.java.lang.IntegergetIdRequirementOrNull()Returns null if this key has no id requirement, otherwise the required id.PrfBasedKeyDerivationParametersgetParameters()Returns aParametersobject containing all the information about the key which is not randomly chosen.PrfKeygetPrfKey()
-
-
-
Method Detail
-
create
public static PrfBasedKeyDerivationKey create(PrfBasedKeyDerivationParameters parameters, PrfKey prfKey, @Nullable java.lang.Integer idRequirement) throws java.security.GeneralSecurityException
- Throws:
java.security.GeneralSecurityException
-
getPrfKey
public PrfKey getPrfKey()
-
getParameters
public PrfBasedKeyDerivationParameters getParameters()
Description copied from class:KeyReturns aParametersobject containing all the information about the key which is not randomly chosen.Implementations need to ensure that
getParameters().hasIdRequirement()returns true if and only ifgetIdRequirementOrNullis non-null.- Specified by:
getParametersin classKeyDerivationKey
-
getIdRequirementOrNull
@Nullable public java.lang.Integer getIdRequirementOrNull()
Description copied from class:KeyReturns null if this key has no id requirement, otherwise the required id.Some keys, when they are in a keyset, are required to have a certain ID to work properly. This comes from the fact that Tink in some cases prefixes ciphertexts or signatures with the string
0x01<id>, where the ID is encoded in big endian (see the documentation of the key type for details), in which case the key requires a certain ID.- Specified by:
getIdRequirementOrNullin classKey
-
equalsKey
public boolean equalsKey(Key other)
Description copied from class:KeyReturns true if the key is guaranteed to be equal toother.Implementations are required to do this in constant time.
Note: this is allowed to return false even if two keys are guaranteed to represent the same function, but are represented differently. For example, a key is allowed to internally store the number of zero-bytes used as padding when a large number is represented as a byte array, and use this in the comparison.
Note: Tink
Keyobjects should typically not overridehashCode(because it could risk leaking key material). Hence, they typically also should not overrideequals.
-
-