ECPublicKey (Java Card API, Connected Edition)
Date: 2009-12-11

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javacard.security
Interface ECPublicKey

All Superinterfaces:
  ECKey, Key, PublicKey

    @TransactionType(value=SUPPORTS)
    public interface ECPublicKey

extends PublicKey, ECKey

The `ECPublicKey` interface is used to verify signatures on signed data using the ECDSA algorithm and to generate shared secrets using the ECDH algorithm. An implementation of `ECPublicKey` interface must also implement the `ECKey` interface methods.

When all components of the key (W, A, B, G, R, Field) are set, the key is initialized and ready for use.

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

See Also:
  `ECPrivateKey`, `KeyBuilder`, `Signature`, `javacardx.crypto.KeyEncryption`, `KeyAgreement`

Method Summary
`short` | `getW(byte[] buffer, short offset)` Returns the point of the curve comprising the public key in plain text form.
`void` | `setW(byte[] buffer, short offset, short length)` Sets the point of the curve comprising the public key.

Methods inherited from interface javacard.security.Key
`clearKey, getSize, getType, getTypeName, isInitialized`

Methods inherited from interface javacard.security.ECKey
`getA, getB, getField, getG, getK, getR, setA, setB, setFieldF2M, setFieldF2M, setFieldFP, setG, setK, setR`

Method Detail

### setW

    void setW(byte[] buffer,
              short offset,
              short length)
              throws CryptoException

  Sets the point of the curve comprising the public key. The point should be specified as an octet string as per ANSI X9.62. A specific implementation need not support the compressed form, but must support the uncompressed form of the point. 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 point specification begins
    `length` - the byte length of the point specification
  Throws:
    `CryptoException` - with the following reason code:
    - `CryptoException.ILLEGAL_VALUE` if the length parameter is 0 or invalid or the input parameter data format is incorrect, or if the input parameter data is inconsistent with the key length, or if input data decryption is required and fails.

### getW

    short getW(byte[] buffer,
               short offset)
               throws CryptoException

  Returns the point of the curve comprising the public key in plain text form. The point is represented as an octet string in compressed or uncompressed forms as per ANSI X9.62. 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 point specification data is to begin
  Returns:
    the byte length of the point specification
  Throws:
    `CryptoException` - with the following reason code:
    - `CryptoException.UNINITIALIZED_KEY` if the point of the curve comprising the public key has not been successfully initialized since the time the initialized state of the key was set to false.
  See Also:
    `Key`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.