mirror of
https://github.com/openpgpjs/openpgpjs.git
synced 2025-06-11 16:46:41 +00:00
Update asmcrypto.js, use for AES only (move to noble-hashes for sha1, sha256)
This commit is contained in:
parent
0b2767fe4c
commit
21a6d83ec8
59
package-lock.json
generated
59
package-lock.json
generated
@ -12,9 +12,10 @@
|
||||
"asn1.js": "^5.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openpgp/asmcrypto.js": "^2.3.2",
|
||||
"@openpgp/asmcrypto.js": "^3.0.0",
|
||||
"@openpgp/elliptic": "^6.5.1",
|
||||
"@openpgp/jsdoc": "^3.6.11",
|
||||
"@openpgp/noble-hashes": "^1.3.2-1",
|
||||
"@openpgp/seek-bzip": "^1.0.5-git",
|
||||
"@openpgp/tweetnacl": "^1.0.3",
|
||||
"@openpgp/web-stream-tools": "^0.0.14",
|
||||
@ -590,9 +591,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@openpgp/asmcrypto.js": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@openpgp/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz",
|
||||
"integrity": "sha512-CEb3I/Tqg+i5NgEnhYj3fi6XsT5JTuvYdwbMq+STGxlZ8uYSWmYFmVyz9vQgtNwCll/FbB6eR1opa4hoeHGceQ==",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@openpgp/asmcrypto.js/-/asmcrypto.js-3.0.0.tgz",
|
||||
"integrity": "sha512-X/DPYy7uHe+dlY2Botb99uXwb2kXR6HTv0hQOnnI0TVEqOIMQyzCDWAzlX00AacsYryDAphuOndg6mk6wtJCNg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@openpgp/elliptic": {
|
||||
@ -660,6 +661,22 @@
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@openpgp/noble-hashes": {
|
||||
"version": "1.3.2-1",
|
||||
"resolved": "https://registry.npmjs.org/@openpgp/noble-hashes/-/noble-hashes-1.3.2-1.tgz",
|
||||
"integrity": "sha512-4pmVh5O+bq1vO4xIAQXh0m7AxasEidFmHA1zm3Fk46IsLObz8pI43EyuLdwqs/6cmL6vAUCde/Xh2MYrVZd5bw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/bn.js": "^4.11.6",
|
||||
"bn.js": "^4.11.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 16"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
},
|
||||
"node_modules/@openpgp/seek-bzip": {
|
||||
"version": "1.0.5-git",
|
||||
"resolved": "https://registry.npmjs.org/@openpgp/seek-bzip/-/seek-bzip-1.0.5-git.tgz",
|
||||
@ -986,6 +1003,15 @@
|
||||
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/bn.js": {
|
||||
"version": "4.11.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
|
||||
"integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/chai": {
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz",
|
||||
@ -8093,9 +8119,9 @@
|
||||
}
|
||||
},
|
||||
"@openpgp/asmcrypto.js": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@openpgp/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz",
|
||||
"integrity": "sha512-CEb3I/Tqg+i5NgEnhYj3fi6XsT5JTuvYdwbMq+STGxlZ8uYSWmYFmVyz9vQgtNwCll/FbB6eR1opa4hoeHGceQ==",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@openpgp/asmcrypto.js/-/asmcrypto.js-3.0.0.tgz",
|
||||
"integrity": "sha512-X/DPYy7uHe+dlY2Botb99uXwb2kXR6HTv0hQOnnI0TVEqOIMQyzCDWAzlX00AacsYryDAphuOndg6mk6wtJCNg==",
|
||||
"dev": true
|
||||
},
|
||||
"@openpgp/elliptic": {
|
||||
@ -8150,6 +8176,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"@openpgp/noble-hashes": {
|
||||
"version": "1.3.2-1",
|
||||
"resolved": "https://registry.npmjs.org/@openpgp/noble-hashes/-/noble-hashes-1.3.2-1.tgz",
|
||||
"integrity": "sha512-4pmVh5O+bq1vO4xIAQXh0m7AxasEidFmHA1zm3Fk46IsLObz8pI43EyuLdwqs/6cmL6vAUCde/Xh2MYrVZd5bw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/bn.js": "^4.11.6",
|
||||
"bn.js": "^4.11.8"
|
||||
}
|
||||
},
|
||||
"@openpgp/seek-bzip": {
|
||||
"version": "1.0.5-git",
|
||||
"resolved": "https://registry.npmjs.org/@openpgp/seek-bzip/-/seek-bzip-1.0.5-git.tgz",
|
||||
@ -8374,6 +8410,15 @@
|
||||
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/bn.js": {
|
||||
"version": "4.11.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
|
||||
"integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/chai": {
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz",
|
||||
|
@ -62,9 +62,10 @@
|
||||
"postversion": "git push && git push --tags && npm publish"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@openpgp/asmcrypto.js": "^2.3.2",
|
||||
"@openpgp/asmcrypto.js": "^3.0.0",
|
||||
"@openpgp/elliptic": "^6.5.1",
|
||||
"@openpgp/jsdoc": "^3.6.11",
|
||||
"@openpgp/noble-hashes": "^1.3.2-1",
|
||||
"@openpgp/seek-bzip": "^1.0.5-git",
|
||||
"@openpgp/tweetnacl": "^1.0.3",
|
||||
"@openpgp/web-stream-tools": "^0.0.14",
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { AES_ECB } from '@openpgp/asmcrypto.js/dist_es8/aes/ecb';
|
||||
import { AES_ECB } from '@openpgp/asmcrypto.js/aes/ecb.js';
|
||||
|
||||
/**
|
||||
* Javascript AES implementation.
|
||||
|
@ -4,7 +4,7 @@
|
||||
* @module crypto/cmac
|
||||
*/
|
||||
|
||||
import { AES_CBC } from '@openpgp/asmcrypto.js/dist_es8/aes/cbc';
|
||||
import { AES_CBC } from '@openpgp/asmcrypto.js/aes/cbc.js';
|
||||
import util from '../util';
|
||||
|
||||
const webCrypto = util.getWebCrypto();
|
||||
|
@ -5,8 +5,8 @@
|
||||
* @module crypto/hash
|
||||
*/
|
||||
|
||||
import { Sha1 } from '@openpgp/asmcrypto.js/dist_es8/hash/sha1/sha1';
|
||||
import { Sha256 } from '@openpgp/asmcrypto.js/dist_es8/hash/sha256/sha256';
|
||||
import { sha1 } from '@openpgp/noble-hashes/sha1';
|
||||
import { sha256 } from '@openpgp/noble-hashes/sha256';
|
||||
import sha224 from 'hash.js/lib/hash/sha/224';
|
||||
import sha384 from 'hash.js/lib/hash/sha/384';
|
||||
import sha512 from 'hash.js/lib/hash/sha/512';
|
||||
@ -48,29 +48,29 @@ function hashjsHash(hash, webCryptoHash) {
|
||||
};
|
||||
}
|
||||
|
||||
function asmcryptoHash(hash, webCryptoHash) {
|
||||
function nobleHash(hash, webCryptoHash) {
|
||||
return async function(data, config = defaultConfig) {
|
||||
if (stream.isArrayStream(data)) {
|
||||
data = await stream.readToEnd(data);
|
||||
}
|
||||
if (util.isStream(data)) {
|
||||
const hashInstance = new hash();
|
||||
const hashInstance = hash.create();
|
||||
return stream.transform(data, value => {
|
||||
hashInstance.process(value);
|
||||
}, () => hashInstance.finish().result);
|
||||
hashInstance.update(value);
|
||||
}, () => hashInstance.digest());
|
||||
} else if (webCrypto && webCryptoHash && data.length >= config.minBytesForWebCrypto) {
|
||||
return new Uint8Array(await webCrypto.digest(webCryptoHash, data));
|
||||
} else {
|
||||
return hash.bytes(data);
|
||||
return hash(data);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const hashFunctions = {
|
||||
md5: nodeHash('md5') || md5,
|
||||
sha1: nodeHash('sha1') || asmcryptoHash(Sha1, 'SHA-1'),
|
||||
sha1: nodeHash('sha1') || nobleHash(sha1, 'SHA-1'),
|
||||
sha224: nodeHash('sha224') || hashjsHash(sha224),
|
||||
sha256: nodeHash('sha256') || asmcryptoHash(Sha256, 'SHA-256'),
|
||||
sha256: nodeHash('sha256') || nobleHash(sha256, 'SHA-256'),
|
||||
sha384: nodeHash('sha384') || hashjsHash(sha384, 'SHA-384'),
|
||||
sha512: nodeHash('sha512') || hashjsHash(sha512, 'SHA-512'), // asmcrypto sha512 is huge.
|
||||
ripemd: nodeHash('ripemd160') || hashjsHash(ripemd160)
|
||||
|
@ -21,7 +21,7 @@
|
||||
* @module crypto/mode/cfb
|
||||
*/
|
||||
|
||||
import { AES_CFB } from '@openpgp/asmcrypto.js/dist_es8/aes/cfb';
|
||||
import { AES_CFB } from '@openpgp/asmcrypto.js/aes/cfb.js';
|
||||
import * as stream from '@openpgp/web-stream-tools';
|
||||
import getCipher from '../cipher/getCipher';
|
||||
import util from '../../util';
|
||||
|
@ -21,7 +21,7 @@
|
||||
* @module crypto/mode/eax
|
||||
*/
|
||||
|
||||
import { AES_CTR } from '@openpgp/asmcrypto.js/dist_es8/aes/ctr';
|
||||
import { AES_CTR } from '@openpgp/asmcrypto.js/aes/ctr.js';
|
||||
import CMAC from '../cmac';
|
||||
import util from '../../util';
|
||||
import enums from '../../enums';
|
||||
|
@ -21,7 +21,7 @@
|
||||
* @module crypto/mode/gcm
|
||||
*/
|
||||
|
||||
import { AES_GCM } from '@openpgp/asmcrypto.js/dist_es8/aes/gcm';
|
||||
import { AES_GCM } from '@openpgp/asmcrypto.js/aes/gcm.js';
|
||||
import util from '../../util';
|
||||
import enums from '../../enums';
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user