@dxos/crypto 0.3.8-next.a5a9bfc → 0.3.8
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.
|
@@ -4,7 +4,7 @@ import "@dxos/node-std/globals";
|
|
|
4
4
|
import crypto2 from "hypercore-crypto";
|
|
5
5
|
import { invariant } from "@dxos/invariant";
|
|
6
6
|
import { PublicKey, PUBLIC_KEY_LENGTH, SECRET_KEY_LENGTH } from "@dxos/keys";
|
|
7
|
-
var __dxlog_file = "/home/
|
|
7
|
+
var __dxlog_file = "/home/circleci/project/packages/common/crypto/src/keys.ts";
|
|
8
8
|
var createId = () => PublicKey.stringify(randomBytes(32));
|
|
9
9
|
var SIGNATURE_LENGTH = 64;
|
|
10
10
|
var zeroKey = () => new Uint8Array(32);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/common/crypto/src/keys.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/common/crypto/src/keys.ts":{"bytes":8571,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/common/crypto/src/signer.ts":{"bytes":746,"imports":[],"format":"esm"},"packages/common/crypto/src/browser/subtle.ts":{"bytes":751,"imports":[],"format":"esm"},"packages/common/crypto/src/validator.ts":{"bytes":1473,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/common/crypto/src/verify.ts":{"bytes":2450,"imports":[{"path":"packages/common/crypto/src/browser/subtle.ts","kind":"import-statement","original":"./subtle"}],"format":"esm"},"packages/common/crypto/src/index.ts":{"bytes":788,"imports":[{"path":"packages/common/crypto/src/keys.ts","kind":"import-statement","original":"./keys"},{"path":"packages/common/crypto/src/signer.ts","kind":"import-statement","original":"./signer"},{"path":"packages/common/crypto/src/browser/subtle.ts","kind":"import-statement","original":"./subtle"},{"path":"packages/common/crypto/src/validator.ts","kind":"import-statement","original":"./validator"},{"path":"packages/common/crypto/src/verify.ts","kind":"import-statement","original":"./verify"}],"format":"esm"}},"outputs":{"packages/common/crypto/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5952},"packages/common/crypto/dist/lib/browser/index.mjs":{"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"exports":["SIGNATURE_LENGTH","createId","createKeyPair","discoveryKey","getSignatureValidator","randomBytes","sign","subtleCrypto","validateKeyPair","verify","verifySignature","zeroKey"],"entryPoint":"packages/common/crypto/src/index.ts","inputs":{"packages/common/crypto/src/keys.ts":{"bytesInOutput":2275},"packages/common/crypto/src/index.ts":{"bytesInOutput":0},"packages/common/crypto/src/browser/subtle.ts":{"bytesInOutput":34},"packages/common/crypto/src/validator.ts":{"bytesInOutput":237},"packages/common/crypto/src/verify.ts":{"bytesInOutput":387}},"bytes":3373}}}
|
package/dist/lib/node/index.cjs
CHANGED
|
@@ -26,10 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
var src_exports = {};
|
|
32
|
-
__export(src_exports, {
|
|
29
|
+
var node_exports = {};
|
|
30
|
+
__export(node_exports, {
|
|
33
31
|
SIGNATURE_LENGTH: () => SIGNATURE_LENGTH,
|
|
34
32
|
createId: () => createId,
|
|
35
33
|
createKeyPair: () => createKeyPair,
|
|
@@ -43,13 +41,14 @@ __export(src_exports, {
|
|
|
43
41
|
verifySignature: () => verifySignature,
|
|
44
42
|
zeroKey: () => zeroKey
|
|
45
43
|
});
|
|
46
|
-
module.exports = __toCommonJS(
|
|
47
|
-
|
|
48
|
-
// packages/common/crypto/src/keys.ts
|
|
44
|
+
module.exports = __toCommonJS(node_exports);
|
|
49
45
|
var import_hypercore_crypto = __toESM(require("hypercore-crypto"));
|
|
50
46
|
var import_invariant = require("@dxos/invariant");
|
|
51
47
|
var import_keys = require("@dxos/keys");
|
|
52
|
-
var
|
|
48
|
+
var nodeCrypto = __toESM(require("node:crypto"));
|
|
49
|
+
var import_hypercore_crypto2 = require("hypercore-crypto");
|
|
50
|
+
var import_keys2 = require("@dxos/keys");
|
|
51
|
+
var __dxlog_file = "/home/circleci/project/packages/common/crypto/src/keys.ts";
|
|
53
52
|
var createId = () => import_keys.PublicKey.stringify(randomBytes(32));
|
|
54
53
|
var SIGNATURE_LENGTH = 64;
|
|
55
54
|
var zeroKey = () => new Uint8Array(32);
|
|
@@ -125,17 +124,8 @@ var verify = (message, signature, publicKey) => {
|
|
|
125
124
|
});
|
|
126
125
|
return import_hypercore_crypto.default.verify(message, signature, publicKey);
|
|
127
126
|
};
|
|
128
|
-
|
|
129
|
-
// packages/common/crypto/src/subtle.ts
|
|
130
|
-
var nodeCrypto = __toESM(require("node:crypto"));
|
|
131
127
|
var subtleCrypto = nodeCrypto.webcrypto.subtle;
|
|
132
|
-
|
|
133
|
-
// packages/common/crypto/src/validator.ts
|
|
134
|
-
var import_hypercore_crypto2 = require("hypercore-crypto");
|
|
135
|
-
var import_keys2 = require("@dxos/keys");
|
|
136
128
|
var getSignatureValidator = (publicKey) => (message, signature) => (0, import_hypercore_crypto2.verify)(message, signature, import_keys2.PublicKey.bufferize(publicKey));
|
|
137
|
-
|
|
138
|
-
// packages/common/crypto/src/verify.ts
|
|
139
129
|
var verifySignature = async (key, message, signature) => {
|
|
140
130
|
let publicKey;
|
|
141
131
|
try {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["createId", "PublicKey", "stringify", "randomBytes", "SIGNATURE_LENGTH", "zeroKey", "Uint8Array", "createKeyPair", "seed", "invariant", "length", "crypto", "keyPair", "slice", "validateKeyPair", "publicKey", "secretKey", "asBuffer", "discoveryKey", "key", "from", "sign", "message", "Buffer", "isBuffer", "SECRET_KEY_LENGTH", "verify", "signature", "PUBLIC_KEY_LENGTH", "subtleCrypto", "webcrypto", "subtle", "
|
|
3
|
+
"sources": ["../../../src/keys.ts", "../../../src/subtle.ts", "../../../src/validator.ts", "../../../src/verify.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nimport crypto from 'hypercore-crypto';\n\nimport { invariant } from '@dxos/invariant';\nimport { type KeyPair, PublicKey, type PublicKeyLike, PUBLIC_KEY_LENGTH, SECRET_KEY_LENGTH } from '@dxos/keys';\n\n/**\n * @deprecated\n */\n// TODO(burdon): Remove.\nexport const createId = (): string => PublicKey.stringify(randomBytes(32));\n\nexport const SIGNATURE_LENGTH = 64;\n\nexport const zeroKey = () => new Uint8Array(32); // TODO(burdon): Remove?\n\nexport const createKeyPair = (seed?: Buffer): KeyPair => {\n if (seed) {\n invariant(seed.length >= 32, 'Seedphrase too sort. Expecting length of 32.');\n return crypto.keyPair(seed.slice(0, 32));\n }\n\n // TODO(burdon): Enable seed for debugging.\n return crypto.keyPair();\n};\n\n// TODO(burdon): Buffer.\nexport const validateKeyPair = (publicKey: PublicKey, secretKey: Buffer) =>\n crypto.validateKeyPair({ publicKey: publicKey.asBuffer(), secretKey });\n\n// TODO(dmaretskyi): Slicing because webcrypto keys are too long.\nexport const discoveryKey = (key: PublicKeyLike): Buffer =>\n crypto.discoveryKey(PublicKey.from(key).asBuffer().slice(1));\n\n/**\n * Return random bytes of length.\n * @param [length=32]\n * @return {Buffer}\n */\nexport const randomBytes = (length = 32): Buffer => crypto.randomBytes(length);\n\n/**\n * Sign the contents of message with secret_key\n * @param {Buffer} message\n * @param {Buffer} secretKey\n * @returns {Buffer} signature\n */\nexport const sign = (message: Buffer, secretKey: Buffer): Buffer => {\n invariant(Buffer.isBuffer(message));\n invariant(Buffer.isBuffer(secretKey) && secretKey.length === SECRET_KEY_LENGTH);\n\n return crypto.sign(message, secretKey);\n};\n\n/**\n * Verifies the signature against the message and public_key.\n * @param {Buffer} message\n * @param {Buffer} publicKey\n * @param {Buffer} signature\n * @return {boolean}\n */\nexport const verify = (message: Buffer, signature: Buffer, publicKey: Buffer): boolean => {\n invariant(Buffer.isBuffer(message));\n invariant(Buffer.isBuffer(signature) && signature.length === SIGNATURE_LENGTH);\n invariant(Buffer.isBuffer(publicKey) && publicKey.length === PUBLIC_KEY_LENGTH);\n\n return crypto.verify(message, signature, publicKey);\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport * as nodeCrypto from 'node:crypto';\n\nexport const subtleCrypto = nodeCrypto.webcrypto.subtle;\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport { verify } from 'hypercore-crypto';\n\nimport { PublicKey } from '@dxos/keys';\n\n/**\n * Generator for signature validation function.\n * @param {String} publicKey\n */\nexport const getSignatureValidator = (publicKey: string) => (message: Buffer, signature: Buffer) =>\n verify(message, signature, PublicKey.bufferize(publicKey));\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type PublicKey } from '@dxos/keys';\n\nimport { subtleCrypto } from './subtle';\n\n/**\n * Verify a signature with the given key.\n */\nexport const verifySignature = async (key: PublicKey, message: Uint8Array, signature: Uint8Array): Promise<boolean> => {\n let publicKey!: CryptoKey;\n\n try {\n publicKey = await subtleCrypto.importKey(\n 'raw',\n key.asUint8Array(),\n {\n name: 'ECDSA',\n namedCurve: 'P-256',\n },\n true,\n ['verify'],\n );\n } catch {\n return false;\n }\n\n return subtleCrypto.verify(\n {\n name: 'ECDSA',\n hash: 'SHA-256',\n },\n publicKey,\n signature,\n message,\n );\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,8BAAmB;AAEnB,uBAA0B;AAC1B,kBAAkG;ACHlG,iBAA4B;ACA5B,IAAAA,2BAAuB;AAEvB,IAAAC,eAA0B;;AFOnB,IAAMC,WAAW,MAAcC,sBAAUC,UAAUC,YAAY,EAAA,CAAA;AAE/D,IAAMC,mBAAmB;AAEzB,IAAMC,UAAU,MAAM,IAAIC,WAAW,EAAA;AAErC,IAAMC,gBAAgB,CAACC,SAAAA;AAC5B,MAAIA,MAAM;AACRC,oCAAUD,KAAKE,UAAU,IAAI,gDAAA;;;;;;;;;AAC7B,WAAOC,wBAAAA,QAAOC,QAAQJ,KAAKK,MAAM,GAAG,EAAA,CAAA;EACtC;AAGA,SAAOF,wBAAAA,QAAOC,QAAO;AACvB;AAGO,IAAME,kBAAkB,CAACC,WAAsBC,cACpDL,wBAAAA,QAAOG,gBAAgB;EAAEC,WAAWA,UAAUE,SAAQ;EAAID;AAAU,CAAA;AAG/D,IAAME,eAAe,CAACC,QAC3BR,wBAAAA,QAAOO,aAAajB,sBAAUmB,KAAKD,GAAAA,EAAKF,SAAQ,EAAGJ,MAAM,CAAA,CAAA;AAOpD,IAAMV,cAAc,CAACO,SAAS,OAAeC,wBAAAA,QAAOR,YAAYO,MAAAA;AAQhE,IAAMW,OAAO,CAACC,SAAiBN,cAAAA;AACpCP,kCAAUc,OAAOC,SAASF,OAAAA,GAAAA,QAAAA;;;;;;;;;AAC1Bb,kCAAUc,OAAOC,SAASR,SAAAA,KAAcA,UAAUN,WAAWe,+BAAAA,QAAAA;;;;;;;;;AAE7D,SAAOd,wBAAAA,QAAOU,KAAKC,SAASN,SAAAA;AAC9B;AASO,IAAMU,SAAS,CAACJ,SAAiBK,WAAmBZ,cAAAA;AACzDN,kCAAUc,OAAOC,SAASF,OAAAA,GAAAA,QAAAA;;;;;;;;;AAC1Bb,kCAAUc,OAAOC,SAASG,SAAAA,KAAcA,UAAUjB,WAAWN,kBAAAA,QAAAA;;;;;;;;;AAC7DK,kCAAUc,OAAOC,SAAST,SAAAA,KAAcA,UAAUL,WAAWkB,+BAAAA,QAAAA;;;;;;;;;AAE7D,SAAOjB,wBAAAA,QAAOe,OAAOJ,SAASK,WAAWZ,SAAAA;AAC3C;AChEO,IAAMc,eAA0BC,WAAAA,UAAUC;ACM1C,IAAMC,wBAAwB,CAACjB,cAAsB,CAACO,SAAiBK,kBAC5ED,yBAAAA,QAAOJ,SAASK,WAAW1B,aAAAA,UAAUgC,UAAUlB,SAAAA,CAAAA;ACF1C,IAAMmB,kBAAkB,OAAOf,KAAgBG,SAAqBK,cAAAA;AACzE,MAAIZ;AAEJ,MAAI;AACFA,gBAAY,MAAMc,aAAaM,UAC7B,OACAhB,IAAIiB,aAAY,GAChB;MACEC,MAAM;MACNC,YAAY;IACd,GACA,MACA;MAAC;KAAS;EAEd,QAAQ;AACN,WAAO;EACT;AAEA,SAAOT,aAAaH,OAClB;IACEW,MAAM;IACNE,MAAM;EACR,GACAxB,WACAY,WACAL,OAAAA;AAEJ;",
|
|
6
|
+
"names": ["import_hypercore_crypto", "import_keys", "createId", "PublicKey", "stringify", "randomBytes", "SIGNATURE_LENGTH", "zeroKey", "Uint8Array", "createKeyPair", "seed", "invariant", "length", "crypto", "keyPair", "slice", "validateKeyPair", "publicKey", "secretKey", "asBuffer", "discoveryKey", "key", "from", "sign", "message", "Buffer", "isBuffer", "SECRET_KEY_LENGTH", "verify", "signature", "PUBLIC_KEY_LENGTH", "subtleCrypto", "webcrypto", "subtle", "getSignatureValidator", "bufferize", "verifySignature", "importKey", "asUint8Array", "name", "namedCurve", "hash"]
|
|
7
7
|
}
|
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/common/crypto/src/keys.ts":{"bytes":
|
|
1
|
+
{"inputs":{"packages/common/crypto/src/keys.ts":{"bytes":8571,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/common/crypto/src/signer.ts":{"bytes":746,"imports":[],"format":"esm"},"packages/common/crypto/src/subtle.ts":{"bytes":774,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"packages/common/crypto/src/validator.ts":{"bytes":1473,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"format":"esm"},"packages/common/crypto/src/verify.ts":{"bytes":2450,"imports":[{"path":"packages/common/crypto/src/subtle.ts","kind":"import-statement","original":"./subtle"}],"format":"esm"},"packages/common/crypto/src/index.ts":{"bytes":788,"imports":[{"path":"packages/common/crypto/src/keys.ts","kind":"import-statement","original":"./keys"},{"path":"packages/common/crypto/src/signer.ts","kind":"import-statement","original":"./signer"},{"path":"packages/common/crypto/src/subtle.ts","kind":"import-statement","original":"./subtle"},{"path":"packages/common/crypto/src/validator.ts","kind":"import-statement","original":"./validator"},{"path":"packages/common/crypto/src/verify.ts","kind":"import-statement","original":"./verify"}],"format":"esm"}},"outputs":{"packages/common/crypto/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5971},"packages/common/crypto/dist/lib/node/index.cjs":{"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}],"exports":["SIGNATURE_LENGTH","createId","createKeyPair","discoveryKey","getSignatureValidator","randomBytes","sign","subtleCrypto","validateKeyPair","verify","verifySignature","zeroKey"],"entryPoint":"packages/common/crypto/src/index.ts","inputs":{"packages/common/crypto/src/keys.ts":{"bytesInOutput":2267},"packages/common/crypto/src/index.ts":{"bytesInOutput":0},"packages/common/crypto/src/subtle.ts":{"bytesInOutput":91},"packages/common/crypto/src/validator.ts":{"bytesInOutput":237},"packages/common/crypto/src/verify.ts":{"bytesInOutput":387}},"bytes":3380}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/crypto",
|
|
3
|
-
"version": "0.3.8
|
|
3
|
+
"version": "0.3.8",
|
|
4
4
|
"description": "Basic cross-platform crypto utils.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"hypercore-crypto": "^2.3.0",
|
|
21
|
-
"@dxos/
|
|
22
|
-
"@dxos/node-std": "0.3.8
|
|
23
|
-
"@dxos/
|
|
21
|
+
"@dxos/keys": "0.3.8",
|
|
22
|
+
"@dxos/node-std": "0.3.8",
|
|
23
|
+
"@dxos/invariant": "0.3.8"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/crypto-js": "~4.0.2",
|