Ed25519 验证Key2018 链接数据密钥对等库 (@digitalbazaar/ed25519-核查-键-2018)
Javascript 库用于生成并和 Ed25519VerificationKey2018 密钥对一起工作,用于加密-ld.
目录
背景情况
另见(相关规格):
警卫
同大多数与安全和密码学有关的工具一样 您的系统将在很大程度上取决于您的设计决定 .
安装
- 需要节点.js 14+.
在当地安装(用于开发):
git clone https://github.com/digitalbazaar/ed25519-verification-key-2018.git
cd ed25519-verification-key-2018
npm install
使用量
生成新的公用/私用密钥对
要生成一个新的公/私密密钥配对 :
{string} [controller]可选控制器 URI 或 Did 初始化 生成了密钥。 (此会输入密钥 ID. ){string} [seed]可选的确定种子值,用于生成 键.
import {Ed25519VerificationKey2018} from '@digitalbazaar/ed25519-verification-key-2018';
const edKeyPair = await Ed25519VerificationKey2018.generate();
从存储导入一对密钥
从下列数据中创建公/私密密钥对实例:
存储,使用 .from()数字 :
const serializedKeyPair = { ... };
const keyPair = await Ed25519VerificationKey2018.from(serializedKeyPair);
注意,如果您试图创建
键对通过 from() 对于一个不支持的类型,会显示错误.
只导出公钥
要导出一对的公钥 :
await keyPair.export({publicKey: true});
// ->
{
id: 'did:ex:123#z6MkumafR1duPR5FZgbVu8nzX3VyhULoXNpq9rpjhfaiMQmx',
controller: 'did:ex:123',
type: 'Ed25519VerificationKey2018',
publicKeyBase58: 'GKKcpmPU3sanTBkoDZq9fwwysu4x7VaUTquosPchSBza'
}
*/
导出完整的公-私密密钥配对
要导出完整一对密钥, 包括私钥( 警告 : 这应该是 仔细考虑的操作,最好留给专用密钥管理系统:
await keyPair.export({publicKey: true, privateKey: true});
// ->
{
id: 'did:ex:123#z6Mks8wJbzhWdmkQZgw7z2qHwaxPVnFsFmEZSXzGkLkvhMvL',
controller: 'did:ex:123',
type: 'Ed25519VerificationKey2018',
publicKeyBase58: 'DggG1kT5JEFwTC6RJTsT6VQPgCz1qszCkX5Lv4nun98x',
privateKeyBase58: 'sSicNq6YBSzafzYDAcuduRmdHtnrZRJ7CbvjzdQhC45ewwvQeuqbM2dNwS9RCf6buUJGu6N3rBy6oLSpMwha8tc'
}
生成和验证密钥指纹
要生成指纹 :
keyPair.fingerprint();
// ->
'z6Mks8wJbzhWdmkQZgw7z2qHwaxPVnFsFmEZSXzGkLkvhMvL'
为了验证指纹:
const fingerprint = 'z6Mks8wJbzhWdmkQZgw7z2qHwaxPVnFsFmEZSXzGkLkvhMvL';
keyPair.verifyFingerprint({fingerprint});
// ->
{ valid: true }
创建签名函数
为了执行加密签名,您需要创建 sign
函数,然后引用它.
const keyPair = Ed25519VerificationKey2018.generate();
const {sign} = keyPair.signer();
const data = 'test data to sign';
const signatureValue = await sign({data});
创建验证函数
为了验证密码签名,您需要创建 verify
函数,然后引用它(通过数据验证,和签名).
const keyPair = Ed25519VerificationKey2018.generate();
const {verify} = keyPair.verifier();
const {valid} = await verify({data, signature});
贡献
见 贡献文件来啊!
公关接受.
请遵照 标准读取 规格.
商业支助
该图书馆的商务支助可应下列请求提供: 数字集市: 支持@ digitalbazaar.com