Interface ECPrivateKey

All Superinterfaces:
ECKey, Key, PrivateKey

public interface ECPrivateKey extends PrivateKey, ECKey
The ECPrivateKey interface is used to generate signatures on data using the ECDSA (Elliptic Curve Digital Signature Algorithm) and to generate shared secrets using the ECDH (Elliptic Curve Diffie-Hellman) algorithm. An implementation of ECPrivateKey interface must also implement the ECKey interface methods.

When all components of the key (S, A, B, G, R, Field) are set, the key is initialized and ready for use. In addition, the KeyAgreement algorithm type ALG_EC_SVDP_DHC requires that the cofactor, K, be initialized.

The notation used to describe parameters specific to the EC algorithm is based on the naming conventions established in [IEEE P1363].

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    short
    getS(byte[] buffer, short offset)
    Returns the value of the secret key in plaintext form.
    void
    setS(byte[] buffer, short offset, short length)
    Sets the value of the secret key.

    Methods inherited from interface ECKey

    copyDomainParametersFrom, getA, getB, getField, getG, getK, getR, setA, setB, setFieldF2M, setFieldF2M, setFieldFP, setG, setK, setR
    Modifier and Type
    Method
    Description
    void
    Copies the domain parameters from the specified ECKey instance into the domain parameters of this object instance.
    short
    getA(byte[] buffer, short offset)
    Returns the first coefficient of the curve of the key.
    short
    getB(byte[] buffer, short offset)
    Returns the second coefficient of the curve of the key.
    short
    getField(byte[] buffer, short offset)
    Returns the field specification parameter value of the key.
    short
    getG(byte[] buffer, short offset)
    Returns the fixed point of the curve.
    short
    Returns the cofactor of the order of the fixed point G of the curve.
    short
    getR(byte[] buffer, short offset)
    Returns the order of the fixed point G of the curve.
    void
    setA(byte[] buffer, short offset, short length)
    Sets the first coefficient of the curve of the key.
    void
    setB(byte[] buffer, short offset, short length)
    Sets the second coefficient of the curve of the key.
    void
    setFieldF2M(short e)
    Sets the field specification parameter value for keys of type TYPE_EC_F2M_PUBLIC or TYPE_EC_F2M_PRIVATE in the case where the polynomial is a trinomial, of the form x^n + x^e + 1 (where n is the bit length of the key).
    void
    setFieldF2M(short e1, short e2, short e3)
    Sets the field specification parameter value for keys of type TYPE_EC_F2M_PUBLIC or TYPE_EC_F2M_PRIVATE in the case where the polynomial is a pentanomial, of the form x^n + x^e1 + x^e2 + x^e3 + 1 (where n is the bit length of the key).
    void
    setFieldFP(byte[] buffer, short offset, short length)
    Sets the field specification parameter value for keys of type TYPE_EC_FP_PRIVATE or TYPE_EC_FP_PUBLIC.
    void
    setG(byte[] buffer, short offset, short length)
    Sets the fixed point of the curve.
    void
    setK(short K)
    Sets the cofactor of the order of the fixed point G of the curve.
    void
    setR(byte[] buffer, short offset, short length)
    Sets the order of the fixed point G of the curve.

    Methods inherited from interface Key

    clearKey, getSize, getType, isInitialized
    Modifier and Type
    Method
    Description
    void
    Clears the key and sets its initialized state to false.
    short
    Returns the key size in number of bits.
    byte
    Returns the key interface type.
    boolean
    Reports the initialized state of the key.
  • Method Details

    • setS

      void setS(byte[] buffer, short offset, short length) throws CryptoException
      Sets the value of the secret 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 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 key value is decrypted using the Cipher object.

      Parameters:
      buffer - the input buffer
      offset - the offset into the input buffer at which the secret value is to begin
      length - the byte length of the secret value
      Throws:
      CryptoException - with the following reason code:
      • CryptoException.ILLEGAL_VALUE if the length parameter is 0 or invalid or the input key data is inconsistent with the key length or if input data decryption is required and fails.
    • getS

      short getS(byte[] buffer, short offset) throws CryptoException
      Returns the value of the secret key in plaintext form. 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 input buffer at which the secret value is to begin
      Returns:
      the byte length of the secret value
      Throws:
      CryptoException - with the following reason code:
      • CryptoException.UNINITIALIZED_KEY if the value of the secret key has not been successfully initialized since the time the initialized state of the key was set to false.
      See Also: