@casual-simulation/crypto-browser 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 { formatPublicPEMKey, formatPrivatePEMKey, parsePublicPEMKey, parsePrivatePEMKey, } from '@casual-simulation/crypto';
|
|
11
2
|
import Bowser from 'bowser';
|
|
12
3
|
// DEV NOTE:
|
|
@@ -37,31 +28,27 @@ export class BrowserSigningCryptoImpl {
|
|
|
37
28
|
}
|
|
38
29
|
return typeof globalThis.crypto.subtle !== 'undefined';
|
|
39
30
|
}
|
|
40
|
-
sign(key, data) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
throw this._unknownKey();
|
|
51
|
-
});
|
|
31
|
+
async sign(key, data) {
|
|
32
|
+
if (key instanceof BrowserPrivateCryptoKey) {
|
|
33
|
+
return await crypto.subtle.sign({
|
|
34
|
+
name: 'ECDSA',
|
|
35
|
+
hash: {
|
|
36
|
+
name: 'SHA-256',
|
|
37
|
+
},
|
|
38
|
+
}, key.privateKey, data);
|
|
39
|
+
}
|
|
40
|
+
throw this._unknownKey();
|
|
52
41
|
}
|
|
53
|
-
verify(key, signature, data) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
throw this._unknownKey();
|
|
64
|
-
});
|
|
42
|
+
async verify(key, signature, data) {
|
|
43
|
+
if (key instanceof BrowserPublicCryptoKey) {
|
|
44
|
+
return await crypto.subtle.verify({
|
|
45
|
+
name: 'ECDSA',
|
|
46
|
+
hash: {
|
|
47
|
+
name: 'SHA-256',
|
|
48
|
+
},
|
|
49
|
+
}, key.publicKey, signature, data);
|
|
50
|
+
}
|
|
51
|
+
throw this._unknownKey();
|
|
65
52
|
}
|
|
66
53
|
verifyBatch(key, signatures, datas) {
|
|
67
54
|
if (key instanceof BrowserPublicCryptoKey) {
|
|
@@ -80,51 +67,43 @@ export class BrowserSigningCryptoImpl {
|
|
|
80
67
|
}
|
|
81
68
|
throw this._unknownKey();
|
|
82
69
|
}
|
|
83
|
-
exportKey(key) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
throw this._unknownKey();
|
|
95
|
-
});
|
|
70
|
+
async exportKey(key) {
|
|
71
|
+
let buffer;
|
|
72
|
+
if (key instanceof BrowserPublicCryptoKey) {
|
|
73
|
+
buffer = await crypto.subtle.exportKey('spki', key.publicKey);
|
|
74
|
+
return formatPublicPEMKey(buffer);
|
|
75
|
+
}
|
|
76
|
+
else if (key instanceof BrowserPrivateCryptoKey) {
|
|
77
|
+
buffer = await crypto.subtle.exportKey('pkcs8', key.privateKey);
|
|
78
|
+
return formatPrivatePEMKey(buffer);
|
|
79
|
+
}
|
|
80
|
+
throw this._unknownKey();
|
|
96
81
|
}
|
|
97
|
-
importPublicKey(key) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return new BrowserPublicCryptoKey(cryptoKey);
|
|
105
|
-
});
|
|
82
|
+
async importPublicKey(key) {
|
|
83
|
+
const buffer = parsePublicPEMKey(key);
|
|
84
|
+
const cryptoKey = await crypto.subtle.importKey('spki', buffer, {
|
|
85
|
+
name: 'ECDSA',
|
|
86
|
+
namedCurve: BrowserSigningCryptoImpl.NAMED_CURVE,
|
|
87
|
+
}, true, ['verify']);
|
|
88
|
+
return new BrowserPublicCryptoKey(cryptoKey);
|
|
106
89
|
}
|
|
107
|
-
importPrivateKey(key) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return new BrowserPrivateCryptoKey(cryptoKey);
|
|
115
|
-
});
|
|
90
|
+
async importPrivateKey(key) {
|
|
91
|
+
const buffer = parsePrivatePEMKey(key);
|
|
92
|
+
const cryptoKey = await crypto.subtle.importKey('pkcs8', buffer, {
|
|
93
|
+
name: 'ECDSA',
|
|
94
|
+
namedCurve: BrowserSigningCryptoImpl.NAMED_CURVE,
|
|
95
|
+
}, true, ['sign']);
|
|
96
|
+
return new BrowserPrivateCryptoKey(cryptoKey);
|
|
116
97
|
}
|
|
117
|
-
generateKeyPair() {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
];
|
|
127
|
-
});
|
|
98
|
+
async generateKeyPair() {
|
|
99
|
+
const keyPair = await crypto.subtle.generateKey({
|
|
100
|
+
name: 'ECDSA',
|
|
101
|
+
namedCurve: BrowserSigningCryptoImpl.NAMED_CURVE,
|
|
102
|
+
}, true, ['sign', 'verify']);
|
|
103
|
+
return [
|
|
104
|
+
new BrowserPublicCryptoKey(keyPair.publicKey),
|
|
105
|
+
new BrowserPrivateCryptoKey(keyPair.privateKey),
|
|
106
|
+
];
|
|
128
107
|
}
|
|
129
108
|
_unknownKey() {
|
|
130
109
|
return new Error('[BrowserSigningCryptoImpl] Key not a recognized implementation.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserSigningCryptoImpl.js","sourceRoot":"","sources":["BrowserSigningCryptoImpl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BrowserSigningCryptoImpl.js","sourceRoot":"","sources":["BrowserSigningCryptoImpl.ts"],"names":[],"mappings":"AAwBA,OAAO,EACH,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,YAAY;AACZ,4EAA4E;AAC5E,4FAA4F;AAC5F,uEAAuE;AAEvE,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,OAAO,wBAAwB;IAMjC;;;OAGG;IACH,YAAY,SAAiC;QACzC,IAAI,SAAS,KAAK,uBAAuB,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACX,2FAA2F,CAC9F,CAAC;QACN,CAAC;IACL,CAAC;IAED,SAAS;QACL,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CACP,8CAA8C,EAC9C,YAAY,CACf,CAAC;QAEF,8FAA8F;QAC9F,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAqB,EAAE,IAAiB;QAC/C,IAAI,GAAG,YAAY,uBAAuB,EAAE,CAAC;YACzC,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAC3B;gBACI,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE;oBACF,IAAI,EAAE,SAAS;iBAClB;aACJ,EACD,GAAG,CAAC,UAAU,EACd,IAAI,CACP,CAAC;QACN,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CACR,GAAoB,EACpB,SAAsB,EACtB,IAAiB;QAEjB,IAAI,GAAG,YAAY,sBAAsB,EAAE,CAAC;YACxC,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAC7B;gBACI,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE;oBACF,IAAI,EAAE,SAAS;iBAClB;aACJ,EACD,GAAG,CAAC,SAAS,EACb,SAAS,EACT,IAAI,CACP,CAAC;QACN,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,WAAW,CACP,GAAoB,EACpB,UAAyB,EACzB,KAAoB;QAEpB,IAAI,GAAG,YAAY,sBAAsB,EAAE,CAAC;YACxC,IAAI,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;YACxB,IAAI,QAAQ,GAAG,IAAI,KAAK,CAAuB,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,OAAO,GAAG;gBACV,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE;oBACF,IAAI,EAAE,SAAS;iBAClB;aACJ,CAAC;YAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAC9B,OAAO,EACP,GAAG,EACH,UAAU,CAAC,CAAC,CAAC,EACb,KAAK,CAAC,CAAC,CAAC,CACX,CAAC;YACN,CAAC;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAqB;QACjC,IAAI,MAAmB,CAAC;QACxB,IAAI,GAAG,YAAY,sBAAsB,EAAE,CAAC;YACxC,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9D,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,GAAG,YAAY,uBAAuB,EAAE,CAAC;YAChD,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAChE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW;QAC7B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC3C,MAAM,EACN,MAAM,EACN;YACI,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,wBAAwB,CAAC,WAAW;SACnD,EACD,IAAI,EACJ,CAAC,QAAQ,CAAC,CACb,CAAC;QAEF,OAAO,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC3C,OAAO,EACP,MAAM,EACN;YACI,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,wBAAwB,CAAC,WAAW;SACnD,EACD,IAAI,EACJ,CAAC,MAAM,CAAC,CACX,CAAC;QAEF,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAC3C;YACI,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,wBAAwB,CAAC,WAAW;SACnD,EACD,IAAI,EACJ,CAAC,MAAM,EAAE,QAAQ,CAAC,CACrB,CAAC;QAEF,OAAO;YACH,IAAI,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC;YAC7C,IAAI,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC;SAClD,CAAC;IACN,CAAC;IAEO,WAAW;QACf,OAAO,IAAI,KAAK,CACZ,iEAAiE,CACpE,CAAC;IACN,CAAC;;AAlKD;;GAEG;AACoB,oCAAW,GAAG,OAAO,CAAC;AAkKjD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAQ/B;;;OAGG;IACH,YAAY,SAAoB;QAC5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAQhC;;;OAGG;IACH,YAAY,UAAqB;QAC7B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@casual-simulation/crypto-browser",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0-alpha.15119114602",
|
|
4
4
|
"description": "An implemenation of @casual-simulation/crypto for web browsers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"crypto"
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@casual-simulation/crypto": "^3.
|
|
42
|
+
"@casual-simulation/crypto": "^3.5.0-alpha.15119114602",
|
|
43
43
|
"bowser": "^2.4.0"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "c6e0fed2d338914d986c1fbf40490370568b9553"
|
|
46
46
|
}
|