IPWorks Encrypt 2020 Node.js Edition

Questions / Feedback?

KeyAlgorithm Property

This property holds the algorithm associated with the key.

Syntax

 ecc.getKeyAlgorithm([callback])
 ecc.setKeyAlgorithm( keyAlgorithm, [callback])

Possible Values

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

Default Value

0

Callback

The 'callback' parameter specifies a function which will be called when the operation completes (or an error is encountered). If the 'callback' parameter is not specified, then the method will block and will not return until the operation completes (or an error is encountered).

The callback for the getKeyAlgorithm([callback]) method is defined as:

function(err, data){ }

'err' is the error that occurred. If there was no error, then 'err' is 'null'.

'data' is the value returned by the method.

The callback for the setKeyAlgorithm([callback]) method is defined as:

function(err){ }

'err' is the error that occurred. If there was no error, then 'err' is 'null'.

'err' has 2 properties which hold detailed information:

err.code
err.message

Remarks

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 KeyPrivateKey and KeyPublicKey the KeyAlgorithm property will be automatically updated with the key algorithm.

When assigning a key using the raw key parameters (KeyK, KeyRx, and KeyRy for NIST or KeyXPk, and KeyXSk for Curve25519/Curve448) the KeyAlgorithm 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)

Data Type

Integer

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