当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js ECDH.convertKey(key, curve[, inputEncoding[, outputEncoding[, format]]])用法及代码示例


静态方法:ECDH.convertKey(key, curve[, inputEncoding[, outputEncoding[, format]]])

添加于:v10.0.0

参数

keycurve 指定的 EC Diffie-Hellman 公钥转换为 format 指定的格式。 format 参数指定点编码,可以是 'compressed''uncompressed''hybrid' 。提供的 key 使用指定的 inputEncoding 进行解释,返回的 key 使用指定的 outputEncoding 进行编码。

使用 crypto.getCurves() 获取可用曲线名称的列表。在最近的OpenSSL 版本中,openssl ecparam -list_curves 还将显示每个可用椭圆曲线的名称和说明。

如果未指定format,则该点将以'uncompressed' 格式返回。

如果未提供 inputEncoding,则 key 应为 Buffer TypedArrayDataView

示例(解压缩 key ):

const {
  createECDH,
  ECDH
} = await import('node:crypto');

const ecdh = createECDH('secp256k1');
ecdh.generateKeys();

const compressedKey = ecdh.getPublicKey('hex', 'compressed');

const uncompressedKey = ECDH.convertKey(compressedKey,
                                        'secp256k1',
                                        'hex',
                                        'hex',
                                        'uncompressed');

// The converted key and the uncompressed public key should be the same
console.log(uncompressedKey === ecdh.getPublicKey('hex'));const {
  createECDH,
  ECDH,
} = require('node:crypto');

const ecdh = createECDH('secp256k1');
ecdh.generateKeys();

const compressedKey = ecdh.getPublicKey('hex', 'compressed');

const uncompressedKey = ECDH.convertKey(compressedKey,
                                        'secp256k1',
                                        'hex',
                                        'hex',
                                        'uncompressed');

// The converted key and the uncompressed public key should be the same
console.log(uncompressedKey === ecdh.getPublicKey('hex'));

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 ECDH.convertKey(key, curve[, inputEncoding[, outputEncoding[, format]]])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。