com.ibm.crypto.fips.provider
Class RSAKeyFactory
- java.lang.Object
-
- java.security.KeyFactorySpi
-
- com.ibm.crypto.fips.provider.RSAKeyFactory
-
public final class RSAKeyFactory extends java.security.KeyFactorySpiThis class implements the RSA key factory of the IBMJCE/IBMJCA provider.
-
-
Field Summary
Fields Modifier and Type Field and Description static intMAX_MODLENstatic intMAX_MODLEN_RESTRICT_EXPstatic intMAX_RESTRICTED_EXPLENstatic intMIN_MODLEN
-
Constructor Summary
Constructors Constructor and Description RSAKeyFactory()
-
Method Summary
Methods Modifier and Type Method and Description static voidcheckKeyLengths(int modulusLen, java.math.BigInteger exponent, int minModulusLen, int maxModulusLen)Check the length of an RSA key modulus/exponent to make sure it is not too short or long.protected java.security.PrivateKeyengineGeneratePrivate(java.security.spec.KeySpec keySpec)Generates a private key object from the provided key specification (key material).protected java.security.PublicKeyengineGeneratePublic(java.security.spec.KeySpec keySpec)Generates a public key object from the provided key specification (key material).protected java.security.spec.KeySpecengineGetKeySpec(java.security.Key key, java.lang.Class keySpec)Returns a specification (key material) of the given key object in the requested format.protected java.security.KeyengineTranslateKey(java.security.Key key)This action is not allowed in this provider.protected java.security.PrivateKeyinternalGeneratePrivate(java.security.spec.KeySpec keySpec)Generates a private key object from the provided key specification (key material).protected java.security.PublicKeyinternalGeneratePublic(java.security.spec.KeySpec keySpec)Generates a public key object from the provided key specification (key material).protected java.security.spec.KeySpecinternalGetKeySpec(java.security.Key key, java.lang.Class keySpec)Returns a specification (key material) of the given key object in the requested format.static java.security.interfaces.RSAKeytoRSAKey(java.security.Key key)Static method to convert Key into an instance of RSAPublicKeyImpl or RSAPrivate(Crt)KeyImpl.
-
-
-
Field Detail
-
MIN_MODLEN
public static final int MIN_MODLEN
- See Also:
- Constant Field Values
-
MAX_MODLEN
public static final int MAX_MODLEN
- See Also:
- Constant Field Values
-
MAX_MODLEN_RESTRICT_EXP
public static final int MAX_MODLEN_RESTRICT_EXP
- See Also:
- Constant Field Values
-
MAX_RESTRICTED_EXPLEN
public static final int MAX_RESTRICTED_EXPLEN
- See Also:
- Constant Field Values
-
-
Method Detail
-
toRSAKey
public static java.security.interfaces.RSAKey toRSAKey(java.security.Key key) throws java.security.InvalidKeyExceptionStatic method to convert Key into an instance of RSAPublicKeyImpl or RSAPrivate(Crt)KeyImpl. If the key is not an RSA key or cannot be used, throw an InvalidKeyException. Used by RSASignature and RSACipher.- Throws:
java.security.InvalidKeyException
-
checkKeyLengths
public static void checkKeyLengths(int modulusLen, java.math.BigInteger exponent, int minModulusLen, int maxModulusLen) throws java.security.InvalidKeyExceptionCheck the length of an RSA key modulus/exponent to make sure it is not too short or long. Some impls have their own min and max key sizes that may or may not match with a system defined value.- Parameters:
modulusLen- the bit length of the RSA modulus.exponent- the RSA exponentminModulusLen- if > 0, check to see if modulusLen is at least this long, otherwise unused.maxModulusLen- caller will allow this max number of bits. Allow the smaller of the system-defined maximum and this param.- Throws:
java.security.InvalidKeyException- if any of the values are unacceptable.
-
engineGeneratePublic
protected java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec keySpec) throws java.security.spec.InvalidKeySpecExceptionGenerates a public key object from the provided key specification (key material).- Specified by:
engineGeneratePublicin classjava.security.KeyFactorySpi- Parameters:
keySpec- the specification (key material) of the public key- Returns:
- the public key
- Throws:
java.security.spec.InvalidKeySpecException- if the given key specification is inappropriate for this key factory to produce a public key.FIPSRuntimeException- if SelfTest.isFipsRunnable returns false.
-
internalGeneratePublic
protected java.security.PublicKey internalGeneratePublic(java.security.spec.KeySpec keySpec) throws java.security.spec.InvalidKeySpecExceptionGenerates a public key object from the provided key specification (key material).- Parameters:
keySpec- the specification (key material) of the public key- Returns:
- the public key
- Throws:
java.security.spec.InvalidKeySpecException- if the given key specification is inappropriate for this key factory to produce a public key.
-
engineGeneratePrivate
protected java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec keySpec) throws java.security.spec.InvalidKeySpecExceptionGenerates a private key object from the provided key specification (key material).- Specified by:
engineGeneratePrivatein classjava.security.KeyFactorySpi- Parameters:
keySpec- the specification (key material) of the private key- Returns:
- the private key
- Throws:
java.security.spec.InvalidKeySpecException- if the given key specification is inappropriate for this key factory to produce a private key.FIPSRuntimeException- if SelfTest.isFipsRunnable returns false.
-
internalGeneratePrivate
protected java.security.PrivateKey internalGeneratePrivate(java.security.spec.KeySpec keySpec) throws java.security.spec.InvalidKeySpecExceptionGenerates a private key object from the provided key specification (key material).- Parameters:
keySpec- the specification (key material) of the private key- Returns:
- the private key
- Throws:
java.security.spec.InvalidKeySpecException- if the given key specification is inappropriate for this key factory to produce a private key.
-
engineGetKeySpec
protected java.security.spec.KeySpec engineGetKeySpec(java.security.Key key, java.lang.Class keySpec) throws java.security.spec.InvalidKeySpecExceptionReturns a specification (key material) of the given key object in the requested format.- Specified by:
engineGetKeySpecin classjava.security.KeyFactorySpi- Parameters:
key- the keykeySpec- the requested format in which the key material shall be returned- Returns:
- the underlying key specification (key material) in the requested format
- Throws:
java.security.spec.InvalidKeySpecException- if the requested key specification is inappropriate for the given key, or the given key cannot be processed (e.g., the given key has an unrecognized algorithm or format).FIPSRuntimeException- if SelfTest.isFipsRunnable returns false.
-
internalGetKeySpec
protected java.security.spec.KeySpec internalGetKeySpec(java.security.Key key, java.lang.Class keySpec) throws java.security.spec.InvalidKeySpecExceptionReturns a specification (key material) of the given key object in the requested format.- Parameters:
key- the keykeySpec- the requested format in which the key material shall be returned- Returns:
- the underlying key specification (key material) in the requested format
- Throws:
java.security.spec.InvalidKeySpecException- if the requested key specification is inappropriate for the given key, or the given key cannot be processed (e.g., the given key has an unrecognized algorithm or format).
-
engineTranslateKey
protected java.security.Key engineTranslateKey(java.security.Key key) throws java.security.InvalidKeyExceptionThis action is not allowed in this provider. This method is only here to be complient wiht the SUN JCE JCK tests. If a key is passed in, this method will basically return it back to you without doing any work.- Specified by:
engineTranslateKeyin classjava.security.KeyFactorySpi- Parameters:
key- the key.- Throws:
java.security.InvalidKeyException- if the given key is null.
-
-