IPWorks Encrypt 2020 Java Edition

Questions / Feedback?

ECCKey Type

Contains the parameters for the ECC algorithm.

Remarks

This type is made up of fields that represent the private and public key parameters used by the ECC operations. The PrivateKey and PublicKey parameters hold a PEM formatted value for easy transport and storage of keys.

NIST Curve Notes

Keys for use with the secp256r1, secp384r1, and secp521r1 curves are made up of a number of individual parameters.

The public key consists of the following parameters:

The private key consists of one value:

Curve25519 and Curve448 Notes

Keys for use with Curve25519 or Curve448 are made up of a private key and public key field.

XPk holds the public key.

XSk holds the private key.

Fields

Algorithm
int

This field holds the algorithm associated with the key. Possible values are:

  • 0 (eaSecp256r1)
  • 1 (eaSecp384r1)
  • 2 (eaSecp521r1)
  • 3 (eaEd25519)
  • 4 (eaEd448)
  • 5 (eaX25519)
  • 6 (eaX448)
  • 7 (eaSecp160k1)
  • 8 (eaSecp192k1)
  • 9 (eaSecp224k1)
  • 10 (eaSecp256k1)

When assigning a key using the PEM formatted PrivateKey and PublicKey the Algorithm field will be automatically updated with the key algorithm.

When assigning a key using the raw key parameters (K, Rx, and Ry for NIST or XPk, and XSk for Curve25519/Curve448) the Algorithm field must be set manually to the key algorithm.

The following table summarizes the supported operations for keys created with each algorithm:

KeyAlgorithmSupported Operations
secp256r1ECDH/ECIES/ECDSA (ComputeSecret, Encrypt, Decrypt, Sign, and VerifySignature)
secp384r1ECDH/ECIES/ECDSA (ComputeSecret, Encrypt, Decrypt, Sign, and VerifySignature)
secp521r1ECDH/ECIES/ECDSA (ComputeSecret, Encrypt, Decrypt, Sign, and VerifySignature)
x25519ECDH (ComputeSecret)
x448ECDH (ComputeSecret)
ed25519EdDSA (Sign and VerifySignature)
ed448EdDSA (Sign and VerifySignature)
eaSecp160k1ECDH/ECIES/ECDSA (ComputeSecret, Encrypt, Decrypt, Sign, and VerifySignature)
eaSecp192k1ECDH/ECIES/ECDSA (ComputeSecret, Encrypt, Decrypt, Sign, and VerifySignature)
eaSecp224k1ECDH/ECIES/ECDSA (ComputeSecret, Encrypt, Decrypt, Sign, and VerifySignature)
eaSecp256k1ECDH/ECIES/ECDSA (ComputeSecret, Encrypt, Decrypt, Sign, and VerifySignature)

K
String

Represent the private key (K) parameter.

Note: This value is only applicable when using a NIST curve.

KB
byte[]

Represent the private key (K) parameter.

Note: This value is only applicable when using a NIST curve.

PrivateKey
String

This field is a PEM formatted private key. The purpose of this field is to allow easier management of the private key parameters by using only a single value.

PublicKey
String

This field is a PEM formatted public key. The purpose of this field is to allow easier management of the public key parameters by using only a single value.

Rx
String

Represents the public key's Rx parameter.

Note: This value is only applicable when using a NIST curve.

RxB
byte[]

Represents the public key's Rx parameter.

Note: This value is only applicable when using a NIST curve.

Ry
String

Represents the public key's Ry parameter.

Note: This value is only applicable when using a NIST curve.

RyB
byte[]

Represents the public key's Ry parameter.

Note: This value is only applicable when using a NIST curve.

XPk
String

Holds the public key data.

Note: This value is only applicable when using Curve25519 or Curve448.

XPkB
byte[]

Holds the public key data.

Note: This value is only applicable when using Curve25519 or Curve448.

XSk
String

Holds the private key data.

Note: This value is only applicable when using Curve25519 or Curve448.

XSkB
byte[]

Holds the private key data.

Note: This value is only applicable when using Curve25519 or Curve448.

Constructors

public ECCKey();

The default constructor creates a new ECCKey instance but does not assign a public or private key.

public ECCKey(byte[] rx, byte[] ry, int algorithm);

The public key constructor assigns an existing public key.

public ECCKey(byte[] K, byte[] rx, byte[] ry, int algorithm);

The private key constructor assigns an existing private key.

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks Encrypt 2020 Java Edition - Version 20.0 [Build 8155]