Class Curve25519DHState

    • Constructor Detail

      • Curve25519DHState

        public Curve25519DHState​(KeyFactory xdh)
        Constructs a new Diffie-Hellman object for Curve25519.
    • Method Detail

      • destroy

        public void destroy()
        Description copied from interface: Destroyable
        Destroys all sensitive state in the current object.
        Specified by:
        destroy in interface Destroyable
      • getDHName

        public String getDHName()
        Description copied from interface: DHState
        Gets the Noise protocol name for this Diffie-Hellman algorithm.
        Specified by:
        getDHName in interface DHState
        Returns:
        The algorithm name.
      • getPublicKeyLength

        public int getPublicKeyLength()
        Description copied from interface: DHState
        Gets the length of public keys for this algorithm.
        Specified by:
        getPublicKeyLength in interface DHState
        Returns:
        The length of public keys in bytes.
      • getPrivateKeyLength

        public int getPrivateKeyLength()
        Description copied from interface: DHState
        Gets the length of private keys for this algorithm.
        Specified by:
        getPrivateKeyLength in interface DHState
        Returns:
        The length of private keys in bytes.
      • getSharedKeyLength

        public int getSharedKeyLength()
        Description copied from interface: DHState
        Gets the length of shared keys for this algorithm.
        Specified by:
        getSharedKeyLength in interface DHState
        Returns:
        The length of shared keys in bytes.
      • generateKeyPair

        public void generateKeyPair()
        Description copied from interface: DHState
        Generates a new random keypair.
        Specified by:
        generateKeyPair in interface DHState
      • getPublicKey

        public void getPublicKey​(byte[] key,
                                 int offset)
        Description copied from interface: DHState
        Gets the public key associated with this object.
        Specified by:
        getPublicKey in interface DHState
        Parameters:
        key - The buffer to copy the public key to.
        offset - The first offset in the key buffer to copy to.
      • setPublicKey

        public void setPublicKey​(byte[] key,
                                 int offset)
        Description copied from interface: DHState
        Sets the public key for this object.
        Specified by:
        setPublicKey in interface DHState
        Parameters:
        key - The buffer containing the public key.
        offset - The first offset in the buffer that contains the key. If this object previously held a key pair, then this function will change it into a public key only object.
      • getPrivateKey

        public void getPrivateKey​(byte[] key,
                                  int offset)
        Description copied from interface: DHState
        Gets the private key associated with this object.
        Specified by:
        getPrivateKey in interface DHState
        Parameters:
        key - The buffer to copy the private key to.
        offset - The first offset in the key buffer to copy to.
      • setPrivateKey

        public void setPrivateKey​(byte[] key,
                                  int offset)
        Description copied from interface: DHState
        Sets the private key for this object.
        Specified by:
        setPrivateKey in interface DHState
        Parameters:
        key - The buffer containing the [rivate key.
        offset - The first offset in the buffer that contains the key. If this object previously held only a public key, then this function will change it into a key pair.
      • setToNullPublicKey

        public void setToNullPublicKey()
        Description copied from interface: DHState
        Sets this object to the null public key and clears the private key.
        Specified by:
        setToNullPublicKey in interface DHState
      • clearKey

        public void clearKey()
        Description copied from interface: DHState
        Clears the key pair.
        Specified by:
        clearKey in interface DHState
      • hasPublicKey

        public boolean hasPublicKey()
        Description copied from interface: DHState
        Determine if this object contains a public key.
        Specified by:
        hasPublicKey in interface DHState
        Returns:
        Returns true if this object contains a public key, or false if the public key has not yet been set.
      • hasPrivateKey

        public boolean hasPrivateKey()
        Description copied from interface: DHState
        Determine if this object contains a private key.
        Specified by:
        hasPrivateKey in interface DHState
        Returns:
        Returns true if this object contains a private key, or false if the private key has not yet been set.
      • isNullPublicKey

        public boolean isNullPublicKey()
        Description copied from interface: DHState
        Determine if the public key in this object is the special null value.
        Specified by:
        isNullPublicKey in interface DHState
        Returns:
        Returns true if the public key is the special null value, or false otherwise.
      • hasEncodedPublicKey

        public boolean hasEncodedPublicKey()
        I2P
        Specified by:
        hasEncodedPublicKey in interface DHState
        Returns:
        Returns true if this object contains an encoded public key, or false if the public key has not yet been set.
        Since:
        0.9.44
      • getEncodedPublicKey

        public void getEncodedPublicKey​(byte[] key,
                                        int offset)
        I2P
        Specified by:
        getEncodedPublicKey in interface DHState
        Parameters:
        key - The buffer to copy the public key to.
        offset - The first offset in the key buffer to copy to.
        Since:
        0.9.44
      • calculate

        public void calculate​(byte[] sharedKey,
                              int offset,
                              DHState publicDH)
        Description copied from interface: DHState
        Performs a Diffie-Hellman calculation with this object as the private key.
        Specified by:
        calculate in interface DHState
        Parameters:
        sharedKey - Buffer to put the shared key into.
        offset - Offset of the first byte for the shared key.
        publicDH - Object that contains the public key for the calculation.
      • copyFrom

        public void copyFrom​(DHState other)
        Description copied from interface: DHState
        Copies the key values from another DH object of the same type.
        Specified by:
        copyFrom in interface DHState
        Parameters:
        other - The other DH object to copy from