Package io.aether.crypto
Class CryptoProviderFactory
- java.lang.Object
-
- io.aether.crypto.CryptoProviderFactory
-
public final class CryptoProviderFactory extends java.lang.ObjectThe 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 Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.Set<CryptoProvider>all()static io.aether.utils.flow.Flow<CryptoProvider>allFlow()static AKeycreateKey(java.lang.String s)Creates an AKey instance from a serialized string representation.static AKeycreateKey(java.lang.String providerName, KeyType keyType, byte[] data)Creates an AKey instance from raw data and provider details.static PairAsymKeysSignedcreatePairKeysSigned(java.lang.String providerName, java.lang.String publicKey, java.lang.String privateKey, Signer signer)static SignCheckercreateSignChecker(java.lang.String s)static SignercreateSigner(java.lang.String providerName, java.lang.String publicKey, java.lang.String privateKey)static CryptoProvidergetProvider(AKey key)Retrieves a CryptoProvider instance based on an AKey object.static CryptoProvidergetProvider(Sign sign)Retrieves a CryptoProvider instance based on a Sign object.static CryptoProvidergetProvider(java.lang.String libName)Retrieves a registered CryptoProvider by its name.static java.util.Set<Signer>makeSigners()static voidregister(CryptoProvider provider)Registers a CryptoProvider implementation with the factory.
-
-
-
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()
-
all
public static java.util.Set<CryptoProvider> all()
-
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)
-
-