mirror of
https://github.com/openpgpjs/openpgpjs.git
synced 2025-06-13 01:26:42 +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"
|
"asn1.js": "^5.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@openpgp/asmcrypto.js": "^2.3.2",
|
"@openpgp/asmcrypto.js": "^3.0.0",
|
||||||
"@openpgp/elliptic": "^6.5.1",
|
"@openpgp/elliptic": "^6.5.1",
|
||||||
"@openpgp/jsdoc": "^3.6.11",
|
"@openpgp/jsdoc": "^3.6.11",
|
||||||
|
"@openpgp/noble-hashes": "^1.3.2-1",
|
||||||
"@openpgp/seek-bzip": "^1.0.5-git",
|
"@openpgp/seek-bzip": "^1.0.5-git",
|
||||||
"@openpgp/tweetnacl": "^1.0.3",
|
"@openpgp/tweetnacl": "^1.0.3",
|
||||||
"@openpgp/web-stream-tools": "^0.0.14",
|
"@openpgp/web-stream-tools": "^0.0.14",
|
||||||
@ -590,9 +591,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@openpgp/asmcrypto.js": {
|
"node_modules/@openpgp/asmcrypto.js": {
|
||||||
"version": "2.3.2",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@openpgp/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/@openpgp/asmcrypto.js/-/asmcrypto.js-3.0.0.tgz",
|
||||||
"integrity": "sha512-CEb3I/Tqg+i5NgEnhYj3fi6XsT5JTuvYdwbMq+STGxlZ8uYSWmYFmVyz9vQgtNwCll/FbB6eR1opa4hoeHGceQ==",
|
"integrity": "sha512-X/DPYy7uHe+dlY2Botb99uXwb2kXR6HTv0hQOnnI0TVEqOIMQyzCDWAzlX00AacsYryDAphuOndg6mk6wtJCNg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@openpgp/elliptic": {
|
"node_modules/@openpgp/elliptic": {
|
||||||
@ -660,6 +661,22 @@
|
|||||||
"node": ">=10"
|
"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": {
|
"node_modules/@openpgp/seek-bzip": {
|
||||||
"version": "1.0.5-git",
|
"version": "1.0.5-git",
|
||||||
"resolved": "https://registry.npmjs.org/@openpgp/seek-bzip/-/seek-bzip-1.0.5-git.tgz",
|
"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==",
|
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
|
||||||
"dev": true
|
"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": {
|
"node_modules/@types/chai": {
|
||||||
"version": "4.3.5",
|
"version": "4.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz",
|
||||||
@ -8093,9 +8119,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@openpgp/asmcrypto.js": {
|
"@openpgp/asmcrypto.js": {
|
||||||
"version": "2.3.2",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@openpgp/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/@openpgp/asmcrypto.js/-/asmcrypto.js-3.0.0.tgz",
|
||||||
"integrity": "sha512-CEb3I/Tqg+i5NgEnhYj3fi6XsT5JTuvYdwbMq+STGxlZ8uYSWmYFmVyz9vQgtNwCll/FbB6eR1opa4hoeHGceQ==",
|
"integrity": "sha512-X/DPYy7uHe+dlY2Botb99uXwb2kXR6HTv0hQOnnI0TVEqOIMQyzCDWAzlX00AacsYryDAphuOndg6mk6wtJCNg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@openpgp/elliptic": {
|
"@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": {
|
"@openpgp/seek-bzip": {
|
||||||
"version": "1.0.5-git",
|
"version": "1.0.5-git",
|
||||||
"resolved": "https://registry.npmjs.org/@openpgp/seek-bzip/-/seek-bzip-1.0.5-git.tgz",
|
"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==",
|
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
|
||||||
"dev": true
|
"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": {
|
"@types/chai": {
|
||||||
"version": "4.3.5",
|
"version": "4.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz",
|
||||||
|
@ -62,9 +62,10 @@
|
|||||||
"postversion": "git push && git push --tags && npm publish"
|
"postversion": "git push && git push --tags && npm publish"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@openpgp/asmcrypto.js": "^2.3.2",
|
"@openpgp/asmcrypto.js": "^3.0.0",
|
||||||
"@openpgp/elliptic": "^6.5.1",
|
"@openpgp/elliptic": "^6.5.1",
|
||||||
"@openpgp/jsdoc": "^3.6.11",
|
"@openpgp/jsdoc": "^3.6.11",
|
||||||
|
"@openpgp/noble-hashes": "^1.3.2-1",
|
||||||
"@openpgp/seek-bzip": "^1.0.5-git",
|
"@openpgp/seek-bzip": "^1.0.5-git",
|
||||||
"@openpgp/tweetnacl": "^1.0.3",
|
"@openpgp/tweetnacl": "^1.0.3",
|
||||||
"@openpgp/web-stream-tools": "^0.0.14",
|
"@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.
|
* Javascript AES implementation.
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* @module crypto/cmac
|
* @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';
|
import util from '../util';
|
||||||
|
|
||||||
const webCrypto = util.getWebCrypto();
|
const webCrypto = util.getWebCrypto();
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
* @module crypto/hash
|
* @module crypto/hash
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Sha1 } from '@openpgp/asmcrypto.js/dist_es8/hash/sha1/sha1';
|
import { sha1 } from '@openpgp/noble-hashes/sha1';
|
||||||
import { Sha256 } from '@openpgp/asmcrypto.js/dist_es8/hash/sha256/sha256';
|
import { sha256 } from '@openpgp/noble-hashes/sha256';
|
||||||
import sha224 from 'hash.js/lib/hash/sha/224';
|
import sha224 from 'hash.js/lib/hash/sha/224';
|
||||||
import sha384 from 'hash.js/lib/hash/sha/384';
|
import sha384 from 'hash.js/lib/hash/sha/384';
|
||||||
import sha512 from 'hash.js/lib/hash/sha/512';
|
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) {
|
return async function(data, config = defaultConfig) {
|
||||||
if (stream.isArrayStream(data)) {
|
if (stream.isArrayStream(data)) {
|
||||||
data = await stream.readToEnd(data);
|
data = await stream.readToEnd(data);
|
||||||
}
|
}
|
||||||
if (util.isStream(data)) {
|
if (util.isStream(data)) {
|
||||||
const hashInstance = new hash();
|
const hashInstance = hash.create();
|
||||||
return stream.transform(data, value => {
|
return stream.transform(data, value => {
|
||||||
hashInstance.process(value);
|
hashInstance.update(value);
|
||||||
}, () => hashInstance.finish().result);
|
}, () => hashInstance.digest());
|
||||||
} else if (webCrypto && webCryptoHash && data.length >= config.minBytesForWebCrypto) {
|
} else if (webCrypto && webCryptoHash && data.length >= config.minBytesForWebCrypto) {
|
||||||
return new Uint8Array(await webCrypto.digest(webCryptoHash, data));
|
return new Uint8Array(await webCrypto.digest(webCryptoHash, data));
|
||||||
} else {
|
} else {
|
||||||
return hash.bytes(data);
|
return hash(data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const hashFunctions = {
|
const hashFunctions = {
|
||||||
md5: nodeHash('md5') || md5,
|
md5: nodeHash('md5') || md5,
|
||||||
sha1: nodeHash('sha1') || asmcryptoHash(Sha1, 'SHA-1'),
|
sha1: nodeHash('sha1') || nobleHash(sha1, 'SHA-1'),
|
||||||
sha224: nodeHash('sha224') || hashjsHash(sha224),
|
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'),
|
sha384: nodeHash('sha384') || hashjsHash(sha384, 'SHA-384'),
|
||||||
sha512: nodeHash('sha512') || hashjsHash(sha512, 'SHA-512'), // asmcrypto sha512 is huge.
|
sha512: nodeHash('sha512') || hashjsHash(sha512, 'SHA-512'), // asmcrypto sha512 is huge.
|
||||||
ripemd: nodeHash('ripemd160') || hashjsHash(ripemd160)
|
ripemd: nodeHash('ripemd160') || hashjsHash(ripemd160)
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
* @module crypto/mode/cfb
|
* @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 * as stream from '@openpgp/web-stream-tools';
|
||||||
import getCipher from '../cipher/getCipher';
|
import getCipher from '../cipher/getCipher';
|
||||||
import util from '../../util';
|
import util from '../../util';
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
* @module crypto/mode/eax
|
* @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 CMAC from '../cmac';
|
||||||
import util from '../../util';
|
import util from '../../util';
|
||||||
import enums from '../../enums';
|
import enums from '../../enums';
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
* @module crypto/mode/gcm
|
* @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 util from '../../util';
|
||||||
import enums from '../../enums';
|
import enums from '../../enums';
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user