@atproto/crypto 0.3.0 → 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.
Files changed (91) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/LICENSE.txt +1 -1
  3. package/dist/const.d.ts +1 -0
  4. package/dist/const.d.ts.map +1 -0
  5. package/dist/const.js +10 -0
  6. package/dist/const.js.map +1 -0
  7. package/dist/did.d.ts +2 -1
  8. package/dist/did.d.ts.map +1 -0
  9. package/dist/did.js +68 -0
  10. package/dist/did.js.map +1 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +27 -3351
  14. package/dist/index.js.map +1 -7
  15. package/dist/multibase.d.ts +1 -0
  16. package/dist/multibase.d.ts.map +1 -0
  17. package/dist/multibase.js +76 -0
  18. package/dist/multibase.js.map +1 -0
  19. package/dist/p256/encoding.d.ts +1 -0
  20. package/dist/p256/encoding.d.ts.map +1 -0
  21. package/dist/p256/encoding.js +18 -0
  22. package/dist/p256/encoding.js.map +1 -0
  23. package/dist/p256/keypair.d.ts +3 -2
  24. package/dist/p256/keypair.d.ts.map +1 -0
  25. package/dist/p256/keypair.js +94 -0
  26. package/dist/p256/keypair.js.map +1 -0
  27. package/dist/p256/operations.d.ts +1 -0
  28. package/dist/p256/operations.d.ts.map +1 -0
  29. package/dist/p256/operations.js +41 -0
  30. package/dist/p256/operations.js.map +1 -0
  31. package/dist/p256/plugin.d.ts +1 -0
  32. package/dist/p256/plugin.d.ts.map +1 -0
  33. package/dist/p256/plugin.js +15 -0
  34. package/dist/p256/plugin.js.map +1 -0
  35. package/dist/plugins.d.ts +1 -0
  36. package/dist/plugins.d.ts.map +1 -0
  37. package/dist/plugins.js +11 -0
  38. package/dist/plugins.js.map +1 -0
  39. package/dist/random.d.ts +1 -0
  40. package/dist/random.d.ts.map +1 -0
  41. package/dist/random.js +44 -0
  42. package/dist/random.js.map +1 -0
  43. package/dist/secp256k1/encoding.d.ts +1 -0
  44. package/dist/secp256k1/encoding.d.ts.map +1 -0
  45. package/dist/secp256k1/encoding.js +18 -0
  46. package/dist/secp256k1/encoding.js.map +1 -0
  47. package/dist/secp256k1/keypair.d.ts +3 -2
  48. package/dist/secp256k1/keypair.d.ts.map +1 -0
  49. package/dist/secp256k1/keypair.js +94 -0
  50. package/dist/secp256k1/keypair.js.map +1 -0
  51. package/dist/secp256k1/operations.d.ts +1 -0
  52. package/dist/secp256k1/operations.d.ts.map +1 -0
  53. package/dist/secp256k1/operations.js +64 -0
  54. package/dist/secp256k1/operations.js.map +1 -0
  55. package/dist/secp256k1/plugin.d.ts +1 -0
  56. package/dist/secp256k1/plugin.d.ts.map +1 -0
  57. package/dist/secp256k1/plugin.js +15 -0
  58. package/dist/secp256k1/plugin.js.map +1 -0
  59. package/dist/sha.d.ts +2 -0
  60. package/dist/sha.d.ts.map +1 -0
  61. package/dist/sha.js +40 -0
  62. package/dist/sha.js.map +1 -0
  63. package/dist/types.d.ts +8 -2
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +3 -0
  66. package/dist/types.js.map +1 -0
  67. package/dist/utils.d.ts +4 -0
  68. package/dist/utils.d.ts.map +1 -0
  69. package/dist/utils.js +47 -0
  70. package/dist/utils.js.map +1 -0
  71. package/dist/verify.d.ts +1 -0
  72. package/dist/verify.d.ts.map +1 -0
  73. package/dist/verify.js +48 -0
  74. package/dist/verify.js.map +1 -0
  75. package/jest.config.js +3 -3
  76. package/package.json +8 -6
  77. package/src/did.ts +13 -35
  78. package/src/p256/keypair.ts +8 -6
  79. package/src/p256/operations.ts +8 -6
  80. package/src/p256/plugin.ts +7 -2
  81. package/src/secp256k1/keypair.ts +9 -7
  82. package/src/secp256k1/operations.ts +6 -4
  83. package/src/secp256k1/plugin.ts +7 -2
  84. package/src/sha.ts +7 -0
  85. package/src/types.ts +7 -0
  86. package/src/utils.ts +23 -0
  87. package/tests/signatures.test.ts +2 -1
  88. package/tsconfig.build.json +6 -2
  89. package/tsconfig.json +5 -7
  90. package/tsconfig.tests.json +7 -0
  91. package/build.js +0 -14
package/dist/index.js.map CHANGED
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts", "../src/const.ts", "../../../node_modules/.pnpm/uint8arrays@3.0.0/node_modules/uint8arrays/esm/src/concat.js", "../../../node_modules/.pnpm/uint8arrays@3.0.0/node_modules/uint8arrays/esm/src/equals.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/identity.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/vendor/base-x.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bytes.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base2.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base8.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base10.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base16.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base32.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base36.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base58.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base64.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/bases/base256emoji.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/hashes/sha2.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/vendor/varint.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/varint.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/hashes/digest.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/hashes/hasher.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/hashes/identity.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/codecs/json.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/cid.js", "../../../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/esm/src/basics.js", "../../../node_modules/.pnpm/uint8arrays@3.0.0/node_modules/uint8arrays/esm/src/util/bases.js", "../../../node_modules/.pnpm/uint8arrays@3.0.0/node_modules/uint8arrays/esm/src/from-string.js", "../../../node_modules/.pnpm/uint8arrays@3.0.0/node_modules/uint8arrays/esm/src/to-string.js", "../../../node_modules/.pnpm/@noble+hashes@1.3.1/node_modules/@noble/hashes/src/_assert.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.1/node_modules/@noble/hashes/src/cryptoNode.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.1/node_modules/@noble/hashes/src/utils.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.1/node_modules/@noble/hashes/src/hmac.ts", "../../../node_modules/.pnpm/@noble+curves@1.1.0/node_modules/@noble/curves/src/abstract/utils.ts", "../../../node_modules/.pnpm/@noble+curves@1.1.0/node_modules/@noble/curves/src/abstract/modular.ts", "../../../node_modules/.pnpm/@noble+curves@1.1.0/node_modules/@noble/curves/src/abstract/curve.ts", "../../../node_modules/.pnpm/@noble+curves@1.1.0/node_modules/@noble/curves/src/abstract/weierstrass.ts", "../../../node_modules/.pnpm/@noble+curves@1.1.0/node_modules/@noble/curves/src/_shortw_utils.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.1/node_modules/@noble/hashes/src/_sha2.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.1/node_modules/@noble/hashes/src/sha256.ts", "../../../node_modules/.pnpm/@noble+curves@1.1.0/node_modules/@noble/curves/src/p256.ts", "../src/p256/encoding.ts", "../../../node_modules/.pnpm/@noble+curves@1.1.0/node_modules/@noble/curves/src/secp256k1.ts", "../src/secp256k1/encoding.ts", "../src/p256/operations.ts", "../src/p256/plugin.ts", "../src/secp256k1/operations.ts", "../src/secp256k1/plugin.ts", "../src/plugins.ts", "../src/did.ts", "../src/multibase.ts", "../src/sha.ts", "../src/random.ts", "../src/verify.ts", "../src/p256/keypair.ts", "../src/secp256k1/keypair.ts"],
4
- "sourcesContent": ["export * from './const'\nexport * from './did'\nexport * from './multibase'\nexport * from './random'\nexport * from './sha'\nexport * from './types'\nexport * from './verify'\n\nexport * from './p256/keypair'\nexport * from './p256/plugin'\n\nexport * from './secp256k1/keypair'\nexport * from './secp256k1/plugin'\n", "export const P256_DID_PREFIX = new Uint8Array([0x80, 0x24])\nexport const SECP256K1_DID_PREFIX = new Uint8Array([0xe7, 0x01])\nexport const BASE58_MULTIBASE_PREFIX = 'z'\nexport const DID_KEY_PREFIX = 'did:key:'\n\nexport const P256_JWT_ALG = 'ES256'\nexport const SECP256K1_JWT_ALG = 'ES256K'\n", "export function concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = new Uint8Array(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return output;\n}", "export function equals(a, b) {\n if (a === b) {\n return true;\n }\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}", "import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});", "function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;", "const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};", "import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};", "import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});", "import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});", "import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});", "import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});", "import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});", "import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});", "import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});", "import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});", "import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});", "import crypto from 'crypto';\nimport { from } from './hasher.js';\nimport { coerce } from '../bytes.js';\nexport const sha256 = from({\n name: 'sha2-256',\n code: 18,\n encode: input => coerce(crypto.createHash('sha256').update(input).digest())\n});\nexport const sha512 = from({\n name: 'sha2-512',\n code: 19,\n encode: input => coerce(crypto.createHash('sha512').update(input).digest())\n});", "var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;", "import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset);\n return [\n code,\n varint.decode.bytes\n ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset);\n return target;\n};\nexport const encodingLength = int => {\n return varint.encodingLength(int);\n};", "import {\n coerce,\n equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n const bytes = coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes);\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n const digest = bytes.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n }\n};\nexport class Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}", "import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}", "import { coerce } from '../bytes.js';\nimport * as Digest from './digest.js';\nconst code = 0;\nconst name = 'identity';\nconst encode = coerce;\nconst digest = input => Digest.create(code, encode(input));\nexport const identity = {\n code,\n name,\n encode,\n digest\n};", "const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));", "import * as varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest} = this.multihash;\n const multihash = Digest.create(code, digest);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest = Digest.decode(multihash);\n return CID.create(version, code, digest);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes) {\n const specs = CID.inspectBytes(bytes);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n return [\n cid,\n bytes.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(`${ base58btc.prefix }${ source }`)\n ];\n }\n case base58btc.prefix: {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.prefix: {\n const decoder = base || base32;\n return [\n base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;", "import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};", "import { bases } from 'multiformats/basics';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;", "import bases from './util/bases.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}", "import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.encoder.encode(array).substring(1);\n}", null, null, null, null, null, null, null, null, null, null, null, null, "import { p256 } from '@noble/curves/p256'\n\nexport const compressPubkey = (pubkeyBytes: Uint8Array): Uint8Array => {\n const point = p256.ProjectivePoint.fromHex(pubkeyBytes)\n return point.toRawBytes(true)\n}\n\nexport const decompressPubkey = (compressed: Uint8Array): Uint8Array => {\n if (compressed.length !== 33) {\n throw new Error('Expected 33 byte compress pubkey')\n }\n const point = p256.ProjectivePoint.fromHex(compressed)\n return point.toRawBytes(false)\n}\n", null, "import { secp256k1 as k256 } from '@noble/curves/secp256k1'\n\nexport const compressPubkey = (pubkeyBytes: Uint8Array): Uint8Array => {\n const point = k256.ProjectivePoint.fromHex(pubkeyBytes)\n return point.toRawBytes(true)\n}\n\nexport const decompressPubkey = (compressed: Uint8Array): Uint8Array => {\n if (compressed.length !== 33) {\n throw new Error('Expected 33 byte compress pubkey')\n }\n const point = k256.ProjectivePoint.fromHex(compressed)\n return point.toRawBytes(false)\n}\n", "import { p256 } from '@noble/curves/p256'\nimport { sha256 } from '@noble/hashes/sha256'\nimport * as ui8 from 'uint8arrays'\nimport { P256_JWT_ALG } from '../const'\nimport { parseDidKey } from '../did'\nimport { VerifyOptions } from '../types'\n\nexport const verifyDidSig = async (\n did: string,\n data: Uint8Array,\n sig: Uint8Array,\n opts?: VerifyOptions,\n): Promise<boolean> => {\n const { jwtAlg, keyBytes } = parseDidKey(did)\n if (jwtAlg !== P256_JWT_ALG) {\n throw new Error(`Not a P-256 did:key: ${did}`)\n }\n return verifySig(keyBytes, data, sig, opts)\n}\n\nexport const verifySig = async (\n publicKey: Uint8Array,\n data: Uint8Array,\n sig: Uint8Array,\n opts?: VerifyOptions,\n): Promise<boolean> => {\n const allowMalleable = opts?.allowMalleableSig ?? false\n const msgHash = await sha256(data)\n // parse as compact sig to prevent signature malleability\n // library supports sigs in 2 different formats: https://github.com/paulmillr/noble-curves/issues/99\n if (!allowMalleable && !isCompactFormat(sig)) {\n return false\n }\n return p256.verify(sig, msgHash, publicKey, {\n lowS: !allowMalleable,\n })\n}\n\nexport const isCompactFormat = (sig: Uint8Array) => {\n try {\n const parsed = p256.Signature.fromCompact(sig)\n return ui8.equals(parsed.toCompactRawBytes(), sig)\n } catch {\n return false\n }\n}\n", "import * as operations from './operations'\nimport { DidKeyPlugin } from '../types'\nimport { P256_DID_PREFIX, P256_JWT_ALG } from '../const'\n\nexport const p256Plugin: DidKeyPlugin = {\n prefix: P256_DID_PREFIX,\n jwtAlg: P256_JWT_ALG,\n verifySignature: operations.verifyDidSig,\n}\n\nexport default p256Plugin\n", "import { secp256k1 as k256 } from '@noble/curves/secp256k1'\nimport { sha256 } from '@noble/hashes/sha256'\nimport * as ui8 from 'uint8arrays'\nimport { SECP256K1_JWT_ALG } from '../const'\nimport { parseDidKey } from '../did'\nimport { VerifyOptions } from '../types'\n\nexport const verifyDidSig = async (\n did: string,\n data: Uint8Array,\n sig: Uint8Array,\n opts?: VerifyOptions,\n): Promise<boolean> => {\n const { jwtAlg, keyBytes } = parseDidKey(did)\n if (jwtAlg !== SECP256K1_JWT_ALG) {\n throw new Error(`Not a secp256k1 did:key: ${did}`)\n }\n return verifySig(keyBytes, data, sig, opts)\n}\n\nexport const verifySig = async (\n publicKey: Uint8Array,\n data: Uint8Array,\n sig: Uint8Array,\n opts?: VerifyOptions,\n): Promise<boolean> => {\n const allowMalleable = opts?.allowMalleableSig ?? false\n const msgHash = await sha256(data)\n // parse as compact sig to prevent signature malleability\n // library supports sigs in 2 different formats: https://github.com/paulmillr/noble-curves/issues/99\n if (!allowMalleable && !isCompactFormat(sig)) {\n return false\n }\n return k256.verify(sig, msgHash, publicKey, {\n lowS: !allowMalleable,\n })\n}\n\nexport const isCompactFormat = (sig: Uint8Array) => {\n try {\n const parsed = k256.Signature.fromCompact(sig)\n return ui8.equals(parsed.toCompactRawBytes(), sig)\n } catch {\n return false\n }\n}\n", "import * as operations from './operations'\nimport { DidKeyPlugin } from '../types'\nimport { SECP256K1_DID_PREFIX, SECP256K1_JWT_ALG } from '../const'\n\nexport const secp256k1Plugin: DidKeyPlugin = {\n prefix: SECP256K1_DID_PREFIX,\n jwtAlg: SECP256K1_JWT_ALG,\n verifySignature: operations.verifyDidSig,\n}\n\nexport default secp256k1Plugin\n", "import p256Plugin from './p256/plugin'\nimport secp256k1Plugin from './secp256k1/plugin'\n\nexport const plugins = [p256Plugin, secp256k1Plugin]\n\nexport default plugins\n", "import * as uint8arrays from 'uint8arrays'\nimport * as p256 from './p256/encoding'\nimport * as secp from './secp256k1/encoding'\nimport plugins from './plugins'\nimport {\n BASE58_MULTIBASE_PREFIX,\n DID_KEY_PREFIX,\n P256_JWT_ALG,\n SECP256K1_JWT_ALG,\n} from './const'\n\nexport type ParsedMultikey = {\n jwtAlg: string\n keyBytes: Uint8Array\n}\n\nexport const parseMultikey = (multikey: string): ParsedMultikey => {\n if (!multikey.startsWith(BASE58_MULTIBASE_PREFIX)) {\n throw new Error(`Incorrect prefix for multikey: ${multikey}`)\n }\n const prefixedBytes = uint8arrays.fromString(\n multikey.slice(BASE58_MULTIBASE_PREFIX.length),\n 'base58btc',\n )\n const plugin = plugins.find((p) => hasPrefix(prefixedBytes, p.prefix))\n if (!plugin) {\n throw new Error('Unsupported key type')\n }\n let keyBytes = prefixedBytes.slice(plugin.prefix.length)\n if (plugin.jwtAlg === P256_JWT_ALG) {\n keyBytes = p256.decompressPubkey(keyBytes)\n } else if (plugin.jwtAlg === SECP256K1_JWT_ALG) {\n keyBytes = secp.decompressPubkey(keyBytes)\n }\n return {\n jwtAlg: plugin.jwtAlg,\n keyBytes,\n }\n}\n\nexport const formatMultikey = (\n jwtAlg: string,\n keyBytes: Uint8Array,\n): string => {\n const plugin = plugins.find((p) => p.jwtAlg === jwtAlg)\n if (!plugin) {\n throw new Error('Unsupported key type')\n }\n if (jwtAlg === P256_JWT_ALG) {\n keyBytes = p256.compressPubkey(keyBytes)\n } else if (jwtAlg === SECP256K1_JWT_ALG) {\n keyBytes = secp.compressPubkey(keyBytes)\n }\n const prefixedBytes = uint8arrays.concat([plugin.prefix, keyBytes])\n return (\n BASE58_MULTIBASE_PREFIX + uint8arrays.toString(prefixedBytes, 'base58btc')\n )\n}\n\nexport const parseDidKey = (did: string): ParsedMultikey => {\n if (!did.startsWith(DID_KEY_PREFIX)) {\n throw new Error(`Incorrect prefix for did:key: ${did}`)\n }\n return parseMultikey(did.slice(DID_KEY_PREFIX.length))\n}\n\nexport const formatDidKey = (jwtAlg: string, keyBytes: Uint8Array): string => {\n return DID_KEY_PREFIX + formatMultikey(jwtAlg, keyBytes)\n}\n\nconst hasPrefix = (bytes: Uint8Array, prefix: Uint8Array): boolean => {\n return uint8arrays.equals(prefix, bytes.subarray(0, prefix.byteLength))\n}\n", "import * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/to-string'\n\nexport const multibaseToBytes = (mb: string): Uint8Array => {\n const base = mb[0]\n const key = mb.slice(1)\n switch (base) {\n case 'f':\n return uint8arrays.fromString(key, 'base16')\n case 'F':\n return uint8arrays.fromString(key, 'base16upper')\n case 'b':\n return uint8arrays.fromString(key, 'base32')\n case 'B':\n return uint8arrays.fromString(key, 'base32upper')\n case 'z':\n return uint8arrays.fromString(key, 'base58btc')\n case 'm':\n return uint8arrays.fromString(key, 'base64')\n case 'u':\n return uint8arrays.fromString(key, 'base64url')\n case 'U':\n return uint8arrays.fromString(key, 'base64urlpad')\n default:\n throw new Error(`Unsupported multibase: :${mb}`)\n }\n}\n\nexport const bytesToMultibase = (\n mb: Uint8Array,\n encoding: SupportedEncodings,\n): string => {\n switch (encoding) {\n case 'base16':\n return 'f' + uint8arrays.toString(mb, encoding)\n case 'base16upper':\n return 'F' + uint8arrays.toString(mb, encoding)\n case 'base32':\n return 'b' + uint8arrays.toString(mb, encoding)\n case 'base32upper':\n return 'B' + uint8arrays.toString(mb, encoding)\n case 'base58btc':\n return 'z' + uint8arrays.toString(mb, encoding)\n case 'base64':\n return 'm' + uint8arrays.toString(mb, encoding)\n case 'base64url':\n return 'u' + uint8arrays.toString(mb, encoding)\n case 'base64urlpad':\n return 'U' + uint8arrays.toString(mb, encoding)\n default:\n throw new Error(`Unsupported multibase: :${mb}`)\n }\n}\n", "import * as noble from '@noble/hashes/sha256'\nimport * as uint8arrays from 'uint8arrays'\n\n// takes either bytes of utf8 input\nexport const sha256 = async (\n input: Uint8Array | string,\n): Promise<Uint8Array> => {\n const bytes =\n typeof input === 'string' ? uint8arrays.fromString(input, 'utf8') : input\n return noble.sha256(bytes)\n}\n", "import * as noble from '@noble/hashes/utils'\nimport * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/to-string'\nimport { sha256 } from './sha'\n\nexport const randomBytes = noble.randomBytes\n\nexport const randomStr = (\n byteLength: number,\n encoding: SupportedEncodings,\n): string => {\n const bytes = randomBytes(byteLength)\n return uint8arrays.toString(bytes, encoding)\n}\n\nexport const randomIntFromSeed = async (\n seed: string,\n high: number,\n low = 0,\n): Promise<number> => {\n const hash = await sha256(seed)\n const number = Buffer.from(hash).readUintBE(0, 6)\n const range = high - low\n const normalized = number % range\n return normalized + low\n}\n", "import * as uint8arrays from 'uint8arrays'\nimport { parseDidKey } from './did'\nimport plugins from './plugins'\nimport { VerifyOptions } from './types'\n\nexport const verifySignature = (\n didKey: string,\n data: Uint8Array,\n sig: Uint8Array,\n opts?: VerifyOptions,\n): Promise<boolean> => {\n const parsed = parseDidKey(didKey)\n const plugin = plugins.find((p) => p.jwtAlg === parsed.jwtAlg)\n if (!plugin) {\n throw new Error(`Unsupported signature alg: ${parsed.jwtAlg}`)\n }\n return plugin.verifySignature(didKey, data, sig, opts)\n}\n\nexport const verifySignatureUtf8 = async (\n didKey: string,\n data: string,\n sig: string,\n opts?: VerifyOptions,\n): Promise<boolean> => {\n const dataBytes = uint8arrays.fromString(data, 'utf8')\n const sigBytes = uint8arrays.fromString(sig, 'base64url')\n return verifySignature(didKey, dataBytes, sigBytes, opts)\n}\n", "import { p256 } from '@noble/curves/p256'\nimport { sha256 } from '@noble/hashes/sha256'\nimport * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/util/bases'\nimport * as did from '../did'\nimport { P256_JWT_ALG } from '../const'\nimport { Keypair } from '../types'\n\nexport type P256KeypairOptions = {\n exportable: boolean\n}\n\nexport class P256Keypair implements Keypair {\n jwtAlg = P256_JWT_ALG\n private publicKey: Uint8Array\n\n constructor(private privateKey: Uint8Array, private exportable: boolean) {\n this.publicKey = p256.getPublicKey(privateKey)\n }\n\n static async create(\n opts?: Partial<P256KeypairOptions>,\n ): Promise<P256Keypair> {\n const { exportable = false } = opts || {}\n const privKey = p256.utils.randomPrivateKey()\n return new P256Keypair(privKey, exportable)\n }\n\n static async import(\n privKey: Uint8Array | string,\n opts?: Partial<P256KeypairOptions>,\n ): Promise<P256Keypair> {\n const { exportable = false } = opts || {}\n const privKeyBytes =\n typeof privKey === 'string'\n ? uint8arrays.fromString(privKey, 'hex')\n : privKey\n return new P256Keypair(privKeyBytes, exportable)\n }\n\n publicKeyBytes(): Uint8Array {\n return this.publicKey\n }\n\n publicKeyStr(encoding: SupportedEncodings = 'base64pad'): string {\n return uint8arrays.toString(this.publicKey, encoding)\n }\n\n did(): string {\n return did.formatDidKey(this.jwtAlg, this.publicKey)\n }\n\n async sign(msg: Uint8Array): Promise<Uint8Array> {\n const msgHash = await sha256(msg)\n // return raw 64 byte sig not DER-encoded\n const sig = await p256.sign(msgHash, this.privateKey, { lowS: true })\n return sig.toCompactRawBytes()\n }\n\n async export(): Promise<Uint8Array> {\n if (!this.exportable) {\n throw new Error('Private key is not exportable')\n }\n return this.privateKey\n }\n}\n\nexport default P256Keypair\n", "import { secp256k1 as k256 } from '@noble/curves/secp256k1'\nimport { sha256 } from '@noble/hashes/sha256'\nimport * as uint8arrays from 'uint8arrays'\nimport { SupportedEncodings } from 'uint8arrays/util/bases'\nimport * as did from '../did'\nimport { SECP256K1_JWT_ALG } from '../const'\nimport { Keypair } from '../types'\n\nexport type Secp256k1KeypairOptions = {\n exportable: boolean\n}\n\nexport class Secp256k1Keypair implements Keypair {\n jwtAlg = SECP256K1_JWT_ALG\n private publicKey: Uint8Array\n\n constructor(private privateKey: Uint8Array, private exportable: boolean) {\n this.publicKey = k256.getPublicKey(privateKey)\n }\n\n static async create(\n opts?: Partial<Secp256k1KeypairOptions>,\n ): Promise<Secp256k1Keypair> {\n const { exportable = false } = opts || {}\n const privKey = k256.utils.randomPrivateKey()\n return new Secp256k1Keypair(privKey, exportable)\n }\n\n static async import(\n privKey: Uint8Array | string,\n opts?: Partial<Secp256k1KeypairOptions>,\n ): Promise<Secp256k1Keypair> {\n const { exportable = false } = opts || {}\n const privKeyBytes =\n typeof privKey === 'string'\n ? uint8arrays.fromString(privKey, 'hex')\n : privKey\n return new Secp256k1Keypair(privKeyBytes, exportable)\n }\n\n publicKeyBytes(): Uint8Array {\n return this.publicKey\n }\n\n publicKeyStr(encoding: SupportedEncodings = 'base64pad'): string {\n return uint8arrays.toString(this.publicKey, encoding)\n }\n\n did(): string {\n return did.formatDidKey(this.jwtAlg, this.publicKey)\n }\n\n async sign(msg: Uint8Array): Promise<Uint8Array> {\n const msgHash = await sha256(msg)\n // return raw 64 byte sig not DER-encoded\n const sig = await k256.sign(msgHash, this.privateKey, { lowS: true })\n return sig.toCompactRawBytes()\n }\n\n async export(): Promise<Uint8Array> {\n if (!this.exportable) {\n throw new Error('Private key is not exportable')\n }\n return this.privateKey\n }\n}\n\nexport default Secp256k1Keypair\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,wCAAqB;AACrB,8CAA2B;AAC3B,2CAAwB;AACxB,wCAAqB;AACrB,0CAAuB;AACvB,2CAAwB;AAExB,iDAA8B;AAC9B,gDAA6B;AAE7B,sDAAmC;AACnC,qDAAkC"}
@@ -1,3 +1,4 @@
1
1
  import { SupportedEncodings } from 'uint8arrays/to-string';
2
2
  export declare const multibaseToBytes: (mb: string) => Uint8Array;
3
3
  export declare const bytesToMultibase: (mb: Uint8Array, encoding: SupportedEncodings) => string;
4
+ //# sourceMappingURL=multibase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multibase.d.ts","sourceRoot":"","sources":["../src/multibase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,eAAO,MAAM,gBAAgB,OAAQ,MAAM,KAAG,UAuB7C,CAAA;AAED,eAAO,MAAM,gBAAgB,OACvB,UAAU,YACJ,kBAAkB,KAC3B,MAqBF,CAAA"}
@@ -0,0 +1,76 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.bytesToMultibase = exports.multibaseToBytes = void 0;
27
+ const uint8arrays = __importStar(require("uint8arrays"));
28
+ const multibaseToBytes = (mb) => {
29
+ const base = mb[0];
30
+ const key = mb.slice(1);
31
+ switch (base) {
32
+ case 'f':
33
+ return uint8arrays.fromString(key, 'base16');
34
+ case 'F':
35
+ return uint8arrays.fromString(key, 'base16upper');
36
+ case 'b':
37
+ return uint8arrays.fromString(key, 'base32');
38
+ case 'B':
39
+ return uint8arrays.fromString(key, 'base32upper');
40
+ case 'z':
41
+ return uint8arrays.fromString(key, 'base58btc');
42
+ case 'm':
43
+ return uint8arrays.fromString(key, 'base64');
44
+ case 'u':
45
+ return uint8arrays.fromString(key, 'base64url');
46
+ case 'U':
47
+ return uint8arrays.fromString(key, 'base64urlpad');
48
+ default:
49
+ throw new Error(`Unsupported multibase: :${mb}`);
50
+ }
51
+ };
52
+ exports.multibaseToBytes = multibaseToBytes;
53
+ const bytesToMultibase = (mb, encoding) => {
54
+ switch (encoding) {
55
+ case 'base16':
56
+ return 'f' + uint8arrays.toString(mb, encoding);
57
+ case 'base16upper':
58
+ return 'F' + uint8arrays.toString(mb, encoding);
59
+ case 'base32':
60
+ return 'b' + uint8arrays.toString(mb, encoding);
61
+ case 'base32upper':
62
+ return 'B' + uint8arrays.toString(mb, encoding);
63
+ case 'base58btc':
64
+ return 'z' + uint8arrays.toString(mb, encoding);
65
+ case 'base64':
66
+ return 'm' + uint8arrays.toString(mb, encoding);
67
+ case 'base64url':
68
+ return 'u' + uint8arrays.toString(mb, encoding);
69
+ case 'base64urlpad':
70
+ return 'U' + uint8arrays.toString(mb, encoding);
71
+ default:
72
+ throw new Error(`Unsupported multibase: :${mb}`);
73
+ }
74
+ };
75
+ exports.bytesToMultibase = bytesToMultibase;
76
+ //# sourceMappingURL=multibase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multibase.js","sourceRoot":"","sources":["../src/multibase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA0C;AAGnC,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAc,EAAE;IACzD,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAClB,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACvB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC9C,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACnD,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC9C,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QACnD,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QACjD,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC9C,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QACjD,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QACpD;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAA;IACpD,CAAC;AACH,CAAC,CAAA;AAvBY,QAAA,gBAAgB,oBAuB5B;AAEM,MAAM,gBAAgB,GAAG,CAC9B,EAAc,EACd,QAA4B,EACpB,EAAE;IACV,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD,KAAK,aAAa;YAChB,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD,KAAK,QAAQ;YACX,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD,KAAK,aAAa;YAChB,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD,KAAK,WAAW;YACd,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD,KAAK,QAAQ;YACX,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD,KAAK,WAAW;YACd,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD,KAAK,cAAc;YACjB,OAAO,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAA;IACpD,CAAC;AACH,CAAC,CAAA;AAxBY,QAAA,gBAAgB,oBAwB5B"}
@@ -1,2 +1,3 @@
1
1
  export declare const compressPubkey: (pubkeyBytes: Uint8Array) => Uint8Array;
2
2
  export declare const decompressPubkey: (compressed: Uint8Array) => Uint8Array;
3
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/p256/encoding.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,gBAAiB,UAAU,KAAG,UAGxD,CAAA;AAED,eAAO,MAAM,gBAAgB,eAAgB,UAAU,KAAG,UAMzD,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decompressPubkey = exports.compressPubkey = void 0;
4
+ const p256_1 = require("@noble/curves/p256");
5
+ const compressPubkey = (pubkeyBytes) => {
6
+ const point = p256_1.p256.ProjectivePoint.fromHex(pubkeyBytes);
7
+ return point.toRawBytes(true);
8
+ };
9
+ exports.compressPubkey = compressPubkey;
10
+ const decompressPubkey = (compressed) => {
11
+ if (compressed.length !== 33) {
12
+ throw new Error('Expected 33 byte compress pubkey');
13
+ }
14
+ const point = p256_1.p256.ProjectivePoint.fromHex(compressed);
15
+ return point.toRawBytes(false);
16
+ };
17
+ exports.decompressPubkey = decompressPubkey;
18
+ //# sourceMappingURL=encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/p256/encoding.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAElC,MAAM,cAAc,GAAG,CAAC,WAAuB,EAAc,EAAE;IACpE,MAAM,KAAK,GAAG,WAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACvD,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC,CAAA;AAHY,QAAA,cAAc,kBAG1B;AAEM,MAAM,gBAAgB,GAAG,CAAC,UAAsB,EAAc,EAAE;IACrE,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IACD,MAAM,KAAK,GAAG,WAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACtD,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B"}
@@ -1,6 +1,6 @@
1
- import { SupportedEncodings } from 'uint8arrays/util/bases';
1
+ import { SupportedEncodings } from 'uint8arrays/to-string';
2
2
  import { Keypair } from '../types';
3
- export declare type P256KeypairOptions = {
3
+ export type P256KeypairOptions = {
4
4
  exportable: boolean;
5
5
  };
6
6
  export declare class P256Keypair implements Keypair {
@@ -18,3 +18,4 @@ export declare class P256Keypair implements Keypair {
18
18
  export(): Promise<Uint8Array>;
19
19
  }
20
20
  export default P256Keypair;
21
+ //# sourceMappingURL=keypair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keypair.d.ts","sourceRoot":"","sources":["../../src/p256/keypair.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAQ1D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,qBAAa,WAAY,YAAW,OAAO;IAI7B,OAAO,CAAC,UAAU;IAAc,OAAO,CAAC,UAAU;IAH9D,MAAM,SAAe;IACrB,OAAO,CAAC,SAAS,CAAY;gBAET,UAAU,EAAE,UAAU,EAAU,UAAU,EAAE,OAAO;WAI1D,MAAM,CACjB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;WAMV,MAAM,CACjB,OAAO,EAAE,UAAU,GAAG,MAAM,EAC5B,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC;IAOvB,cAAc,IAAI,UAAU;IAI5B,YAAY,CAAC,QAAQ,GAAE,kBAAgC,GAAG,MAAM;IAIhE,GAAG,IAAI,MAAM;IAIP,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAO1C,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;CAMpC;AAED,eAAe,WAAW,CAAA"}
@@ -0,0 +1,94 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.P256Keypair = void 0;
27
+ const p256_1 = require("@noble/curves/p256");
28
+ const sha256_1 = require("@noble/hashes/sha256");
29
+ const uint8arrays_1 = require("uint8arrays");
30
+ const did = __importStar(require("../did"));
31
+ const const_1 = require("../const");
32
+ class P256Keypair {
33
+ constructor(privateKey, exportable) {
34
+ Object.defineProperty(this, "privateKey", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: privateKey
39
+ });
40
+ Object.defineProperty(this, "exportable", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: exportable
45
+ });
46
+ Object.defineProperty(this, "jwtAlg", {
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true,
50
+ value: const_1.P256_JWT_ALG
51
+ });
52
+ Object.defineProperty(this, "publicKey", {
53
+ enumerable: true,
54
+ configurable: true,
55
+ writable: true,
56
+ value: void 0
57
+ });
58
+ this.publicKey = p256_1.p256.getPublicKey(privateKey);
59
+ }
60
+ static async create(opts) {
61
+ const { exportable = false } = opts || {};
62
+ const privKey = p256_1.p256.utils.randomPrivateKey();
63
+ return new P256Keypair(privKey, exportable);
64
+ }
65
+ static async import(privKey, opts) {
66
+ const { exportable = false } = opts || {};
67
+ const privKeyBytes = typeof privKey === 'string' ? (0, uint8arrays_1.fromString)(privKey, 'hex') : privKey;
68
+ return new P256Keypair(privKeyBytes, exportable);
69
+ }
70
+ publicKeyBytes() {
71
+ return this.publicKey;
72
+ }
73
+ publicKeyStr(encoding = 'base64pad') {
74
+ return (0, uint8arrays_1.toString)(this.publicKey, encoding);
75
+ }
76
+ did() {
77
+ return did.formatDidKey(this.jwtAlg, this.publicKey);
78
+ }
79
+ async sign(msg) {
80
+ const msgHash = await (0, sha256_1.sha256)(msg);
81
+ // return raw 64 byte sig not DER-encoded
82
+ const sig = await p256_1.p256.sign(msgHash, this.privateKey, { lowS: true });
83
+ return sig.toCompactRawBytes();
84
+ }
85
+ async export() {
86
+ if (!this.exportable) {
87
+ throw new Error('Private key is not exportable');
88
+ }
89
+ return this.privateKey;
90
+ }
91
+ }
92
+ exports.P256Keypair = P256Keypair;
93
+ exports.default = P256Keypair;
94
+ //# sourceMappingURL=keypair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../src/p256/keypair.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAyC;AACzC,iDAA6C;AAE7C,6CAGoB;AAEpB,4CAA6B;AAC7B,oCAAuC;AAOvC,MAAa,WAAW;IAItB,YAAoB,UAAsB,EAAU,UAAmB;QAA3D;;;;mBAAQ,UAAU;WAAY;QAAE;;;;mBAAQ,UAAU;WAAS;QAHvE;;;;mBAAS,oBAAY;WAAA;QACb;;;;;WAAqB;QAG3B,IAAI,CAAC,SAAS,GAAG,WAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAkC;QAElC,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QACzC,MAAM,OAAO,GAAG,WAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAA;QAC7C,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAA4B,EAC5B,IAAkC;QAElC,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QACzC,MAAM,YAAY,GAChB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACvE,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,YAAY,CAAC,WAA+B,WAAW;QACrD,OAAO,IAAA,sBAAW,EAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED,GAAG;QACD,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAe;QACxB,MAAM,OAAO,GAAG,MAAM,IAAA,eAAM,EAAC,GAAG,CAAC,CAAA;QACjC,yCAAyC;QACzC,MAAM,GAAG,GAAG,MAAM,WAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACrE,OAAO,GAAG,CAAC,iBAAiB,EAAE,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;CACF;AAnDD,kCAmDC;AAED,kBAAe,WAAW,CAAA"}
@@ -2,3 +2,4 @@ import { VerifyOptions } from '../types';
2
2
  export declare const verifyDidSig: (did: string, data: Uint8Array, sig: Uint8Array, opts?: VerifyOptions) => Promise<boolean>;
3
3
  export declare const verifySig: (publicKey: Uint8Array, data: Uint8Array, sig: Uint8Array, opts?: VerifyOptions) => Promise<boolean>;
4
4
  export declare const isCompactFormat: (sig: Uint8Array) => boolean;
5
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/p256/operations.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,eAAO,MAAM,YAAY,QAClB,MAAM,QACL,UAAU,OACX,UAAU,SACR,aAAa,KACnB,QAAQ,OAAO,CAOjB,CAAA;AAED,eAAO,MAAM,SAAS,cACT,UAAU,QACf,UAAU,OACX,UAAU,SACR,aAAa,KACnB,QAAQ,OAAO,CAWjB,CAAA;AAED,eAAO,MAAM,eAAe,QAAS,UAAU,YAO9C,CAAA"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isCompactFormat = exports.verifySig = exports.verifyDidSig = void 0;
4
+ const p256_1 = require("@noble/curves/p256");
5
+ const sha256_1 = require("@noble/hashes/sha256");
6
+ const uint8arrays_1 = require("uint8arrays");
7
+ const const_1 = require("../const");
8
+ const utils_1 = require("../utils");
9
+ const verifyDidSig = async (did, data, sig, opts) => {
10
+ const prefixedBytes = (0, utils_1.extractPrefixedBytes)((0, utils_1.extractMultikey)(did));
11
+ if (!(0, utils_1.hasPrefix)(prefixedBytes, const_1.P256_DID_PREFIX)) {
12
+ throw new Error(`Not a P-256 did:key: ${did}`);
13
+ }
14
+ const keyBytes = prefixedBytes.slice(const_1.P256_DID_PREFIX.length);
15
+ return (0, exports.verifySig)(keyBytes, data, sig, opts);
16
+ };
17
+ exports.verifyDidSig = verifyDidSig;
18
+ const verifySig = async (publicKey, data, sig, opts) => {
19
+ const allowMalleable = opts?.allowMalleableSig ?? false;
20
+ const msgHash = await (0, sha256_1.sha256)(data);
21
+ // parse as compact sig to prevent signature malleability
22
+ // library supports sigs in 2 different formats: https://github.com/paulmillr/noble-curves/issues/99
23
+ if (!allowMalleable && !(0, exports.isCompactFormat)(sig)) {
24
+ return false;
25
+ }
26
+ return p256_1.p256.verify(sig, msgHash, publicKey, {
27
+ lowS: !allowMalleable,
28
+ });
29
+ };
30
+ exports.verifySig = verifySig;
31
+ const isCompactFormat = (sig) => {
32
+ try {
33
+ const parsed = p256_1.p256.Signature.fromCompact(sig);
34
+ return (0, uint8arrays_1.equals)(parsed.toCompactRawBytes(), sig);
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ };
40
+ exports.isCompactFormat = isCompactFormat;
41
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/p256/operations.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,iDAA6C;AAC7C,6CAAiD;AAEjD,oCAA0C;AAE1C,oCAA2E;AAEpE,MAAM,YAAY,GAAG,KAAK,EAC/B,GAAW,EACX,IAAgB,EAChB,GAAe,EACf,IAAoB,EACF,EAAE;IACpB,MAAM,aAAa,GAAG,IAAA,4BAAoB,EAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC,CAAA;IAChE,IAAI,CAAC,IAAA,iBAAS,EAAC,aAAa,EAAE,uBAAe,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAA;IAChD,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,uBAAe,CAAC,MAAM,CAAC,CAAA;IAC5D,OAAO,IAAA,iBAAS,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;AAC7C,CAAC,CAAA;AAZY,QAAA,YAAY,gBAYxB;AAEM,MAAM,SAAS,GAAG,KAAK,EAC5B,SAAqB,EACrB,IAAgB,EAChB,GAAe,EACf,IAAoB,EACF,EAAE;IACpB,MAAM,cAAc,GAAG,IAAI,EAAE,iBAAiB,IAAI,KAAK,CAAA;IACvD,MAAM,OAAO,GAAG,MAAM,IAAA,eAAM,EAAC,IAAI,CAAC,CAAA;IAClC,yDAAyD;IACzD,oGAAoG;IACpG,IAAI,CAAC,cAAc,IAAI,CAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,WAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1C,IAAI,EAAE,CAAC,cAAc;KACtB,CAAC,CAAA;AACJ,CAAC,CAAA;AAhBY,QAAA,SAAS,aAgBrB;AAEM,MAAM,eAAe,GAAG,CAAC,GAAe,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,WAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC9C,OAAO,IAAA,oBAAS,EAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAA;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAPY,QAAA,eAAe,mBAO3B"}
@@ -1,3 +1,4 @@
1
1
  import { DidKeyPlugin } from '../types';
2
2
  export declare const p256Plugin: DidKeyPlugin;
3
3
  export default p256Plugin;
4
+ //# sourceMappingURL=plugin.d.ts.map