@casual-simulation/crypto-node 3.4.1-alpha.14318904853 → 3.5.0-alpha.15119114602

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.
@@ -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
- return __awaiter(this, void 0, void 0, function* () {
23
- if (key instanceof NodePrivateCryptoKey) {
24
- const sign = createSign('SHA256');
25
- const buffer = Buffer.from(data);
26
- sign.write(buffer);
27
- sign.end();
28
- const signature = sign.sign(key.privateKey);
29
- return nodeSignatureToWebSignature(signature);
30
- }
31
- throw this._unknownKey();
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
- verify(key, signature, data) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- if (key instanceof NodePublicCryptoKey) {
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(data);
43
+ const buffer = Buffer.from(datas[i]);
39
44
  verify.update(buffer);
40
45
  verify.end();
41
- const sig = webSignatureToNodeSignature(Buffer.from(signature));
42
- return verify.verify(key.publicKey, sig);
46
+ verifies[i] = verify;
43
47
  }
44
- throw this._unknownKey();
45
- });
46
- }
47
- verifyBatch(key, signatures, datas) {
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
- throw this._unknownKey();
70
- });
53
+ return results;
54
+ }
55
+ throw this._unknownKey();
71
56
  }
72
- exportKey(key) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- if (key instanceof NodePublicCryptoKey) {
75
- return key.publicKey;
76
- }
77
- else if (key instanceof NodePrivateCryptoKey) {
78
- return key.privateKey;
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 __awaiter(this, void 0, void 0, function* () {
85
- return new NodePublicCryptoKey(key);
86
- });
66
+ async importPublicKey(key) {
67
+ return new NodePublicCryptoKey(key);
87
68
  }
88
- importPrivateKey(key) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- return new NodePrivateCryptoKey(key);
91
- });
69
+ async importPrivateKey(key) {
70
+ return new NodePrivateCryptoKey(key);
92
71
  }
93
- generateKeyPair() {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- const { publicKey, privateKey } = generateKeyPairSync('ec', {
96
- namedCurve: 'prime256v1',
97
- publicKeyEncoding: {
98
- type: 'spki',
99
- format: 'pem',
100
- },
101
- privateKeyEncoding: {
102
- type: 'pkcs8',
103
- format: 'pem',
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":"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"}
1
+ {"version":3,"file":"NodeSigningCryptoImpl.js","sourceRoot":"","sources":["NodeSigningCryptoImpl.ts"],"names":[],"mappings":"AAwBA,OAAO,EACH,2BAA2B,EAC3B,2BAA2B,GAC9B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEvE,MAAM,OAAO,qBAAqB;IAC9B,YAAY,SAAiC;QACzC,IAAI,SAAS,KAAK,uBAAuB,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACX,+DAA+D,SAAS,EAAE,CAC7E,CAAC;QACN,CAAC;IACL,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAqB,EAAE,IAAiB;QAC/C,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YAEX,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CACR,GAAoB,EACpB,SAAsB,EACtB,IAAiB;QAEjB,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,EAAE,CAAC;YAEb,MAAM,GAAG,GAAG,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CACb,GAAoB,EACpB,UAAyB,EACzB,KAAoB;QAEpB,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACrC,IAAI,cAAc,GAAa,IAAI,KAAK,CAAS,UAAU,CAAC,MAAM,CAAC,CAAC;YACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,cAAc,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAC3C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAC7B,CAAC;YACN,CAAC;YAED,IAAI,QAAQ,GAAG,IAAI,KAAK,CAAS,cAAc,CAAC,MAAM,CAAC,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;YACzB,CAAC;YAED,IAAI,OAAO,GAAG,IAAI,KAAK,CAAU,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAqB;QACjC,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;YACrC,OAAO,GAAG,CAAC,SAAS,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC,UAAU,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW;QAC7B,OAAO,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAC9B,OAAO,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE;YACxD,UAAU,EAAE,YAAY;YACxB,iBAAiB,EAAE;gBACf,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAO,KAAK;aACrB;YACD,kBAAkB,EAAO;gBACrB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;aAChB;SACJ,CAAC,CAAC;QAEH,OAAO;YACH,IAAI,mBAAmB,CAAC,SAAS,CAAC;YAClC,IAAI,oBAAoB,CAAC,UAAU,CAAC;SACvC,CAAC;IACN,CAAC;IAEO,WAAW;QACf,OAAO,IAAI,KAAK,CACZ,8DAA8D,CACjE,CAAC;IACN,CAAC;CACJ;AAED,MAAM,OAAO,mBAAmB;IAI5B,YAAY,SAAiB;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ;AAED,MAAM,OAAO,oBAAoB;IAI7B,YAAY,UAAkB;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CACJ"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  /**
3
2
  * Converts a signature from node.js's crypto format to a format that
4
3
  * is compatible with SubtleCrypto in web browsers. (ASN1/DER to Concatenated bytes)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/crypto-node",
3
- "version": "3.4.1-alpha.14318904853",
3
+ "version": "3.5.0-alpha.15119114602",
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.4.1-alpha.14318904853",
42
+ "@casual-simulation/crypto": "^3.5.0-alpha.15119114602",
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": "ef806e4fe519d1e572a721a6e35671d16462d913"
47
+ "gitHead": "c6e0fed2d338914d986c1fbf40490370568b9553"
48
48
  }