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.KeyFactorySpi
    This class implements the RSA key factory of the IBMJCE/IBMJCA provider.
    • Constructor Summary

      Constructors 
      Constructor and Description
      RSAKeyFactory() 
    • Method Summary

      Methods 
      Modifier and Type Method and Description
      static void checkKeyLengths(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.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec keySpec)
      Generates a private key object from the provided key specification (key material).
      protected java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec keySpec)
      Generates a public key object from the provided key specification (key material).
      protected java.security.spec.KeySpec engineGetKeySpec(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.Key engineTranslateKey(java.security.Key key)
      This action is not allowed in this provider.
      protected java.security.PrivateKey internalGeneratePrivate(java.security.spec.KeySpec keySpec)
      Generates a private key object from the provided key specification (key material).
      protected java.security.PublicKey internalGeneratePublic(java.security.spec.KeySpec keySpec)
      Generates a public key object from the provided key specification (key material).
      protected java.security.spec.KeySpec internalGetKeySpec(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.RSAKey toRSAKey(java.security.Key key)
      Static method to convert Key into an instance of RSAPublicKeyImpl or RSAPrivate(Crt)KeyImpl.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RSAKeyFactory

        public RSAKeyFactory()
    • Method Detail

      • toRSAKey

        public static java.security.interfaces.RSAKey toRSAKey(java.security.Key key)
                                                        throws java.security.InvalidKeyException
        Static 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.InvalidKeyException
        Check 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 exponent
        minModulusLen - 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.InvalidKeySpecException
        Generates a public key object from the provided key specification (key material).
        Specified by:
        engineGeneratePublic in class java.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.InvalidKeySpecException
        Generates 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.InvalidKeySpecException
        Generates a private key object from the provided key specification (key material).
        Specified by:
        engineGeneratePrivate in class java.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.InvalidKeySpecException
        Generates 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.InvalidKeySpecException
        Returns a specification (key material) of the given key object in the requested format.
        Specified by:
        engineGetKeySpec in class java.security.KeyFactorySpi
        Parameters:
        key - the key
        keySpec - 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.InvalidKeySpecException
        Returns a specification (key material) of the given key object in the requested format.
        Parameters:
        key - the key
        keySpec - 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.InvalidKeyException
        This 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:
        engineTranslateKey in class java.security.KeyFactorySpi
        Parameters:
        key - the key.
        Throws:
        java.security.InvalidKeyException - if the given key is null.
© Portions Copyright 2003, 2014, 2015, 2016 IBM Corporation. All rights reserved.
© Portions Copyright 2003, 2014 Oracle and/or its affiliates. All rights reserved.