Package org.wildfly.security.password
Class PasswordFactorySpi
- java.lang.Object
-
- org.wildfly.security.password.PasswordFactorySpi
-
- Direct Known Subclasses:
PasswordFactorySpiImpl
public abstract class PasswordFactorySpi extends Object
The SPI for password factories to implement.- Author:
- David M. Lloyd
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PasswordFactorySpi()
Construct a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract <S extends KeySpec>
booleanengineConvertibleToKeySpec(String algorithm, Password password, Class<S> keySpecType)
Determine whether the given password object is convertible to the given key specification type.protected abstract Password
engineGeneratePassword(String algorithm, KeySpec keySpec)
Generate a password from the given key specification.protected abstract <S extends KeySpec>
SengineGetKeySpec(String algorithm, Password password, Class<S> keySpecType)
Get a key specification for the given password object.protected abstract boolean
engineIsTranslatablePassword(String algorithm, Password password)
Determine whether the given password can be translated into one which is consumable by this factory.protected abstract Password
engineTransform(String algorithm, Password password, AlgorithmParameterSpec parameterSpec)
Transform a password with new parameters.protected abstract Password
engineTranslatePassword(String algorithm, Password password)
Translate a password object into one which is supported by this engine.protected abstract boolean
engineVerify(String algorithm, Password password, char[] guess)
Perform password verification.protected boolean
engineVerify(String algorithm, Password password, char[] guess, Charset hashCharset)
Perform password verification.
-
-
-
Method Detail
-
engineGeneratePassword
protected abstract Password engineGeneratePassword(String algorithm, KeySpec keySpec) throws InvalidKeySpecException
Generate a password from the given key specification.- Parameters:
algorithm
- the password algorithmkeySpec
- the key specification- Returns:
- the password
- Throws:
InvalidKeySpecException
- if the key specification is not supported
-
engineGetKeySpec
protected abstract <S extends KeySpec> S engineGetKeySpec(String algorithm, Password password, Class<S> keySpecType) throws InvalidKeySpecException
Get a key specification for the given password object.- Type Parameters:
S
- the key specification type- Parameters:
algorithm
- the password algorithmpassword
- the password objectkeySpecType
- the key specification class- Returns:
- the key specification
- Throws:
InvalidKeySpecException
- if the key specification type is not supported
-
engineIsTranslatablePassword
protected abstract boolean engineIsTranslatablePassword(String algorithm, Password password)
Determine whether the given password can be translated into one which is consumable by this factory. If this method returnstrue
, thenengineTranslatePassword(String, Password)
must succeed.- Parameters:
password
- the password object- Returns:
true
if the given password is supported by this algorithm,false
otherwise
-
engineTranslatePassword
protected abstract Password engineTranslatePassword(String algorithm, Password password) throws InvalidKeyException
Translate a password object into one which is supported by this engine.- Parameters:
algorithm
- the password algorithmpassword
- the password object- Returns:
- the translated password
- Throws:
InvalidKeyException
- if the given password type is not supported
-
engineVerify
protected abstract boolean engineVerify(String algorithm, Password password, char[] guess) throws InvalidKeyException
Perform password verification.- Parameters:
algorithm
- the password algorithmpassword
- the password objectguess
- the guessed password- Returns:
true
if the password matches,false
otherwise- Throws:
InvalidKeyException
- if the given password type is not supported
-
engineVerify
protected boolean engineVerify(String algorithm, Password password, char[] guess, Charset hashCharset) throws InvalidKeyException
Perform password verification.- Parameters:
algorithm
- the password algorithmpassword
- the password objectguess
- the guessed passwordhashCharset
- the character set used in the password object representation (must not benull
)- Returns:
true
if the password matches,false
otherwise- Throws:
InvalidKeyException
- if the given password type is not supportedUnsupportedOperationException
- if this method is not supported by the password factory implementation
-
engineConvertibleToKeySpec
protected abstract <S extends KeySpec> boolean engineConvertibleToKeySpec(String algorithm, Password password, Class<S> keySpecType)
Determine whether the given password object is convertible to the given key specification type.- Type Parameters:
S
- the key specification type- Parameters:
algorithm
- the password algorithmpassword
- the password objectkeySpecType
- the key specification class- Returns:
true
if the password is convertible,false
otherwise
-
engineTransform
protected abstract Password engineTransform(String algorithm, Password password, AlgorithmParameterSpec parameterSpec) throws InvalidKeyException, InvalidAlgorithmParameterException
Transform a password with new parameters. Not every transformation is allowed, but iterative password types generally should allow increasing the number of iterations.- Parameters:
algorithm
- the password algorithmpassword
- the passwordparameterSpec
- the new parameters- Returns:
- the transformed password
- Throws:
InvalidKeyException
- if the given password is invalidInvalidAlgorithmParameterException
- if the transformation cannot be applied to the given parameters
-
-