Class SodiumCryptoProvider

  • All Implemented Interfaces:
    io.aether.crypto.CryptoProvider

    public class SodiumCryptoProvider
    extends java.lang.Object
    implements io.aether.crypto.CryptoProvider
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      io.aether.crypto.CryptoEngine createAsymmetricEngine​(io.aether.crypto.AKey.AsymmetricPrivate privateKey, io.aether.crypto.AKey.AsymmetricPublic publicKey)  
      io.aether.crypto.CryptoEngine createAsymmetricEngine​(io.aether.crypto.AKey.AsymmetricPublic key)  
      io.aether.crypto.CryptoEngine createAsymmetricEngine​(io.aether.crypto.PairAsymKeys keys)  
      io.aether.crypto.PairAsymKeys createAsymmetricKeys()  
      <T extends io.aether.crypto.AKey>
      T
      createKey​(io.aether.crypto.KeyType keyType, byte[] data)  
      <T extends io.aether.crypto.AKey>
      T
      createKey​(java.lang.String data)  
      io.aether.crypto.Sign createSign​(byte[] data)  
      io.aether.crypto.Sign createSign​(java.lang.String data)  
      io.aether.crypto.Signer createSigner​(io.aether.crypto.AKey.SignPublic publicKey)  
      io.aether.crypto.Signer createSigner​(io.aether.crypto.AKey.SignPublic publicKey, io.aether.crypto.AKey.SignPrivate privateKey)  
      io.aether.crypto.Signer createSigner​(io.aether.crypto.PairSignKeys keys)  
      io.aether.crypto.PairSignKeys createSignKeys()  
      io.aether.crypto.AKey.SignPrivate createSignPrivateKey​(byte[] data)  
      io.aether.crypto.AKey.SignPublic createSignPublicKey​(byte[] data)  
      io.aether.crypto.CryptoEngine createSymmetricEngine​(io.aether.crypto.AKey.Symmetric key)  
      io.aether.crypto.AKey.Symmetric createSymmetricKey()  
      io.aether.crypto.AKey.Symmetric createSymmetricKey​(byte[] bytes)  
      io.aether.crypto.PairSymKeys deriveSymmetricKeys​(io.aether.crypto.AKey.Symmetric masterKey, int serverId, int keyNumber)
      Derives a pair of symmetric keys (for client-to-server and server-to-client communication) using Key Derivation Function (KDF) from a master key and session/key identifiers.
      java.lang.String getCryptoLibName()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface io.aether.crypto.CryptoProvider

        createKey, createKeyForServer, createSignedKey, createSignedKey, createSigner, createSignKeys, createSignKeys, createSignKeys
    • Method Detail

      • createSignPublicKey

        public io.aether.crypto.AKey.SignPublic createSignPublicKey​(byte[] data)
        Specified by:
        createSignPublicKey in interface io.aether.crypto.CryptoProvider
      • createSignPrivateKey

        public io.aether.crypto.AKey.SignPrivate createSignPrivateKey​(byte[] data)
        Specified by:
        createSignPrivateKey in interface io.aether.crypto.CryptoProvider
      • createSymmetricKey

        public io.aether.crypto.AKey.Symmetric createSymmetricKey​(byte[] bytes)
        Specified by:
        createSymmetricKey in interface io.aether.crypto.CryptoProvider
      • getCryptoLibName

        public java.lang.String getCryptoLibName()
        Specified by:
        getCryptoLibName in interface io.aether.crypto.CryptoProvider
      • createAsymmetricKeys

        public io.aether.crypto.PairAsymKeys createAsymmetricKeys()
        Specified by:
        createAsymmetricKeys in interface io.aether.crypto.CryptoProvider
      • createSymmetricKey

        public io.aether.crypto.AKey.Symmetric createSymmetricKey()
        Specified by:
        createSymmetricKey in interface io.aether.crypto.CryptoProvider
      • createSignKeys

        public io.aether.crypto.PairSignKeys createSignKeys()
        Specified by:
        createSignKeys in interface io.aether.crypto.CryptoProvider
      • createSigner

        public io.aether.crypto.Signer createSigner​(io.aether.crypto.PairSignKeys keys)
        Specified by:
        createSigner in interface io.aether.crypto.CryptoProvider
      • createSigner

        public io.aether.crypto.Signer createSigner​(io.aether.crypto.AKey.SignPublic publicKey,
                                                    io.aether.crypto.AKey.SignPrivate privateKey)
        Specified by:
        createSigner in interface io.aether.crypto.CryptoProvider
      • createSigner

        public io.aether.crypto.Signer createSigner​(io.aether.crypto.AKey.SignPublic publicKey)
        Specified by:
        createSigner in interface io.aether.crypto.CryptoProvider
      • createSymmetricEngine

        public io.aether.crypto.CryptoEngine createSymmetricEngine​(io.aether.crypto.AKey.Symmetric key)
        Specified by:
        createSymmetricEngine in interface io.aether.crypto.CryptoProvider
      • createAsymmetricEngine

        public io.aether.crypto.CryptoEngine createAsymmetricEngine​(io.aether.crypto.AKey.AsymmetricPublic key)
        Specified by:
        createAsymmetricEngine in interface io.aether.crypto.CryptoProvider
      • createAsymmetricEngine

        public io.aether.crypto.CryptoEngine createAsymmetricEngine​(io.aether.crypto.AKey.AsymmetricPrivate privateKey,
                                                                    io.aether.crypto.AKey.AsymmetricPublic publicKey)
        Specified by:
        createAsymmetricEngine in interface io.aether.crypto.CryptoProvider
      • createAsymmetricEngine

        public io.aether.crypto.CryptoEngine createAsymmetricEngine​(io.aether.crypto.PairAsymKeys keys)
        Specified by:
        createAsymmetricEngine in interface io.aether.crypto.CryptoProvider
      • createKey

        public <T extends io.aether.crypto.AKey> T createKey​(io.aether.crypto.KeyType keyType,
                                                             byte[] data)
        Specified by:
        createKey in interface io.aether.crypto.CryptoProvider
      • createKey

        public <T extends io.aether.crypto.AKey> T createKey​(java.lang.String data)
        Specified by:
        createKey in interface io.aether.crypto.CryptoProvider
      • createSign

        public io.aether.crypto.Sign createSign​(java.lang.String data)
        Specified by:
        createSign in interface io.aether.crypto.CryptoProvider
      • deriveSymmetricKeys

        public io.aether.crypto.PairSymKeys deriveSymmetricKeys​(io.aether.crypto.AKey.Symmetric masterKey,
                                                                int serverId,
                                                                int keyNumber)
        Derives a pair of symmetric keys (for client-to-server and server-to-client communication) using Key Derivation Function (KDF) from a master key and session/key identifiers.
        Specified by:
        deriveSymmetricKeys in interface io.aether.crypto.CryptoProvider
        Parameters:
        masterKey - The master symmetric key.
        serverId - The server identifier (32-bit).
        keyNumber - The key number/index (32-bit).
        Returns:
        A PairSymmetricKeys object containing client and server keys.
      • createSign

        public io.aether.crypto.Sign createSign​(byte[] data)
        Specified by:
        createSign in interface io.aether.crypto.CryptoProvider