Interface DHKey

  • All Known Subinterfaces:
    DHPrivateKey, DHPublicKey

    public interface DHKey
    The DHKey interface is the base interface for the DH algorithm's private and public key implementations. A DH private key implementation must also implement the DHPrivateKey interface methods. A DH public key implementation must also implement the DHPublicKey interface methods.

    Component Q is an optional key component. When the other 3 components of the key (X or Y, P, G) are set, the key is initialized and ready for use.

    See Also:
    DHPublicKey, DHPrivateKey, KeyBuilder, Signature, javacardx.crypto.KeyEncryption
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      short getG​(byte[] buffer, short offset)
      Returns the base parameter value of the key in plain text.
      short getP​(byte[] buffer, short offset)
      Returns the prime parameter value of the key in plain text.
      short getQ​(byte[] buffer, short offset)
      Returns the subprime parameter value of the key in plain text.
      void setG​(byte[] buffer, short offset, short length)
      Sets the base parameter value of the key.
      void setP​(byte[] buffer, short offset, short length)
      Sets the prime parameter value of the key.
      void setQ​(byte[] buffer, short offset, short length)
      Sets the optional subprime parameter value of the key.
    • Method Detail

      • setP

        void setP​(byte[] buffer,
                  short offset,
                  short length)
           throws CryptoException
        Sets the prime parameter value of the key. The plain text data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input prime parameter data is copied into the internal representation. The value of P limits the value of the public value Y.

        Note:

        • If the key object implements the javacardx.crypto.KeyEncryption interface and the Cipher object specified via setKeyCipher() is not null, the prime parameter value is decrypted using the Cipher object.

        Parameters:
        buffer - the input buffer
        offset - the offset into the input buffer at which the prime parameter value begins
        length - the length of the prime parameter value
        Throws:
        CryptoException - with the following reason code:
        • CryptoException.ILLEGAL_VALUE if the input parameter data length is inconsistent with the implementation or if input data decryption is required and fails.
      • setQ

        void setQ​(byte[] buffer,
                  short offset,
                  short length)
           throws CryptoException
        Sets the optional subprime parameter value of the key. The plain text data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input subprime parameter data is copied into the internal representation. The value of Q limits the value of the private value X.

        Note:

        • If the key object implements the javacardx.crypto.KeyEncryption interface and the Cipher object specified via setKeyCipher() is not null, the subprime parameter value is decrypted using the Cipher object.

        Parameters:
        buffer - the input buffer
        offset - the offset into the input buffer at which the subprime parameter value begins
        length - the length of the subprime parameter value
        Throws:
        CryptoException - with the following reason code:
        • CryptoException.ILLEGAL_VALUE if the input parameter data length is inconsistent with the implementation or if input data decryption is required and fails.
      • setG

        void setG​(byte[] buffer,
                  short offset,
                  short length)
           throws CryptoException
        Sets the base parameter value of the key. The plain text data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). Input base parameter data is copied into the internal representation.

        Note:

        • If the key object implements the javacardx.crypto.KeyEncryption interface and the Cipher object specified via setKeyCipher() is not null, the base parameter value is decrypted using the Cipher object.

        Parameters:
        buffer - the input buffer
        offset - the offset into the input buffer at which the base parameter value begins
        length - the length of the base parameter value
        Throws:
        CryptoException - with the following reason code:
        • CryptoException.ILLEGAL_VALUE if the input parameter data length is inconsistent with the implementation or if input data decryption is required and fails.
      • getP

        short getP​(byte[] buffer,
                   short offset)
        Returns the prime parameter value of the key in plain text. The data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte).
        Parameters:
        buffer - the output buffer
        offset - the offset into the output buffer at which the prime parameter value starts
        Returns:
        the byte length of the prime parameter value returned
        Throws:
        CryptoException - with the following reason code:
        • CryptoException.UNINITIALIZED_KEY if the prime parameter has not been successfully initialized since the time the initialized state of the key was set to false.
        See Also:
        Key
      • getQ

        short getQ​(byte[] buffer,
                   short offset)
        Returns the subprime parameter value of the key in plain text. The data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte). The value of q limits the size of the private value X.
        Parameters:
        buffer - the output buffer
        offset - the offset into the output buffer at which the subprime parameter value begins
        Returns:
        the byte length of the subprime parameter value returned
        Throws:
        CryptoException - with the following reason code:
        • CryptoException.UNINITIALIZED_KEY if the subprime parameter has not been successfully initialized since the time the initialized state of the key was set to false.
        See Also:
        Key
      • getG

        short getG​(byte[] buffer,
                   short offset)
        Returns the base parameter value of the key in plain text. The data format is big-endian and right-aligned (the least significant bit is the least significant bit of last byte).
        Parameters:
        buffer - the output buffer
        offset - the offset into the output buffer at which the base parameter value begins
        Returns:
        the byte length of the base parameter value returned
        Throws:
        CryptoException - with the following reason code:
        • CryptoException.UNINITIALIZED_KEY if the base parameter has not been successfully initialized since the time the initialized state of the key was set to false.
        See Also:
        Key