Class KeyFactorySpi


  • public class KeyFactorySpi
    extends java.security.KeyFactorySpi
    KeyFactory for the SM9 master keys (sm9sign and sm9encrypt): the master public and private keys round-trip through their JCA X.509 / PKCS#8 encodings (the GM/T 0080-2020 key material under the GM algorithm OID; the bare GM/T 0080-2020 form is the lightweight key-parameter class's getEncoded()).

    A user's identity-based key is not decodable in isolation - it additionally needs the master public key and the identity, and for an encryption key the hid and the usage (KEM / decryption or key exchange) too - so it does not decode from a plain PKCS#8 spec. Rebuild a stored user key from its encoding plus that context with an SM9SigUserPrivateKeySpec / SM9EncUserPrivateKeySpec (also handed back by getKeySpec), or derive it afresh from the master private key via the master key's generateUserKeyPair method.

    • Constructor Summary

      Constructors 
      Constructor Description
      KeyFactorySpi()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.security.PrivateKey engineGeneratePrivate​(java.security.spec.KeySpec keySpec)  
      protected java.security.PublicKey engineGeneratePublic​(java.security.spec.KeySpec keySpec)  
      protected java.security.spec.KeySpec engineGetKeySpec​(java.security.Key key, java.lang.Class keySpec)  
      protected java.security.Key engineTranslateKey​(java.security.Key key)  
      • Methods inherited from class java.lang.Object

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

      • KeyFactorySpi

        public KeyFactorySpi()
    • Method Detail

      • engineGeneratePublic

        protected java.security.PublicKey engineGeneratePublic​(java.security.spec.KeySpec keySpec)
                                                        throws java.security.spec.InvalidKeySpecException
        Specified by:
        engineGeneratePublic in class java.security.KeyFactorySpi
        Throws:
        java.security.spec.InvalidKeySpecException
      • engineGeneratePrivate

        protected java.security.PrivateKey engineGeneratePrivate​(java.security.spec.KeySpec keySpec)
                                                          throws java.security.spec.InvalidKeySpecException
        Specified by:
        engineGeneratePrivate in class java.security.KeyFactorySpi
        Throws:
        java.security.spec.InvalidKeySpecException
      • engineGetKeySpec

        protected java.security.spec.KeySpec engineGetKeySpec​(java.security.Key key,
                                                              java.lang.Class keySpec)
                                                       throws java.security.spec.InvalidKeySpecException
        Specified by:
        engineGetKeySpec in class java.security.KeyFactorySpi
        Throws:
        java.security.spec.InvalidKeySpecException
      • engineTranslateKey

        protected java.security.Key engineTranslateKey​(java.security.Key key)
                                                throws java.security.InvalidKeyException
        Specified by:
        engineTranslateKey in class java.security.KeyFactorySpi
        Throws:
        java.security.InvalidKeyException