IPWorks Encrypt 2020 Delphi 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
TipcECAlgorithms

This property 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 property 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 property 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
TBytes

Represent the private key (K) parameter.

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

PrivateKey
String

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

PublicKey
String

This property is a PEM formatted public key. The purpose of this property 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
TBytes

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
TBytes

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
TBytes

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
TBytes

Holds the private key data.

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

Constructors

constructor Create();

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

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