@atproto/crypto 0.2.3 → 0.3.1-next.0
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/CHANGELOG.md +12 -0
- package/LICENSE.txt +1 -1
- package/dist/const.d.ts +1 -0
- package/dist/const.d.ts.map +1 -0
- package/dist/const.js +10 -0
- package/dist/const.js.map +1 -0
- package/dist/did.d.ts +2 -1
- package/dist/did.d.ts.map +1 -0
- package/dist/did.js +68 -0
- package/dist/did.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -3327
- package/dist/index.js.map +1 -7
- package/dist/multibase.d.ts +1 -0
- package/dist/multibase.d.ts.map +1 -0
- package/dist/multibase.js +76 -0
- package/dist/multibase.js.map +1 -0
- package/dist/p256/encoding.d.ts +1 -0
- package/dist/p256/encoding.d.ts.map +1 -0
- package/dist/p256/encoding.js +18 -0
- package/dist/p256/encoding.js.map +1 -0
- package/dist/p256/keypair.d.ts +3 -2
- package/dist/p256/keypair.d.ts.map +1 -0
- package/dist/p256/keypair.js +94 -0
- package/dist/p256/keypair.js.map +1 -0
- package/dist/p256/operations.d.ts +2 -0
- package/dist/p256/operations.d.ts.map +1 -0
- package/dist/p256/operations.js +41 -0
- package/dist/p256/operations.js.map +1 -0
- package/dist/p256/plugin.d.ts +1 -0
- package/dist/p256/plugin.d.ts.map +1 -0
- package/dist/p256/plugin.js +15 -0
- package/dist/p256/plugin.js.map +1 -0
- package/dist/plugins.d.ts +1 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +11 -0
- package/dist/plugins.js.map +1 -0
- package/dist/random.d.ts +1 -0
- package/dist/random.d.ts.map +1 -0
- package/dist/random.js +44 -0
- package/dist/random.js.map +1 -0
- package/dist/secp256k1/encoding.d.ts +1 -0
- package/dist/secp256k1/encoding.d.ts.map +1 -0
- package/dist/secp256k1/encoding.js +18 -0
- package/dist/secp256k1/encoding.js.map +1 -0
- package/dist/secp256k1/keypair.d.ts +3 -2
- package/dist/secp256k1/keypair.d.ts.map +1 -0
- package/dist/secp256k1/keypair.js +94 -0
- package/dist/secp256k1/keypair.js.map +1 -0
- package/dist/secp256k1/operations.d.ts +2 -0
- package/dist/secp256k1/operations.d.ts.map +1 -0
- package/dist/secp256k1/operations.js +64 -0
- package/dist/secp256k1/operations.js.map +1 -0
- package/dist/secp256k1/plugin.d.ts +1 -0
- package/dist/secp256k1/plugin.d.ts.map +1 -0
- package/dist/secp256k1/plugin.js +15 -0
- package/dist/secp256k1/plugin.js.map +1 -0
- package/dist/sha.d.ts +2 -0
- package/dist/sha.d.ts.map +1 -0
- package/dist/sha.js +40 -0
- package/dist/sha.js.map +1 -0
- package/dist/types.d.ts +9 -3
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +47 -0
- package/dist/utils.js.map +1 -0
- package/dist/verify.d.ts +1 -0
- package/dist/verify.d.ts.map +1 -0
- package/dist/verify.js +48 -0
- package/dist/verify.js.map +1 -0
- package/jest.config.js +3 -3
- package/package.json +8 -6
- package/src/did.ts +13 -35
- package/src/p256/keypair.ts +8 -6
- package/src/p256/operations.ts +23 -5
- package/src/p256/plugin.ts +7 -2
- package/src/secp256k1/keypair.ts +9 -7
- package/src/secp256k1/operations.ts +23 -5
- package/src/secp256k1/plugin.ts +7 -2
- package/src/sha.ts +7 -0
- package/src/types.ts +8 -1
- package/src/utils.ts +23 -0
- package/tests/signatures.test.ts +94 -3
- package/tsconfig.build.json +6 -2
- package/tsconfig.json +5 -7
- package/tsconfig.tests.json +7 -0
- package/build.js +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atproto/crypto
|
|
2
2
|
|
|
3
|
+
## 0.3.1-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Overhaul of package builds, no longer bundling deps.
|
|
8
|
+
|
|
9
|
+
## 0.3.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#1839](https://github.com/bluesky-social/atproto/pull/1839) [`e1b5f253`](https://github.com/bluesky-social/atproto/commit/e1b5f2537a5ba4d8b951a741269b604856028ae5) Thanks [@dholms](https://github.com/dholms)! - Prevent signature malleability through DER-encoded signatures
|
|
14
|
+
|
|
3
15
|
## 0.2.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/LICENSE.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Dual MIT/Apache-2.0 License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2022-
|
|
3
|
+
Copyright (c) 2022-2024 Bluesky PBC, and Contributors
|
|
4
4
|
|
|
5
5
|
Except as otherwise noted in individual files, this software is licensed under the MIT license (<http://opensource.org/licenses/MIT>), or the Apache License, Version 2.0 (<http://www.apache.org/licenses/LICENSE-2.0>).
|
|
6
6
|
|
package/dist/const.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,YAA+B,CAAA;AAC3D,eAAO,MAAM,oBAAoB,YAA+B,CAAA;AAChE,eAAO,MAAM,uBAAuB,MAAM,CAAA;AAC1C,eAAO,MAAM,cAAc,aAAa,CAAA;AAExC,eAAO,MAAM,YAAY,UAAU,CAAA;AACnC,eAAO,MAAM,iBAAiB,WAAW,CAAA"}
|
package/dist/const.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SECP256K1_JWT_ALG = exports.P256_JWT_ALG = exports.DID_KEY_PREFIX = exports.BASE58_MULTIBASE_PREFIX = exports.SECP256K1_DID_PREFIX = exports.P256_DID_PREFIX = void 0;
|
|
4
|
+
exports.P256_DID_PREFIX = new Uint8Array([0x80, 0x24]);
|
|
5
|
+
exports.SECP256K1_DID_PREFIX = new Uint8Array([0xe7, 0x01]);
|
|
6
|
+
exports.BASE58_MULTIBASE_PREFIX = 'z';
|
|
7
|
+
exports.DID_KEY_PREFIX = 'did:key:';
|
|
8
|
+
exports.P256_JWT_ALG = 'ES256';
|
|
9
|
+
exports.SECP256K1_JWT_ALG = 'ES256K';
|
|
10
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAC9C,QAAA,oBAAoB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AACnD,QAAA,uBAAuB,GAAG,GAAG,CAAA;AAC7B,QAAA,cAAc,GAAG,UAAU,CAAA;AAE3B,QAAA,YAAY,GAAG,OAAO,CAAA;AACtB,QAAA,iBAAiB,GAAG,QAAQ,CAAA"}
|
package/dist/did.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type ParsedMultikey = {
|
|
2
2
|
jwtAlg: string;
|
|
3
3
|
keyBytes: Uint8Array;
|
|
4
4
|
};
|
|
@@ -6,3 +6,4 @@ export declare const parseMultikey: (multikey: string) => ParsedMultikey;
|
|
|
6
6
|
export declare const formatMultikey: (jwtAlg: string, keyBytes: Uint8Array) => string;
|
|
7
7
|
export declare const parseDidKey: (did: string) => ParsedMultikey;
|
|
8
8
|
export declare const formatDidKey: (jwtAlg: string, keyBytes: Uint8Array) => string;
|
|
9
|
+
//# sourceMappingURL=did.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../src/did.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,UAAU,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,aAAa,aAAc,MAAM,KAAG,cAahD,CAAA;AAED,eAAO,MAAM,cAAc,WACjB,MAAM,YACJ,UAAU,KACnB,MAYF,CAAA;AAED,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,cAGzC,CAAA;AAED,eAAO,MAAM,YAAY,WAAY,MAAM,YAAY,UAAU,KAAG,MAEnE,CAAA"}
|
package/dist/did.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.formatDidKey = exports.parseDidKey = exports.formatMultikey = exports.parseMultikey = void 0;
|
|
30
|
+
const uint8arrays = __importStar(require("uint8arrays"));
|
|
31
|
+
const const_1 = require("./const");
|
|
32
|
+
const plugins_1 = __importDefault(require("./plugins"));
|
|
33
|
+
const utils_1 = require("./utils");
|
|
34
|
+
const parseMultikey = (multikey) => {
|
|
35
|
+
const prefixedBytes = (0, utils_1.extractPrefixedBytes)(multikey);
|
|
36
|
+
const plugin = plugins_1.default.find((p) => (0, utils_1.hasPrefix)(prefixedBytes, p.prefix));
|
|
37
|
+
if (!plugin) {
|
|
38
|
+
throw new Error('Unsupported key type');
|
|
39
|
+
}
|
|
40
|
+
const keyBytes = plugin.decompressPubkey(prefixedBytes.slice(plugin.prefix.length));
|
|
41
|
+
return {
|
|
42
|
+
jwtAlg: plugin.jwtAlg,
|
|
43
|
+
keyBytes,
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
exports.parseMultikey = parseMultikey;
|
|
47
|
+
const formatMultikey = (jwtAlg, keyBytes) => {
|
|
48
|
+
const plugin = plugins_1.default.find((p) => p.jwtAlg === jwtAlg);
|
|
49
|
+
if (!plugin) {
|
|
50
|
+
throw new Error('Unsupported key type');
|
|
51
|
+
}
|
|
52
|
+
const prefixedBytes = uint8arrays.concat([
|
|
53
|
+
plugin.prefix,
|
|
54
|
+
plugin.compressPubkey(keyBytes),
|
|
55
|
+
]);
|
|
56
|
+
return (const_1.BASE58_MULTIBASE_PREFIX + uint8arrays.toString(prefixedBytes, 'base58btc'));
|
|
57
|
+
};
|
|
58
|
+
exports.formatMultikey = formatMultikey;
|
|
59
|
+
const parseDidKey = (did) => {
|
|
60
|
+
const multikey = (0, utils_1.extractMultikey)(did);
|
|
61
|
+
return (0, exports.parseMultikey)(multikey);
|
|
62
|
+
};
|
|
63
|
+
exports.parseDidKey = parseDidKey;
|
|
64
|
+
const formatDidKey = (jwtAlg, keyBytes) => {
|
|
65
|
+
return const_1.DID_KEY_PREFIX + (0, exports.formatMultikey)(jwtAlg, keyBytes);
|
|
66
|
+
};
|
|
67
|
+
exports.formatDidKey = formatDidKey;
|
|
68
|
+
//# sourceMappingURL=did.js.map
|
package/dist/did.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"did.js","sourceRoot":"","sources":["../src/did.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA0C;AAE1C,mCAAiE;AACjE,wDAA+B;AAC/B,mCAA0E;AAOnE,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAkB,EAAE;IAChE,MAAM,aAAa,GAAG,IAAA,4BAAoB,EAAC,QAAQ,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CACtC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAC1C,CAAA;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ;KACT,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,aAAa,iBAazB;AAEM,MAAM,cAAc,GAAG,CAC5B,MAAc,EACd,QAAoB,EACZ,EAAE;IACV,MAAM,MAAM,GAAG,iBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;IACvD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACzC,CAAC;IACD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;QACvC,MAAM,CAAC,MAAM;QACb,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;KAChC,CAAC,CAAA;IACF,OAAO,CACL,+BAAuB,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAC3E,CAAA;AACH,CAAC,CAAA;AAfY,QAAA,cAAc,kBAe1B;AAEM,MAAM,WAAW,GAAG,CAAC,GAAW,EAAkB,EAAE;IACzD,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAA;IACrC,OAAO,IAAA,qBAAa,EAAC,QAAQ,CAAC,CAAA;AAChC,CAAC,CAAA;AAHY,QAAA,WAAW,eAGvB;AAEM,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,QAAoB,EAAU,EAAE;IAC3E,OAAO,sBAAc,GAAG,IAAA,sBAAc,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAC1D,CAAC,CAAA;AAFY,QAAA,YAAY,gBAExB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AAExB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAE7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
|