Class CryptoProviderFactory


  • public final class CryptoProviderFactory
    extends java.lang.Object
    The CryptoProviderFactory is a central registry for all cryptographic providers. It provides a way to register and retrieve specific CryptoProvider implementations by their name, ensuring a complete decoupling from concrete libraries.
    • Method Detail

      • register

        public static void register​(CryptoProvider provider)
        Registers a CryptoProvider implementation with the factory. This method is typically called by a module's static initializer.
        Parameters:
        provider - The CryptoProvider instance to register.
      • getProvider

        public static CryptoProvider getProvider​(java.lang.String libName)
        Retrieves a registered CryptoProvider by its name.
        Parameters:
        libName - The name of the crypto library (e.g., "SODIUM", "HYDROGEN").
        Returns:
        The corresponding CryptoProvider instance.
        Throws:
        java.lang.IllegalArgumentException - if the provider is not registered.
      • getProvider

        public static CryptoProvider getProvider​(AKey key)
        Retrieves a CryptoProvider instance based on an AKey object.
        Parameters:
        key - The AKey object.
        Returns:
        The corresponding CryptoProvider instance.
      • getProvider

        public static CryptoProvider getProvider​(Sign sign)
        Retrieves a CryptoProvider instance based on a Sign object.
        Parameters:
        sign - The Sign object.
        Returns:
        The corresponding CryptoProvider instance.
      • createKey

        public static AKey createKey​(java.lang.String providerName,
                                     KeyType keyType,
                                     byte[] data)
        Creates an AKey instance from raw data and provider details. This method delegates the key creation to the specific CryptoProvider.
        Parameters:
        providerName - The name of the cryptographic provider.
        keyType - The type of the key.
        data - The byte array of the key.
        Returns:
        A concrete implementation of AKey.
      • createKey

        public static AKey createKey​(java.lang.String s)
        Creates an AKey instance from a serialized string representation. The format is "PROVIDER_NAME:KEY_TYPE:DATA".
        Parameters:
        s - The serialized key string.
        Returns:
        A concrete implementation of AKey.
      • allFlow

        public static io.aether.utils.flow.Flow<CryptoProvider> allFlow()
      • createSignChecker

        public static SignChecker createSignChecker​(java.lang.String s)
      • makeSigners

        public static java.util.Set<Signer> makeSigners()
      • createSigner

        public static Signer createSigner​(java.lang.String providerName,
                                          java.lang.String publicKey,
                                          java.lang.String privateKey)
      • createPairKeysSigned

        public static PairAsymKeysSigned createPairKeysSigned​(java.lang.String providerName,
                                                              java.lang.String publicKey,
                                                              java.lang.String privateKey,
                                                              Signer signer)