Class DilithiumKeyFactory


  • public class DilithiumKeyFactory
    extends java.security.KeyFactorySpi
    This class implements the CRYSTALS-Dilithium key factory of the IBMJCECCA provider.

    This documentation describes a Service Provider Interface. It is provided for implementation insight only. This class is not intended to be called directly by application developers. Please consult the 'Java Cryptography Architecture Standard' for details on how to use this interface through a public standard class.

    • Constructor Summary

      Constructors 
      Constructor Description
      DilithiumKeyFactory()
      Creates a new instance of this class.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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 <T extends java.security.spec.KeySpec>
      T
      engineGetKeySpec​(java.security.Key key, java.lang.Class<T> keySpec)
      Returns a specification (key material) of the given key object in the requested format.
      protected java.security.Key engineTranslateKey​(java.security.Key key)
      Translates a key object, whose provider may be unknown or potentially untrusted, into a corresponding key object of this key factory.
      • Methods inherited from class java.lang.Object

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

      • DilithiumKeyFactory

        public DilithiumKeyFactory()
        Creates a new instance of this class.
    • Method Detail

      • 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. Two key specs are supported including DilithiumPublicKeySpec and KeyLabelKeySpec. In the case of using a KeyLabelKeySpec, the key spec must point to an already existing key within the PKDS.
        Returns:
        the public key representing the material contained within the specified key spec.
        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. Two key specs are supported including DilithiumPrivateKeySpec and KeyLabelKeySpec. In the case of using a KeyLabelKeySpec the key spec must point to an already existing key within the PKDS.
        Returns:
        the private key representing the material contained within the specified key spec.
        Throws:
        java.security.spec.InvalidKeySpecException - if the given key specification is inappropriate for this key factory to produce a private key.
      • engineGetKeySpec

        protected <T extends java.security.spec.KeySpec> T engineGetKeySpec​(java.security.Key key,
                                                                            java.lang.Class<T> 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 object, must be either DilithiumPublicKey or DilithiumPrivateKey
        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
        Translates a key object, whose provider may be unknown or potentially untrusted, into a corresponding key object of this key factory.
        Specified by:
        engineTranslateKey in class java.security.KeyFactorySpi
        Parameters:
        key - the key whose provider is unknown or untrusted. Key types acceptable are PublicKey and PrivateKey
        Returns:
        the translated key.
        Throws:
        java.security.InvalidKeyException - if the given key cannot be processed by this key factory.