@dxos/crypto 0.1.55 → 0.1.56-main.09ca29d

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.
@@ -2,14 +2,23 @@ import "@dxos/node-std/globals";
2
2
 
3
3
  // packages/common/crypto/src/keys.ts
4
4
  import crypto2 from "hypercore-crypto";
5
- import invariant from "tiny-invariant";
5
+ import { invariant } from "@dxos/invariant";
6
6
  import { PublicKey, PUBLIC_KEY_LENGTH, SECRET_KEY_LENGTH } from "@dxos/keys";
7
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/crypto/src/keys.ts";
7
8
  var createId = () => PublicKey.stringify(randomBytes(32));
8
9
  var SIGNATURE_LENGTH = 64;
9
10
  var zeroKey = () => new Uint8Array(32);
10
11
  var createKeyPair = (seed) => {
11
12
  if (seed) {
12
- invariant(seed.length >= 32, "Seedphrase too sort. Expecting length of 32.");
13
+ invariant(seed.length >= 32, "Seedphrase too sort. Expecting length of 32.", {
14
+ F: __dxlog_file,
15
+ L: 22,
16
+ S: void 0,
17
+ A: [
18
+ "seed.length >= 32",
19
+ "'Seedphrase too sort. Expecting length of 32.'"
20
+ ]
21
+ });
13
22
  return crypto2.keyPair(seed.slice(0, 32));
14
23
  }
15
24
  return crypto2.keyPair();
@@ -21,14 +30,54 @@ var validateKeyPair = (publicKey, secretKey) => crypto2.validateKeyPair({
21
30
  var discoveryKey = (key) => crypto2.discoveryKey(PublicKey.from(key).asBuffer().slice(1));
22
31
  var randomBytes = (length = 32) => crypto2.randomBytes(length);
23
32
  var sign = (message, secretKey) => {
24
- invariant(Buffer.isBuffer(message));
25
- invariant(Buffer.isBuffer(secretKey) && secretKey.length === SECRET_KEY_LENGTH);
33
+ invariant(Buffer.isBuffer(message), void 0, {
34
+ F: __dxlog_file,
35
+ L: 52,
36
+ S: void 0,
37
+ A: [
38
+ "Buffer.isBuffer(message)",
39
+ ""
40
+ ]
41
+ });
42
+ invariant(Buffer.isBuffer(secretKey) && secretKey.length === SECRET_KEY_LENGTH, void 0, {
43
+ F: __dxlog_file,
44
+ L: 53,
45
+ S: void 0,
46
+ A: [
47
+ "Buffer.isBuffer(secretKey) && secretKey.length === SECRET_KEY_LENGTH",
48
+ ""
49
+ ]
50
+ });
26
51
  return crypto2.sign(message, secretKey);
27
52
  };
28
53
  var verify = (message, signature, publicKey) => {
29
- invariant(Buffer.isBuffer(message));
30
- invariant(Buffer.isBuffer(signature) && signature.length === SIGNATURE_LENGTH);
31
- invariant(Buffer.isBuffer(publicKey) && publicKey.length === PUBLIC_KEY_LENGTH);
54
+ invariant(Buffer.isBuffer(message), void 0, {
55
+ F: __dxlog_file,
56
+ L: 66,
57
+ S: void 0,
58
+ A: [
59
+ "Buffer.isBuffer(message)",
60
+ ""
61
+ ]
62
+ });
63
+ invariant(Buffer.isBuffer(signature) && signature.length === SIGNATURE_LENGTH, void 0, {
64
+ F: __dxlog_file,
65
+ L: 67,
66
+ S: void 0,
67
+ A: [
68
+ "Buffer.isBuffer(signature) && signature.length === SIGNATURE_LENGTH",
69
+ ""
70
+ ]
71
+ });
72
+ invariant(Buffer.isBuffer(publicKey) && publicKey.length === PUBLIC_KEY_LENGTH, void 0, {
73
+ F: __dxlog_file,
74
+ L: 68,
75
+ S: void 0,
76
+ A: [
77
+ "Buffer.isBuffer(publicKey) && publicKey.length === PUBLIC_KEY_LENGTH",
78
+ ""
79
+ ]
80
+ });
32
81
  return crypto2.verify(message, signature, publicKey);
33
82
  };
34
83
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/keys.ts", "../../../src/browser/subtle.ts", "../../../src/validator.ts", "../../../src/verify.ts"],
4
- "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nimport crypto from 'hypercore-crypto';\nimport invariant from 'tiny-invariant';\n\nimport { KeyPair, PublicKey, 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\n// Replacement implementation for the browser (see package.json).\n\nexport const subtleCrypto = crypto.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 { 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,OAAOA,aAAY;AACnB,OAAOC,eAAe;AAEtB,SAAkBC,WAA0BC,mBAAmBC,yBAAyB;AAMjF,IAAMC,WAAW,MAAcC,UAAUC,UAAUC,YAAY,EAAA,CAAA;AAE/D,IAAMC,mBAAmB;AAEzB,IAAMC,UAAU,MAAM,IAAIC,WAAW,EAAA;AAErC,IAAMC,gBAAgB,CAACC,SAAAA;AAC5B,MAAIA,MAAM;AACRC,cAAUD,KAAKE,UAAU,IAAI,8CAAA;AAC7B,WAAOC,QAAOC,QAAQJ,KAAKK,MAAM,GAAG,EAAA,CAAA;EACtC;AAGA,SAAOF,QAAOC,QAAO;AACvB;AAGO,IAAME,kBAAkB,CAACC,WAAsBC,cACpDL,QAAOG,gBAAgB;EAAEC,WAAWA,UAAUE,SAAQ;EAAID;AAAU,CAAA;AAG/D,IAAME,eAAe,CAACC,QAC3BR,QAAOO,aAAajB,UAAUmB,KAAKD,GAAAA,EAAKF,SAAQ,EAAGJ,MAAM,CAAA,CAAA;AAOpD,IAAMV,cAAc,CAACO,SAAS,OAAeC,QAAOR,YAAYO,MAAAA;AAQhE,IAAMW,OAAO,CAACC,SAAiBN,cAAAA;AACpCP,YAAUc,OAAOC,SAASF,OAAAA,CAAAA;AAC1Bb,YAAUc,OAAOC,SAASR,SAAAA,KAAcA,UAAUN,WAAWe,iBAAAA;AAE7D,SAAOd,QAAOU,KAAKC,SAASN,SAAAA;AAC9B;AASO,IAAMU,SAAS,CAACJ,SAAiBK,WAAmBZ,cAAAA;AACzDN,YAAUc,OAAOC,SAASF,OAAAA,CAAAA;AAC1Bb,YAAUc,OAAOC,SAASG,SAAAA,KAAcA,UAAUjB,WAAWN,gBAAAA;AAC7DK,YAAUc,OAAOC,SAAST,SAAAA,KAAcA,UAAUL,WAAWkB,iBAAAA;AAE7D,SAAOjB,QAAOe,OAAOJ,SAASK,WAAWZ,SAAAA;AAC3C;;;AChEO,IAAMc,eAAeC,OAAOC;;;ACFnC,SAASC,UAAAA,eAAc;AAEvB,SAASC,aAAAA,kBAAiB;AAMnB,IAAMC,wBAAwB,CAACC,cAAsB,CAACC,SAAiBC,cAC5EC,QAAOF,SAASC,WAAWE,WAAUC,UAAUL,SAAAA,CAAAA;;;ACF1C,IAAMM,kBAAkB,OAAOC,KAAgBC,SAAqBC,cAAAA;AACzE,MAAIC;AAEJ,MAAI;AACFA,gBAAY,MAAMC,aAAaC,UAC7B,OACAL,IAAIM,aAAY,GAChB;MACEC,MAAM;MACNC,YAAY;IACd,GACA,MACA;MAAC;KAAS;EAEd,SAAQ,GAAN;AACA,WAAO;EACT;AAEA,SAAOJ,aAAaK,OAClB;IACEF,MAAM;IACNG,MAAM;EACR,GACAP,WACAD,WACAD,OAAAA;AAEJ;",
6
- "names": ["crypto", "invariant", "PublicKey", "PUBLIC_KEY_LENGTH", "SECRET_KEY_LENGTH", "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", "crypto", "subtle", "verify", "PublicKey", "getSignatureValidator", "publicKey", "message", "signature", "verify", "PublicKey", "bufferize", "verifySignature", "key", "message", "signature", "publicKey", "subtleCrypto", "importKey", "asUint8Array", "name", "namedCurve", "verify", "hash"]
4
+ "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nimport crypto from 'hypercore-crypto';\n\nimport { invariant } from '@dxos/invariant';\nimport { KeyPair, PublicKey, 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\n// Replacement implementation for the browser (see package.json).\n\nexport const subtleCrypto = crypto.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 { 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,OAAOA,aAAY;AAEnB,SAASC,iBAAiB;AAC1B,SAAkBC,WAA0BC,mBAAmBC,yBAAyB;;AAMjF,IAAMC,WAAW,MAAcH,UAAUI,UAAUC,YAAY,EAAA,CAAA;AAE/D,IAAMC,mBAAmB;AAEzB,IAAMC,UAAU,MAAM,IAAIC,WAAW,EAAA;AAErC,IAAMC,gBAAgB,CAACC,SAAAA;AAC5B,MAAIA,MAAM;AACRX,cAAUW,KAAKC,UAAU,IAAI,gDAAA;;;;;;;;;AAC7B,WAAOb,QAAOc,QAAQF,KAAKG,MAAM,GAAG,EAAA,CAAA;EACtC;AAGA,SAAOf,QAAOc,QAAO;AACvB;AAGO,IAAME,kBAAkB,CAACC,WAAsBC,cACpDlB,QAAOgB,gBAAgB;EAAEC,WAAWA,UAAUE,SAAQ;EAAID;AAAU,CAAA;AAG/D,IAAME,eAAe,CAACC,QAC3BrB,QAAOoB,aAAalB,UAAUoB,KAAKD,GAAAA,EAAKF,SAAQ,EAAGJ,MAAM,CAAA,CAAA;AAOpD,IAAMR,cAAc,CAACM,SAAS,OAAeb,QAAOO,YAAYM,MAAAA;AAQhE,IAAMU,OAAO,CAACC,SAAiBN,cAAAA;AACpCjB,YAAUwB,OAAOC,SAASF,OAAAA,GAAAA,QAAAA;;;;;;;;;AAC1BvB,YAAUwB,OAAOC,SAASR,SAAAA,KAAcA,UAAUL,WAAWT,mBAAAA,QAAAA;;;;;;;;;AAE7D,SAAOJ,QAAOuB,KAAKC,SAASN,SAAAA;AAC9B;AASO,IAAMS,SAAS,CAACH,SAAiBI,WAAmBX,cAAAA;AACzDhB,YAAUwB,OAAOC,SAASF,OAAAA,GAAAA,QAAAA;;;;;;;;;AAC1BvB,YAAUwB,OAAOC,SAASE,SAAAA,KAAcA,UAAUf,WAAWL,kBAAAA,QAAAA;;;;;;;;;AAC7DP,YAAUwB,OAAOC,SAAST,SAAAA,KAAcA,UAAUJ,WAAWV,mBAAAA,QAAAA;;;;;;;;;AAE7D,SAAOH,QAAO2B,OAAOH,SAASI,WAAWX,SAAAA;AAC3C;;;AChEO,IAAMY,eAAeC,OAAOC;;;ACFnC,SAASC,UAAAA,eAAc;AAEvB,SAASC,aAAAA,kBAAiB;AAMnB,IAAMC,wBAAwB,CAACC,cAAsB,CAACC,SAAiBC,cAC5EC,QAAOF,SAASC,WAAWE,WAAUC,UAAUL,SAAAA,CAAAA;;;ACF1C,IAAMM,kBAAkB,OAAOC,KAAgBC,SAAqBC,cAAAA;AACzE,MAAIC;AAEJ,MAAI;AACFA,gBAAY,MAAMC,aAAaC,UAC7B,OACAL,IAAIM,aAAY,GAChB;MACEC,MAAM;MACNC,YAAY;IACd,GACA,MACA;MAAC;KAAS;EAEd,SAAQ,GAAN;AACA,WAAO;EACT;AAEA,SAAOJ,aAAaK,OAClB;IACEF,MAAM;IACNG,MAAM;EACR,GACAP,WACAD,WACAD,OAAAA;AAEJ;",
6
+ "names": ["crypto", "invariant", "PublicKey", "PUBLIC_KEY_LENGTH", "SECRET_KEY_LENGTH", "createId", "stringify", "randomBytes", "SIGNATURE_LENGTH", "zeroKey", "Uint8Array", "createKeyPair", "seed", "length", "keyPair", "slice", "validateKeyPair", "publicKey", "secretKey", "asBuffer", "discoveryKey", "key", "from", "sign", "message", "Buffer", "isBuffer", "verify", "signature", "subtleCrypto", "crypto", "subtle", "verify", "PublicKey", "getSignatureValidator", "publicKey", "message", "signature", "verify", "PublicKey", "bufferize", "verifySignature", "key", "message", "signature", "publicKey", "subtleCrypto", "importKey", "asUint8Array", "name", "namedCurve", "verify", "hash"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/common/crypto/src/keys.ts":{"bytes":7367,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"tiny-invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}]},"packages/common/crypto/src/signer.ts":{"bytes":733,"imports":[]},"packages/common/crypto/src/browser/subtle.ts":{"bytes":746,"imports":[]},"packages/common/crypto/src/validator.ts":{"bytes":1468,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}]},"packages/common/crypto/src/verify.ts":{"bytes":2437,"imports":[{"path":"packages/common/crypto/src/browser/subtle.ts","kind":"import-statement","original":"./subtle"}]},"packages/common/crypto/src/index.ts":{"bytes":783,"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"}]}},"outputs":{"packages/common/crypto/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5922},"packages/common/crypto/dist/lib/browser/index.mjs":{"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"tiny-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":1292},"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":391}},"bytes":2394}}}
1
+ {"inputs":{"packages/common/crypto/src/keys.ts":{"bytes":8564,"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}]},"packages/common/crypto/src/signer.ts":{"bytes":743,"imports":[]},"packages/common/crypto/src/browser/subtle.ts":{"bytes":756,"imports":[]},"packages/common/crypto/src/validator.ts":{"bytes":1478,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}]},"packages/common/crypto/src/verify.ts":{"bytes":2447,"imports":[{"path":"packages/common/crypto/src/browser/subtle.ts","kind":"import-statement","original":"./subtle"}]},"packages/common/crypto/src/index.ts":{"bytes":793,"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"}]}},"outputs":{"packages/common/crypto/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5942},"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":2280},"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":391}},"bytes":3382}}}
@@ -47,14 +47,23 @@ module.exports = __toCommonJS(src_exports);
47
47
 
48
48
  // packages/common/crypto/src/keys.ts
49
49
  var import_hypercore_crypto = __toESM(require("hypercore-crypto"));
50
- var import_tiny_invariant = __toESM(require("tiny-invariant"));
50
+ var import_invariant = require("@dxos/invariant");
51
51
  var import_keys = require("@dxos/keys");
52
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/crypto/src/keys.ts";
52
53
  var createId = () => import_keys.PublicKey.stringify(randomBytes(32));
53
54
  var SIGNATURE_LENGTH = 64;
54
55
  var zeroKey = () => new Uint8Array(32);
55
56
  var createKeyPair = (seed) => {
56
57
  if (seed) {
57
- (0, import_tiny_invariant.default)(seed.length >= 32, "Seedphrase too sort. Expecting length of 32.");
58
+ (0, import_invariant.invariant)(seed.length >= 32, "Seedphrase too sort. Expecting length of 32.", {
59
+ F: __dxlog_file,
60
+ L: 22,
61
+ S: void 0,
62
+ A: [
63
+ "seed.length >= 32",
64
+ "'Seedphrase too sort. Expecting length of 32.'"
65
+ ]
66
+ });
58
67
  return import_hypercore_crypto.default.keyPair(seed.slice(0, 32));
59
68
  }
60
69
  return import_hypercore_crypto.default.keyPair();
@@ -66,14 +75,54 @@ var validateKeyPair = (publicKey, secretKey) => import_hypercore_crypto.default.
66
75
  var discoveryKey = (key) => import_hypercore_crypto.default.discoveryKey(import_keys.PublicKey.from(key).asBuffer().slice(1));
67
76
  var randomBytes = (length = 32) => import_hypercore_crypto.default.randomBytes(length);
68
77
  var sign = (message, secretKey) => {
69
- (0, import_tiny_invariant.default)(Buffer.isBuffer(message));
70
- (0, import_tiny_invariant.default)(Buffer.isBuffer(secretKey) && secretKey.length === import_keys.SECRET_KEY_LENGTH);
78
+ (0, import_invariant.invariant)(Buffer.isBuffer(message), void 0, {
79
+ F: __dxlog_file,
80
+ L: 52,
81
+ S: void 0,
82
+ A: [
83
+ "Buffer.isBuffer(message)",
84
+ ""
85
+ ]
86
+ });
87
+ (0, import_invariant.invariant)(Buffer.isBuffer(secretKey) && secretKey.length === import_keys.SECRET_KEY_LENGTH, void 0, {
88
+ F: __dxlog_file,
89
+ L: 53,
90
+ S: void 0,
91
+ A: [
92
+ "Buffer.isBuffer(secretKey) && secretKey.length === SECRET_KEY_LENGTH",
93
+ ""
94
+ ]
95
+ });
71
96
  return import_hypercore_crypto.default.sign(message, secretKey);
72
97
  };
73
98
  var verify = (message, signature, publicKey) => {
74
- (0, import_tiny_invariant.default)(Buffer.isBuffer(message));
75
- (0, import_tiny_invariant.default)(Buffer.isBuffer(signature) && signature.length === SIGNATURE_LENGTH);
76
- (0, import_tiny_invariant.default)(Buffer.isBuffer(publicKey) && publicKey.length === import_keys.PUBLIC_KEY_LENGTH);
99
+ (0, import_invariant.invariant)(Buffer.isBuffer(message), void 0, {
100
+ F: __dxlog_file,
101
+ L: 66,
102
+ S: void 0,
103
+ A: [
104
+ "Buffer.isBuffer(message)",
105
+ ""
106
+ ]
107
+ });
108
+ (0, import_invariant.invariant)(Buffer.isBuffer(signature) && signature.length === SIGNATURE_LENGTH, void 0, {
109
+ F: __dxlog_file,
110
+ L: 67,
111
+ S: void 0,
112
+ A: [
113
+ "Buffer.isBuffer(signature) && signature.length === SIGNATURE_LENGTH",
114
+ ""
115
+ ]
116
+ });
117
+ (0, import_invariant.invariant)(Buffer.isBuffer(publicKey) && publicKey.length === import_keys.PUBLIC_KEY_LENGTH, void 0, {
118
+ F: __dxlog_file,
119
+ L: 68,
120
+ S: void 0,
121
+ A: [
122
+ "Buffer.isBuffer(publicKey) && publicKey.length === PUBLIC_KEY_LENGTH",
123
+ ""
124
+ ]
125
+ });
77
126
  return import_hypercore_crypto.default.verify(message, signature, publicKey);
78
127
  };
79
128
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/index.ts", "../../../src/keys.ts", "../../../src/subtle.ts", "../../../src/validator.ts", "../../../src/verify.ts"],
4
- "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from './keys';\nexport * from './signer';\nexport * from './subtle';\nexport * from './validator';\nexport * from './verify';\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport crypto from 'hypercore-crypto';\nimport invariant from 'tiny-invariant';\n\nimport { KeyPair, PublicKey, 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 { 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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;ACIA,8BAAmB;AACnB,4BAAsB;AAEtB,kBAAwF;AAMjF,IAAMA,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,8BAAAA,SAAUD,KAAKE,UAAU,IAAI,8CAAA;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,4BAAAA,SAAUc,OAAOC,SAASF,OAAAA,CAAAA;AAC1Bb,4BAAAA,SAAUc,OAAOC,SAASR,SAAAA,KAAcA,UAAUN,WAAWe,6BAAAA;AAE7D,SAAOd,wBAAAA,QAAOU,KAAKC,SAASN,SAAAA;AAC9B;AASO,IAAMU,SAAS,CAACJ,SAAiBK,WAAmBZ,cAAAA;AACzDN,4BAAAA,SAAUc,OAAOC,SAASF,OAAAA,CAAAA;AAC1Bb,4BAAAA,SAAUc,OAAOC,SAASG,SAAAA,KAAcA,UAAUjB,WAAWN,gBAAAA;AAC7DK,4BAAAA,SAAUc,OAAOC,SAAST,SAAAA,KAAcA,UAAUL,WAAWkB,6BAAAA;AAE7D,SAAOjB,wBAAAA,QAAOe,OAAOJ,SAASK,WAAWZ,SAAAA;AAC3C;;;AClEA,iBAA4B;AAErB,IAAMc,eAA0BC,qBAAUC;;;ACFjD,IAAAC,2BAAuB;AAEvB,IAAAC,eAA0B;AAMnB,IAAMC,wBAAwB,CAACC,cAAsB,CAACC,SAAiBC,kBAC5EC,iCAAOF,SAASC,WAAWE,uBAAUC,UAAUL,SAAAA,CAAAA;;;ACF1C,IAAMM,kBAAkB,OAAOC,KAAgBC,SAAqBC,cAAAA;AACzE,MAAIC;AAEJ,MAAI;AACFA,gBAAY,MAAMC,aAAaC,UAC7B,OACAL,IAAIM,aAAY,GAChB;MACEC,MAAM;MACNC,YAAY;IACd,GACA,MACA;MAAC;KAAS;EAEd,SAAQ,GAAN;AACA,WAAO;EACT;AAEA,SAAOJ,aAAaK,OAClB;IACEF,MAAM;IACNG,MAAM;EACR,GACAP,WACAD,WACAD,OAAAA;AAEJ;",
4
+ "sourcesContent": ["//\n// Copyright 2020 DXOS.org\n//\n\nexport * from './keys';\nexport * from './signer';\nexport * from './subtle';\nexport * from './validator';\nexport * from './verify';\n", "//\n// Copyright 2020 DXOS.org\n//\n\nimport crypto from 'hypercore-crypto';\n\nimport { invariant } from '@dxos/invariant';\nimport { KeyPair, PublicKey, 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 { 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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;ACIA,8BAAmB;AAEnB,uBAA0B;AAC1B,kBAAwF;;AAMjF,IAAMA,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;;;AClEA,iBAA4B;AAErB,IAAMc,eAA0BC,qBAAUC;;;ACFjD,IAAAC,2BAAuB;AAEvB,IAAAC,eAA0B;AAMnB,IAAMC,wBAAwB,CAACC,cAAsB,CAACC,SAAiBC,kBAC5EC,iCAAOF,SAASC,WAAWE,uBAAUC,UAAUL,SAAAA,CAAAA;;;ACF1C,IAAMM,kBAAkB,OAAOC,KAAgBC,SAAqBC,cAAAA;AACzE,MAAIC;AAEJ,MAAI;AACFA,gBAAY,MAAMC,aAAaC,UAC7B,OACAL,IAAIM,aAAY,GAChB;MACEC,MAAM;MACNC,YAAY;IACd,GACA,MACA;MAAC;KAAS;EAEd,SAAQ,GAAN;AACA,WAAO;EACT;AAEA,SAAOJ,aAAaK,OAClB;IACEF,MAAM;IACNG,MAAM;EACR,GACAP,WACAD,WACAD,OAAAA;AAEJ;",
6
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", "import_hypercore_crypto", "import_keys", "getSignatureValidator", "publicKey", "message", "signature", "verify", "PublicKey", "bufferize", "verifySignature", "key", "message", "signature", "publicKey", "subtleCrypto", "importKey", "asUint8Array", "name", "namedCurve", "verify", "hash"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/common/crypto/src/keys.ts":{"bytes":7367,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"tiny-invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}]},"packages/common/crypto/src/signer.ts":{"bytes":733,"imports":[]},"packages/common/crypto/src/subtle.ts":{"bytes":769,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}]},"packages/common/crypto/src/validator.ts":{"bytes":1468,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}]},"packages/common/crypto/src/verify.ts":{"bytes":2437,"imports":[{"path":"packages/common/crypto/src/subtle.ts","kind":"import-statement","original":"./subtle"}]},"packages/common/crypto/src/index.ts":{"bytes":783,"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"}]}},"outputs":{"packages/common/crypto/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6171},"packages/common/crypto/dist/lib/node/index.cjs":{"imports":[{"path":"hypercore-crypto","kind":"require-call","external":true},{"path":"tiny-invariant","kind":"require-call","external":true},{"path":"@dxos/keys","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"hypercore-crypto","kind":"require-call","external":true},{"path":"@dxos/keys","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/common/crypto/src/index.ts","inputs":{"packages/common/crypto/src/index.ts":{"bytesInOutput":517},"packages/common/crypto/src/keys.ts":{"bytesInOutput":1673},"packages/common/crypto/src/subtle.ts":{"bytesInOutput":98},"packages/common/crypto/src/validator.ts":{"bytesInOutput":272},"packages/common/crypto/src/verify.ts":{"bytesInOutput":391}},"bytes":4865}}}
1
+ {"inputs":{"packages/common/crypto/src/keys.ts":{"bytes":8564,"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}]},"packages/common/crypto/src/signer.ts":{"bytes":743,"imports":[]},"packages/common/crypto/src/subtle.ts":{"bytes":779,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}]},"packages/common/crypto/src/validator.ts":{"bytes":1478,"imports":[{"path":"hypercore-crypto","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true}]},"packages/common/crypto/src/verify.ts":{"bytes":2447,"imports":[{"path":"packages/common/crypto/src/subtle.ts","kind":"import-statement","original":"./subtle"}]},"packages/common/crypto/src/index.ts":{"bytes":793,"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"}]}},"outputs":{"packages/common/crypto/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6219},"packages/common/crypto/dist/lib/node/index.cjs":{"imports":[{"path":"hypercore-crypto","kind":"require-call","external":true},{"path":"@dxos/invariant","kind":"require-call","external":true},{"path":"@dxos/keys","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"hypercore-crypto","kind":"require-call","external":true},{"path":"@dxos/keys","kind":"require-call","external":true}],"exports":[],"entryPoint":"packages/common/crypto/src/index.ts","inputs":{"packages/common/crypto/src/index.ts":{"bytesInOutput":517},"packages/common/crypto/src/keys.ts":{"bytesInOutput":2625},"packages/common/crypto/src/subtle.ts":{"bytesInOutput":98},"packages/common/crypto/src/validator.ts":{"bytesInOutput":272},"packages/common/crypto/src/verify.ts":{"bytesInOutput":391}},"bytes":5817}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/crypto",
3
- "version": "0.1.55",
3
+ "version": "0.1.56-main.09ca29d",
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
- "tiny-invariant": "^1.3.1",
22
- "@dxos/keys": "0.1.55",
23
- "@dxos/node-std": "0.1.55"
21
+ "@dxos/invariant": "0.1.56-main.09ca29d",
22
+ "@dxos/keys": "0.1.56-main.09ca29d",
23
+ "@dxos/node-std": "0.1.56-main.09ca29d"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/crypto-js": "~4.0.2",
package/src/keys.ts CHANGED
@@ -3,8 +3,8 @@
3
3
  //
4
4
 
5
5
  import crypto from 'hypercore-crypto';
6
- import invariant from 'tiny-invariant';
7
6
 
7
+ import { invariant } from '@dxos/invariant';
8
8
  import { KeyPair, PublicKey, PublicKeyLike, PUBLIC_KEY_LENGTH, SECRET_KEY_LENGTH } from '@dxos/keys';
9
9
 
10
10
  /**