节点-jws 
执行 JSON 网络签名。 。 。 .
这是针对 draft-ietf-jose-json-web-signature-08 财务报告和审定财务报表
执行整个光谱 除外 X.509 证书链
签署/核查(欢迎出票).
两者兼有同步( S)jws.sign, (中文(简体) ), jws.verify)和流线
(单位:千美元)jws.createSign, (中文(简体) ), jws.createVerifyAPIs (英语).
安装
$ npm install jws
使用量
jws.ALGOTHIMS (英语)
支持的算法阵列 。 目前支持以下算法.
| 参数值 | 数字签名或MAC算法 |
|---|---|
| 第256条 | HMAC 使用 SHA-256 散列算法 |
| HS384 (韩语) | HMAC 使用 SHA-384 散列算法 |
| HS512 (韩语) | HMAC 使用 SHA-512 散列算法 |
| RS256号卫星 | 使用 SHA-256 散列算法的RSASA |
| RS384 软件 | 使用 SHA-384 散列算法的RSASA |
| 登记册512 | RSASA 使用 SHA-512 散列算法 |
| 页:1 | 使用 SHA-256 散列算法的RSASA- PSS |
| 第384条 | 使用 SHA-384 散列算法的RSSSA- PSS |
| PS512 (英语) | 使用 SHA-512 散列算法的RSASA- PSS |
| ES256 (英语) | 使用P-256曲线和SHA-256散列算法的ECDSA |
| ES384 (英语) | 使用 P-384 曲线和 SHA-384 散列算法的 ECDSA |
| ES512 (英语) | 使用P-521曲线和SHA-512散列算法的ECDSA |
| 无 | 未包括数字签字或MAC值 |
jws. sign( 选项)
(Synchronous)返回一个JSON网络签名,用于一个头和有效载荷.
选项 :
headerpayloadsecret或者说privateKeyencoding(可选,默认为"utf8")
header 必须是带有 alg 属性. header.alg 必须是
一个值 jws.ALGORITHMS。见上文表格
支持的算法.
若为 payload 不是一个缓冲器或字符串,它将被强制变成字符串
使用 JSON.stringify。 。 。 .
示例
const signature = jws.sign({
header: { alg: 'HS256' },
payload: 'h. jon benjamin',
secret: 'has a van',
});
jws.验证(签名、算法、密钥)
(同步)回返 true 或者说 false 签名是否与
密钥.
signature 是 JWS 签名. header.alg 必须是在 jws.ALGORITHMS。 。 。 .
见上文所支持的算法表. secretOrKey 是一个字符串或
包含 HMAC 算法或 PEM 密钥的缓冲器
为RSA和ECDSA编码了公钥.
注意 "alg" 来自签名头的值被忽略.
jws.decode( 签名)
(韵出. 返回已解码头、已解码的有效载荷和签名 jWS签名的部分内容.
返回具有三个属性的对象,例如:.
{ header: { alg: 'HS256' },
payload: 'h. jon benjamin',
signature: 'YOWPewyGHKu4Y_0M_vtlEnNlqmFOclqp4Hy6hVHfFT4'
}
jws.create Sign( 选项)
返回一个新的 SignStream 对象.
选项 :
header(必须)payloadkey||privateKey||secretencoding(可选,默认为"utf8")
除外 header,所有选项都期望在
数值在时间之前已知,或为方便而流出.
key编号 :privateKey编号 :secret 使用加密时也可能是对象
私钥,看 加密文档。 。 。 .
示例
// This...
jws.createSign({
header: { alg: 'RS256' },
privateKey: privateKeyStream,
payload: payloadStream,
}).on('done', function(signature) {
// ...
});
// is equivalent to this:
const signer = jws.createSign({
header: { alg: 'RS256' },
});
privateKeyStream.pipe(signer.privateKey);
payloadStream.pipe(signer.payload);
signer.on('done', function(signature) {
// ...
});
jws.create 验证( 选项)
返回一个新的验证结构对象.
选项 :
signaturealgorithmkey||publicKey||secretencoding(可选,默认为"utf8")
当值在前面已知时, 所有选项都期望有字符串或缓冲 时间,或一条溪来方便.
示例
// This...
jws.createVerify({
publicKey: pubKeyStream,
signature: sigStream,
}).on('done', function(verified, obj) {
// ...
});
// is equivilant to this:
const verifier = jws.createVerify();
pubKeyStream.pipe(verifier.publicKey);
sigStream.pipe(verifier.signature);
verifier.on('done', function(verified, obj) {
// ...
});
类: 符号结构
A 类 Readable Stream 发出单个数据事件(计算)
签名)完成后.
活动: "去"
function (signature) { }
签名人. 负载
A 类 Writable Stream 预想着JWS的有效载荷 这样做 没有 使用时使用
通过了一个 payload 选项.
示例
payloadStream.pipe(signer.payload);
签名人 秘密
签名者. key
签名者。 私人 Key
A 类 Writable Stream。期待为 HMAC 或私人 Key 提供 JWS 秘密
用于ECDSA和RSA. 这样做 没有 如果你通过了一个 secret 或者说 key 选项
给建筑师.
示例
privateKeyStream.pipe(signer.privateKey);
类: 校验结构
这是一个 Readable Stream 发出单个数据事件,结果
该签名是否有效.
活动: "去"
function (valid, obj) { }
valid 表示签名是否有效.
核查人. 签字
A 类 Writable Stream 需要JWS签名。 这样做 没有 使用时使用
通过了一个 signature 选项.
核查员 机密
校验器. key
校验器 公用钥匙
A 类 Writable Stream 需要公用钥匙或秘密 这样做 没有 使用时使用
通过了一个 key 或者说 secret 选项.
开始
-
感觉应该有一些便利选项/AP是用于 定义算法而不是需要定义标题对象 与
{ alg: 'ES512' }或任何时间. -
X.509支持, ugh
许可证
麻省理工学院
Copyright (c) 2013-2015 Brian J. Brennan
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.