diff --git a/package-lock.json b/package-lock.json index 8e019b64..cc7ab7c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "6.1.0", "license": "LGPL-3.0+", "devDependencies": { - "@noble/ciphers": "^1.0.0", - "@noble/curves": "^1.6.0", + "@noble/ciphers": "^1.2.1", + "@noble/curves": "^1.8.1", "@noble/hashes": "^1.5.0", "@openpgp/jsdoc": "^3.6.11", "@openpgp/seek-bzip": "^1.0.5-git", @@ -929,9 +929,9 @@ } }, "node_modules/@noble/ciphers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", - "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", "dev": true, "license": "MIT", "engines": { @@ -942,12 +942,13 @@ } }, "node_modules/@noble/curves": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", - "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@noble/hashes": "1.5.0" + "@noble/hashes": "1.7.1" }, "engines": { "node": "^14.21.3 || >=16" @@ -957,10 +958,11 @@ } }, "node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", "dev": true, + "license": "MIT", "engines": { "node": "^14.21.3 || >=16" }, diff --git a/package.json b/package.json index b5eb74b7..fc1399cf 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,8 @@ "postversion": "git push --follow-tags && npm publish" }, "devDependencies": { - "@noble/ciphers": "^1.0.0", - "@noble/curves": "^1.6.0", + "@noble/ciphers": "^1.2.1", + "@noble/curves": "^1.8.1", "@noble/hashes": "^1.5.0", "@openpgp/jsdoc": "^3.6.11", "@openpgp/seek-bzip": "^1.0.5-git", diff --git a/src/crypto/cipherMode/ocb.js b/src/crypto/cipherMode/ocb.js index e8b8cabf..397a4fe6 100644 --- a/src/crypto/cipherMode/ocb.js +++ b/src/crypto/cipherMode/ocb.js @@ -73,9 +73,8 @@ async function OCB(cipher, key) { // `encipher` and `decipher` cannot be async, since `crypt` shares state across calls, // hence its execution cannot be broken up. // As a result, WebCrypto cannot currently be used for `encipher`. - const aes = nobleAesCbc(key, zeroBlock, { disablePadding: true }); - const encipher = block => aes.encrypt(block); - const decipher = block => aes.decrypt(block); + const encipher = block => nobleAesCbc(key, zeroBlock, { disablePadding: true }).encrypt(block); + const decipher = block => nobleAesCbc(key, zeroBlock, { disablePadding: true }).decrypt(block); let mask; constructKeyVariables(cipher, key); diff --git a/test/crypto/ecdh.js b/test/crypto/ecdh.js index 72a8892b..997538a9 100644 --- a/test/crypto/ecdh.js +++ b/test/crypto/ecdh.js @@ -267,9 +267,9 @@ export default () => describe('ECDH key exchange @lightweight', function () { for (const { vector } of vectors) { const lowOrderPoint = util.hexToUint8Array(vector); const { A: K_A, k: a } = await elliptic_curves.ecdhX.generate(openpgp.enums.publicKey.x448); - await expect(elliptic_curves.ecdhX.encrypt(openpgp.enums.publicKey.x448, data, lowOrderPoint)).to.be.rejectedWith(/Invalid private or public key received|expected valid u|low order point/); + await expect(elliptic_curves.ecdhX.encrypt(openpgp.enums.publicKey.x448, data, lowOrderPoint)).to.be.rejectedWith(/invalid private or public key received|expected valid u|low order point/); const dummyWrappedKey = new Uint8Array(32); // expected to be unused - await expect(elliptic_curves.ecdhX.decrypt(openpgp.enums.publicKey.x448, lowOrderPoint, dummyWrappedKey, K_A, a)).to.be.rejectedWith(/Invalid private or public key received|expected valid u|low order point/); + await expect(elliptic_curves.ecdhX.decrypt(openpgp.enums.publicKey.x448, lowOrderPoint, dummyWrappedKey, K_A, a)).to.be.rejectedWith(/invalid private or public key received|expected valid u|low order point/); } });