From b780c90ff98f928e6d0298d74ada3ce629fbd18a Mon Sep 17 00:00:00 2001 From: Patrick McClurg Date: Fri, 16 Jun 2023 10:35:07 +0200 Subject: [PATCH] removed module.js from package.json imported Buffer everywhere so browsers don't need a polyfill --- package-lock.json | 394 +++++++++++++++++++++++++++++++- package.json | 3 +- src/age/age-encrypt-decrypt.ts | 1 + src/age/age-reader-writer.ts | 1 + src/age/armor.ts | 1 + src/age/utils-crypto.ts | 1 + src/age/utils.ts | 2 + src/crypto/ibe.ts | 1 + src/crypto/utils.ts | 1 + src/drand/timelock-decrypter.ts | 1 + src/drand/timelock-encrypter.ts | 1 + src/index.ts | 2 +- src/version.ts | 1 - 13 files changed, 404 insertions(+), 6 deletions(-) delete mode 100644 src/version.ts diff --git a/package-lock.json b/package-lock.json index b02aafc..2b6734c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "tlock-js", - "version": "0.5.0", + "version": "0.6.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "tlock-js", - "version": "0.5.0", + "version": "0.6.1", "license": "(Apache-2.0 OR MIT)", "dependencies": { "@noble/bls12-381": "^1.4.0", @@ -25,6 +25,7 @@ "@typescript-eslint/parser": "^5.30.6", "chai": "^4.3.7", "chai-string": "^1.5.0", + "esbuild": "^0.18.3", "eslint": "^8.19.0", "isomorphic-fetch": "^3.0.0", "jest": "^29.3.1", @@ -631,6 +632,358 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.3.tgz", + "integrity": "sha512-QOn3VIlL6Qv1eHBpQB/s7simaZgGss2ASyxDOwYSLmc6vD0uuizZkuYawHmuLjWEm5wPwp0JQWhbpaYwwGevYw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.3.tgz", + "integrity": "sha512-PgabCsoaEEnnOiF6rUhOBXgYoLFIrHWP6mfLOzuQ1oZ1lwBdTL0hp5ivC4K3Kvz3BD8EipjeQo6l0aty3nr4qQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.3.tgz", + "integrity": "sha512-1OkJf8wNX1W5ucbp5HrK+z42b9DINb4ix59oJH/PIsh9cyFMqjgRKtCBXg0zEWhkmP1k3egdfrnS7cDTpLH43g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.3.tgz", + "integrity": "sha512-57aofORpY7wDAuMs6DeqpmgSnVfZ63RgGbR/BHdOSTqJgYvHDCMY7/o1myFntl3k0YxtLE3WAm56nMf4qy3UDw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.3.tgz", + "integrity": "sha512-NVBqMnxT9qvgu7Z322LUDlwjh4GDk6wEePyAQnHF9noxik/WvLFmr5v3Vgz5LSvqFducLCxsdmLztKhdpFW0Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.3.tgz", + "integrity": "sha512-XiLK1AsCk2wKxN7j8h9GXXCs8FPZhp07U0rnpwRkAVSVGgLaIWYSqpTRzKjAfqJiZlp+XKo1HwsmDdICEKB3Dg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.3.tgz", + "integrity": "sha512-xyITfrF0G3l1gwR79hvNCCWKQ/16uK14xNNPFgzjbIqF4EpBvhO6l3jrWxXFUW51z6dVIl2Szh3x3uIbBWzH1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.3.tgz", + "integrity": "sha512-fc/T0QHMzvmnlF+kfD6bHLB8u+17gg13260p/E86yYjVoKNFjonL/+Y0GGQjMbFUas9QijqOa7pcR00a9RNkwg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.3.tgz", + "integrity": "sha512-lsKUYVd8L/j2uNs8dhMjMsKC5MHYh77gR9EThu7YCeeFz1XpIkx1I4a7mhoVfPS2VPVD1pMCh+PgxuAHUcEmXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.3.tgz", + "integrity": "sha512-EyfGWeOwRqK5Xj18vok0qv8IFBZ1/+hKV+cqD44oVhGsxHo9TmPtoSiDrWn8Sa2swq/VuO5Aiog6YPDj81oIkA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.3.tgz", + "integrity": "sha512-PwXkcl3t0kSeYH5RuJIeh/fHOzKZd+ZdifAWzpVO+9TLWArutTFBJvOSkTZ3CcqQqNrTj1Qyo6nqE8MQj/a7cQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.3.tgz", + "integrity": "sha512-CRVkkSXf5GQcq7Am2a2tdIn85oqi/bkjuPvhNqcdeTgI0xgNbqLnEPRy2AEGkRuaJWB5uCX1IC4sqnY8ET14Yg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.3.tgz", + "integrity": "sha512-t7zK1Cheh0xvzfZbimztiE0wGnpV+YRsBg3tefcEBN3O4GzgLu6fFpA5HxEyVm3hHZW1jAC4OhoGEp7C5Ii6Eg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.3.tgz", + "integrity": "sha512-fUZPtyCYih6y4lDYdSM4Yoax4nS7aH0/XixJStys+9tfp5cAlIAZhEVKOOdeGXmQn0IEyiUtlIsPnfObbeDQfQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.3.tgz", + "integrity": "sha512-oIcK2LqHWqfMERqjvaKJ3QJmycHn723HsXIv5gH4iGfmePfSj+gi0ZQv2h4bHUg2bs2gJtV0DlIjGhEuvdgxLw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.3.tgz", + "integrity": "sha512-RW9lpfZ6XZ6f5to2DJPvt0f/4RXEW229Xf++quVoW+YbnPrcapIJChtD/AmZ8cK3hglO/hXxJjs21pV0/l7L5w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.3.tgz", + "integrity": "sha512-piZ2oBoaq58pKZvhgdV6PemlL30Uhd9GmmOkIGZYgChwNcyVSSl6iMEJxMzU7x44Lk9q+hJ6a343M/iVEMEvxA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.3.tgz", + "integrity": "sha512-vaMfouYTz/4tKdQsXDccqhV6wgPEr+hfuxdNU5Pl/vQxYTsqcXv5DYEa5Z1RAxCoua5aEB+Uj5V7VT/bM92wxw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.3.tgz", + "integrity": "sha512-Fa3rNQQ9q1qwy9u2cdDvuGKy3jmPnPPMDdyy/qbn5d395Pb9hjLYiPzX9BozXMPJDlCNofSY7jN3miM9gyAdHA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.3.tgz", + "integrity": "sha512-LPJC8ub+9uzyC6ygVmp00dAqet1q1DsZ/OldGIIBt+y+Ctd1OfnKNlzQgXK8nxwY1G8fAhklFSeSRRgAUJnR0w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.3.tgz", + "integrity": "sha512-WtUyRspyxZR6NTc2HG4xd9Wvz8lP4C6OUY1gAqisrf151HvXIxsK0mfAacFJNS7EN2wvPTgjP+SM8vgBOx5+zA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.3.tgz", + "integrity": "sha512-Z8qCK4BkBm40j5KUM4NrkxYQS0R12cBO1NBVtI4vws6uwh1n/VaNu31Hm+n2cJUWdFbfH57PBghkhm9yLgmPfw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint/eslintrc": { "version": "1.3.0", "dev": true, @@ -2218,6 +2571,43 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/esbuild": { + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.3.tgz", + "integrity": "sha512-eadWJC4CRpj93+miO5ZBlvCv+m2x6pzyNBznTvUeLFObMmxs1IMd8cCf6qiDVEZuDL6W8W7u+ZNW3GKEfOdDsA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.3", + "@esbuild/android-arm64": "0.18.3", + "@esbuild/android-x64": "0.18.3", + "@esbuild/darwin-arm64": "0.18.3", + "@esbuild/darwin-x64": "0.18.3", + "@esbuild/freebsd-arm64": "0.18.3", + "@esbuild/freebsd-x64": "0.18.3", + "@esbuild/linux-arm": "0.18.3", + "@esbuild/linux-arm64": "0.18.3", + "@esbuild/linux-ia32": "0.18.3", + "@esbuild/linux-loong64": "0.18.3", + "@esbuild/linux-mips64el": "0.18.3", + "@esbuild/linux-ppc64": "0.18.3", + "@esbuild/linux-riscv64": "0.18.3", + "@esbuild/linux-s390x": "0.18.3", + "@esbuild/linux-x64": "0.18.3", + "@esbuild/netbsd-x64": "0.18.3", + "@esbuild/openbsd-x64": "0.18.3", + "@esbuild/sunos-x64": "0.18.3", + "@esbuild/win32-arm64": "0.18.3", + "@esbuild/win32-ia32": "0.18.3", + "@esbuild/win32-x64": "0.18.3" + } + }, "node_modules/escalade": { "version": "3.1.1", "dev": true, diff --git a/package.json b/package.json index 7d3e532..f21e003 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,9 @@ { "name": "tlock-js", - "version": "0.6.1", + "version": "0.6.2", "description": "A library to encrypt data that can only be decrypted in the future using drand", "source": "src/index.ts", "main": "index.js", - "module": "module.js", "types": "index.d.ts", "targets": { "default": { diff --git a/src/age/age-encrypt-decrypt.ts b/src/age/age-encrypt-decrypt.ts index 50b7681..4af09ce 100644 --- a/src/age/age-encrypt-decrypt.ts +++ b/src/age/age-encrypt-decrypt.ts @@ -5,6 +5,7 @@ import {NoOpEncDec} from "./no-op-encdec" import {readAge, writeAge} from "./age-reader-writer" import {sliceUntil, unpaddedBase64Buffer} from "./utils" import {createMacKey, random} from "./utils-crypto" +import {Buffer} from "buffer" type FileKey = Uint8Array type EncryptionWrapper = (fileKey: FileKey) => Promise> diff --git a/src/age/age-reader-writer.ts b/src/age/age-reader-writer.ts index 8e4e135..c3a2381 100644 --- a/src/age/age-reader-writer.ts +++ b/src/age/age-reader-writer.ts @@ -1,3 +1,4 @@ +import {Buffer} from "buffer" import {chunked, unpaddedBase64} from "./utils" import {createMacKey} from "./utils-crypto" diff --git a/src/age/armor.ts b/src/age/armor.ts index 9acbce5..eea1523 100644 --- a/src/age/armor.ts +++ b/src/age/armor.ts @@ -1,3 +1,4 @@ +import {Buffer} from "buffer" import {chunked} from "./utils" const header = "-----BEGIN AGE ENCRYPTED FILE-----" diff --git a/src/age/utils-crypto.ts b/src/age/utils-crypto.ts index a1731ea..e5d2752 100644 --- a/src/age/utils-crypto.ts +++ b/src/age/utils-crypto.ts @@ -1,6 +1,7 @@ import {hkdf} from "@noble/hashes/hkdf" import {sha256} from "@noble/hashes/sha256" import {hmac} from "@noble/hashes/hmac" +import {Buffer} from "buffer" export function createMacKey(fileKey: Uint8Array, macMessage: string, headerText: string): Uint8Array { // empty string salt as per the spec! diff --git a/src/age/utils.ts b/src/age/utils.ts index 547698d..6c34a2f 100644 --- a/src/age/utils.ts +++ b/src/age/utils.ts @@ -1,3 +1,5 @@ +import {Buffer} from "buffer" + // as per the spec: // RFC 4648, Section 4 // without = padding characters (sometimes referred to as "raw" or "unpadded" base64) diff --git a/src/crypto/ibe.ts b/src/crypto/ibe.ts index 54cd2ef..3ae834c 100644 --- a/src/crypto/ibe.ts +++ b/src/crypto/ibe.ts @@ -1,6 +1,7 @@ import * as bls from "@noble/bls12-381" import {PointG1, PointG2, utils} from "@noble/bls12-381" import {sha256} from "@noble/hashes/sha256" +import { Buffer } from "buffer" import {bytesToNumberBE, fp12ToBytes, xor} from "./utils" export interface Ciphertext { diff --git a/src/crypto/utils.ts b/src/crypto/utils.ts index a2e849a..297a6f6 100644 --- a/src/crypto/utils.ts +++ b/src/crypto/utils.ts @@ -1,3 +1,4 @@ +import {Buffer} from "buffer" import {Fp, Fp12, Fp2} from "@noble/bls12-381" // returns a new array with the xor of a ^ b diff --git a/src/drand/timelock-decrypter.ts b/src/drand/timelock-decrypter.ts index bbfaa1e..73e468b 100644 --- a/src/drand/timelock-decrypter.ts +++ b/src/drand/timelock-decrypter.ts @@ -1,5 +1,6 @@ import {Stanza} from "../age/age-encrypt-decrypt" import {PointG1, PointG2} from "@noble/bls12-381" +import {Buffer} from "buffer" import {ChainClient, fetchBeacon, roundTime} from "drand-client" import * as ibe from "../crypto/ibe" import {Ciphertext, CiphertextOnG2} from "../crypto/ibe" diff --git a/src/drand/timelock-encrypter.ts b/src/drand/timelock-encrypter.ts index 5c610d3..a7639df 100644 --- a/src/drand/timelock-encrypter.ts +++ b/src/drand/timelock-encrypter.ts @@ -1,5 +1,6 @@ import {PointG1, PointG2} from "@noble/bls12-381" import {sha256} from "@noble/hashes/sha256" +import {Buffer} from "buffer" import * as ibe from "../crypto/ibe" import {ChainClient} from "drand-client" import {Stanza} from "../age/age-encrypt-decrypt" diff --git a/src/index.ts b/src/index.ts index 5941854..c89b383 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,7 +12,7 @@ import {createTimelockEncrypter} from "./drand/timelock-encrypter" import {decryptAge, encryptAge} from "./age/age-encrypt-decrypt" import {decodeArmor, encodeArmor, isProbablyArmored} from "./age/armor" import {createTimelockDecrypter} from "./drand/timelock-decrypter" -import {defaultChainInfo, defaultChainUrl, MAINNET_CHAIN_URL, TESTNET_CHAIN_INFO, TESTNET_CHAIN_URL} from "./drand/defaults" +import {defaultChainInfo, defaultChainUrl, MAINNET_CHAIN_URL, TESTNET_CHAIN_URL} from "./drand/defaults" import {LIB_VERSION} from "./version" export async function timelockEncrypt( diff --git a/src/version.ts b/src/version.ts deleted file mode 100644 index cf3eb16..0000000 --- a/src/version.ts +++ /dev/null @@ -1 +0,0 @@ -export const LIB_VERSION = "0.4.0";