@casual-simulation/crypto-node 3.4.1-alpha.14318904853 → 3.5.0-alpha.15117651144
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/NodeSigningCryptoImpl.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { nodeSignatureToWebSignature, webSignatureToNodeSignature, } from './SubtleCryptoCompat';
|
|
11
2
|
import { createSign, createVerify, generateKeyPairSync } from 'crypto';
|
|
12
3
|
export class NodeSigningCryptoImpl {
|
|
@@ -18,96 +9,82 @@ export class NodeSigningCryptoImpl {
|
|
|
18
9
|
supported() {
|
|
19
10
|
return true;
|
|
20
11
|
}
|
|
21
|
-
sign(key, data) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
12
|
+
async sign(key, data) {
|
|
13
|
+
if (key instanceof NodePrivateCryptoKey) {
|
|
14
|
+
const sign = createSign('SHA256');
|
|
15
|
+
const buffer = Buffer.from(data);
|
|
16
|
+
sign.write(buffer);
|
|
17
|
+
sign.end();
|
|
18
|
+
const signature = sign.sign(key.privateKey);
|
|
19
|
+
return nodeSignatureToWebSignature(signature);
|
|
20
|
+
}
|
|
21
|
+
throw this._unknownKey();
|
|
22
|
+
}
|
|
23
|
+
async verify(key, signature, data) {
|
|
24
|
+
if (key instanceof NodePublicCryptoKey) {
|
|
25
|
+
const verify = createVerify('SHA256');
|
|
26
|
+
const buffer = Buffer.from(data);
|
|
27
|
+
verify.update(buffer);
|
|
28
|
+
verify.end();
|
|
29
|
+
const sig = webSignatureToNodeSignature(Buffer.from(signature));
|
|
30
|
+
return verify.verify(key.publicKey, sig);
|
|
31
|
+
}
|
|
32
|
+
throw this._unknownKey();
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
async verifyBatch(key, signatures, datas) {
|
|
35
|
+
if (key instanceof NodePublicCryptoKey) {
|
|
36
|
+
let nodeSignatures = new Array(signatures.length);
|
|
37
|
+
for (let i = 0; i < nodeSignatures.length; i++) {
|
|
38
|
+
nodeSignatures[i] = webSignatureToNodeSignature(Buffer.from(signatures[i]));
|
|
39
|
+
}
|
|
40
|
+
let verifies = new Array(nodeSignatures.length);
|
|
41
|
+
for (let i = 0; i < verifies.length; i++) {
|
|
37
42
|
const verify = createVerify('SHA256');
|
|
38
|
-
const buffer = Buffer.from(
|
|
43
|
+
const buffer = Buffer.from(datas[i]);
|
|
39
44
|
verify.update(buffer);
|
|
40
45
|
verify.end();
|
|
41
|
-
|
|
42
|
-
return verify.verify(key.publicKey, sig);
|
|
46
|
+
verifies[i] = verify;
|
|
43
47
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
if (key instanceof NodePublicCryptoKey) {
|
|
50
|
-
let nodeSignatures = new Array(signatures.length);
|
|
51
|
-
for (let i = 0; i < nodeSignatures.length; i++) {
|
|
52
|
-
nodeSignatures[i] = webSignatureToNodeSignature(Buffer.from(signatures[i]));
|
|
53
|
-
}
|
|
54
|
-
let verifies = new Array(nodeSignatures.length);
|
|
55
|
-
for (let i = 0; i < verifies.length; i++) {
|
|
56
|
-
const verify = createVerify('SHA256');
|
|
57
|
-
const buffer = Buffer.from(datas[i]);
|
|
58
|
-
verify.update(buffer);
|
|
59
|
-
verify.end();
|
|
60
|
-
verifies[i] = verify;
|
|
61
|
-
}
|
|
62
|
-
let results = new Array(datas.length);
|
|
63
|
-
let pub = key.publicKey;
|
|
64
|
-
for (let i = 0; i < results.length; i++) {
|
|
65
|
-
results[i] = verifies[i].verify(pub, nodeSignatures[i]);
|
|
66
|
-
}
|
|
67
|
-
return results;
|
|
48
|
+
let results = new Array(datas.length);
|
|
49
|
+
let pub = key.publicKey;
|
|
50
|
+
for (let i = 0; i < results.length; i++) {
|
|
51
|
+
results[i] = verifies[i].verify(pub, nodeSignatures[i]);
|
|
68
52
|
}
|
|
69
|
-
|
|
70
|
-
}
|
|
53
|
+
return results;
|
|
54
|
+
}
|
|
55
|
+
throw this._unknownKey();
|
|
71
56
|
}
|
|
72
|
-
exportKey(key) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
throw this._unknownKey();
|
|
81
|
-
});
|
|
57
|
+
async exportKey(key) {
|
|
58
|
+
if (key instanceof NodePublicCryptoKey) {
|
|
59
|
+
return key.publicKey;
|
|
60
|
+
}
|
|
61
|
+
else if (key instanceof NodePrivateCryptoKey) {
|
|
62
|
+
return key.privateKey;
|
|
63
|
+
}
|
|
64
|
+
throw this._unknownKey();
|
|
82
65
|
}
|
|
83
|
-
importPublicKey(key) {
|
|
84
|
-
return
|
|
85
|
-
return new NodePublicCryptoKey(key);
|
|
86
|
-
});
|
|
66
|
+
async importPublicKey(key) {
|
|
67
|
+
return new NodePublicCryptoKey(key);
|
|
87
68
|
}
|
|
88
|
-
importPrivateKey(key) {
|
|
89
|
-
return
|
|
90
|
-
return new NodePrivateCryptoKey(key);
|
|
91
|
-
});
|
|
69
|
+
async importPrivateKey(key) {
|
|
70
|
+
return new NodePrivateCryptoKey(key);
|
|
92
71
|
}
|
|
93
|
-
generateKeyPair() {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
return [
|
|
107
|
-
new NodePublicCryptoKey(publicKey),
|
|
108
|
-
new NodePrivateCryptoKey(privateKey),
|
|
109
|
-
];
|
|
72
|
+
async generateKeyPair() {
|
|
73
|
+
const { publicKey, privateKey } = generateKeyPairSync('ec', {
|
|
74
|
+
namedCurve: 'prime256v1',
|
|
75
|
+
publicKeyEncoding: {
|
|
76
|
+
type: 'spki',
|
|
77
|
+
format: 'pem',
|
|
78
|
+
},
|
|
79
|
+
privateKeyEncoding: {
|
|
80
|
+
type: 'pkcs8',
|
|
81
|
+
format: 'pem',
|
|
82
|
+
},
|
|
110
83
|
});
|
|
84
|
+
return [
|
|
85
|
+
new NodePublicCryptoKey(publicKey),
|
|
86
|
+
new NodePrivateCryptoKey(privateKey),
|
|
87
|
+
];
|
|
111
88
|
}
|
|
112
89
|
_unknownKey() {
|
|
113
90
|
return new Error('[NodeSigningCryptoImpl] Key not a recognized implementation.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSigningCryptoImpl.js","sourceRoot":"","sources":["NodeSigningCryptoImpl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeSigningCryptoImpl.js","sourceRoot":"","sources":["NodeSigningCryptoImpl.ts"],"names":[],"mappings":"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"}
|
package/SubtleCryptoCompat.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@casual-simulation/crypto-node",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0-alpha.15117651144",
|
|
4
4
|
"description": "An implementation of the @casual-simulation/crypto package for Node.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"crypto"
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@casual-simulation/crypto": "^3.
|
|
42
|
+
"@casual-simulation/crypto": "^3.5.0-alpha.15117651144",
|
|
43
43
|
"@types/bn.js": "^5.1.0",
|
|
44
44
|
"asn1.js": "^5.0.1",
|
|
45
45
|
"bn.js": "^4.11.8"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "3e2803698d7c87343fb3b3c29a2f27f4b9efe942"
|
|
48
48
|
}
|