Package org.forgerock.secrets
Interface SecretConstraint<T extends Secret>
- Type Parameters:
 T- the type of secrets that are being constrained.
public interface SecretConstraint<T extends Secret>
Interface for constraints on a secret that must be satisfied for a given 
Purpose. This allows using a
 single root purpose (e.g. signing.key) and then deriving more specific requirements (e.g., only allowing
 RSA keys).- 
Method Summary
Modifier and TypeMethodDescriptionstatic SecretConstraint<CryptoKey>allowedAlgorithm(String algorithm) Enforces that the key is allowed to be used with the given algorithm.static SecretConstraint<CryptoKey>allowedKeyUsages(Set<KeyUsage> keyUsages) Enforces that the key satisfies at least one of the given key usage constraints.static SecretConstraint<CryptoKey>allowedKeyUsages(KeyUsage first, KeyUsage... rest) Enforces that the key satisfies at least one of the given key usage constraints.static SecretConstraint<CryptoKey>ellipticCurveKeyParameters(ECParameterSpec requiredParameters) Enforces that the key is an elliptic curve key with the given parameters.booleanisSatisfiedBy(T secret) Determines whether this constraint is satisfied by the given secret.static SecretConstraint<CryptoKey>keyAlgorithm(String keyAlgorithm) Enforces a particular key algorithm (case insensitive).static SecretConstraint<CryptoKey>requiredKeyUsages(Set<KeyUsage> keyUsages) Enforces that the key satisfies all of the given key usage constraints.static SecretConstraint<CryptoKey>requiredKeyUsages(KeyUsage first, KeyUsage... rest) Enforces that the key satisfies all of the given key usage constraints. 
- 
Method Details
- 
isSatisfiedBy
Determines whether this constraint is satisfied by the given secret.- Parameters:
 secret- the secret to test.- Returns:
 - whether the secret satisfies the constraint.
 
 - 
keyAlgorithm
Enforces a particular key algorithm (case insensitive).- Parameters:
 keyAlgorithm- the key algorithm.- Returns:
 - a constraint that enforces that keys have a certain key algorithm.
 
 - 
allowedKeyUsages
Enforces that the key satisfies at least one of the given key usage constraints.- Parameters:
 keyUsages- the allowed key usages.- Returns:
 - a constraint that enforces the key usage restrictions.
 
 - 
allowedKeyUsages
Enforces that the key satisfies at least one of the given key usage constraints.- Parameters:
 first- the first allowed key usage.rest- the remaining allowed key usages.- Returns:
 - a constraint that enforces the key usage restrictions.
 
 - 
requiredKeyUsages
Enforces that the key satisfies all of the given key usage constraints.- Parameters:
 keyUsages- the required key usages.- Returns:
 - a constraint that enforces the key usage restrictions.
 
 - 
requiredKeyUsages
Enforces that the key satisfies all of the given key usage constraints.- Parameters:
 first- the first required key usage.rest- the remaining required key usages.- Returns:
 - a constraint that enforces the key usage restrictions.
 
 - 
ellipticCurveKeyParameters
Enforces that the key is an elliptic curve key with the given parameters.- Parameters:
 requiredParameters- the required elliptic curve parameters.- Returns:
 - a constraint that enforces the required curve parameters.
 
 - 
allowedAlgorithm
Enforces that the key is allowed to be used with the given algorithm. The format of the algorithm name is unspecified and could be, for example, a JWE/JWS algorithm name or a Java algorithm name.- Parameters:
 algorithm- the name of the algorithm to check compatibility with.- Returns:
 - a constraint that enforces that keys are allowed to be used with the given algorithm.
 
 
 -