JSON-LD 签名 (@数字证书/jsonld-签名)
用于节点.js和浏览器的JSON-LD的链接数据签名规格的实施.
目录
(从 jsonld-signatures 页:1
以提供 TypeScript, Jest, 和反应原生相容性。 )
背景情况
创建( 或核实) 通过指定一个 签名套房和证明目的.
签名套件履行签名所需的加密操作(或
数字签字,并将信息列入诸如
verificationMethod 标识符,证明 controller日期
证据被创建.
证明目的说明证明为何成立及其预期用途
没错 这种信息还可以用来确保:
verificationMethod 被授权用于证明中所述目的。 使用
证明目的有助于鼓励人们批准某些密码
用于明确目的而不是授予这些钥匙的钥匙(核查方法)
环境权威. 这种方法可以帮助人们防止意外
签署文件,原因他们不打算.
这个库为签名套房和证明目的提供基础课程 这样可以写入自定义扩展. 也提供一些常见的 用于证明目的.
与可核证全权证书的关系
jsonld-signatures 是一个低级库, 用于签名 任意 JSON-LD( 日语)
文档.
用于创建这些签名的一个常见用例是:
核证的全权证书 (中文(简体) ). 狦琌
和他们一起工作,你应该使用一个更高级的图书馆 专门
(例如 @digitalcredentials/vc。 。 。 .
(顺便提一句, vc-js 使用这个库, jsonld-signatures),盖下
警卫
同大多数与安全和密码学有关的工具一样 您的系统将主要取决于您的设计决定( 哪些关键类型 将使用,你将存储 私钥,你放进你的 全权证书等).
文档加载器
在核查过程中,必须发现密钥和密钥控制器信息.
此库允许查找密钥和密钥控制器信息
通过a documentLoader 或可通过
签名套件或证明目的.
此库的默认值 documentLoader 对安全和内容非常严格
忠诚的目的。 它只装入本地可用的上下文副本
用于定义内部术语的文档。 任何加载的尝试
其它文档(包括其他上下文)将出现错误。 如果还有其他
诸如核查方法(如公用密钥文件)等文件不能
直接提供给API,因此需要加载,自定义文档
装载器必须经过。 为清晰起见,默认文件加载器
仅装入本地可用的下列文件副本:
如果您需要装入其他文档, 您需要提供
documentLoader 它可以提供它们。 jsonld.js 提供了节点和浏览器
documentLoader 但是,根据您的使用情况,您可以使用
通过使用自定义增加安全性 documentLoader 这同样严格
只能装入受某种技术限制的子集文件,
担保或商业规则.
安装
- 需要节点.js 12+.
在当地安装(用于开发):
git clone https://github.com/digitalcredentials/jsonld-signatures.git
cd jsonld-signatures
npm install
使用量
反应本地使用
这个库取决于 expo-crypto 用于 React 本地项目.
这意味着你必须加上 expo-crypto 给您的项目的依赖性.
样本 package.json数字 :
"dependencies": {
"expo-crypto": "~12.8.0"
}
节点.js和浏览器使用
jsonld-signatures (编) 12.x 上文(a)和(b)项并非供单独使用.
相反,它一般通过个人使用 密码套件。 。 。 .
详细的使用指令,请参见所支持套件的README:
大多数有个别套房的用法和关键类型将包含下列要素: 常见。 你将需要:
- 生成或导入要签名的密码密钥( 见
页:1
@digitalbazaar/crypto-ld >=v5.0(中文(简体) ) 或使用安全软件signer()函数由您的安全 密码模块. - 授权 这些钥匙是用于特定目的的 (见下文关于目的的一节),使用主计长文件 (例如DD文件或类似文件).
- 用相应的密码签名套件对等这些密钥.
关于绿地开发,我们建议:
Ed25519Signature2020套房,对于遗产/兼容性工作,可以使用Ed25519Signature2018套间. 另见 选择密钥类型 节crypto-ld文档. - 准备你的
documentLoader以安全的方式获取上下文和文件. - 最后,执行
jsigs.sign()或者说jsigs.verify()操作.
贡献
见 贡献文件来啊!
公关接受.
请遵照 标准读取 规格.
许可证
- MIT许可证 - DCC - TypeScript兼容.
- 新BSD许可证 (3-clause) 2020-2021 Digital Bazaar - 初始实施.