mirror of
https://github.com/openpgpjs/openpgpjs.git
synced 2026-03-02 06:53:24 +00:00
Try more AEAD ciphersuites for SEIPDv2 (#1781)
Stick more closely to the algorithm preferences when creating an SEIPDv2 message, by trying additional combinations of the preferred symmetric algorithm and the preferred AEAD algorithm. If one of them is supported but not the other, we still use it (with the mandatory-to-implement algorithm for the other one).
This commit is contained in:
@@ -178,12 +178,19 @@ export async function getPreferredCipherSuite(keys = [], date = new Date(), user
|
||||
|
||||
if (withAEAD) {
|
||||
const defaultCipherSuite = { symmetricAlgo: enums.symmetric.aes128, aeadAlgo: enums.aead.ocb };
|
||||
const desiredCipherSuite = { symmetricAlgo: config.preferredSymmetricAlgorithm, aeadAlgo: config.preferredAEADAlgorithm };
|
||||
return selfSigs.every(selfSig => selfSig.preferredCipherSuites && selfSig.preferredCipherSuites.some(
|
||||
cipherSuite => cipherSuite[0] === desiredCipherSuite.symmetricAlgo && cipherSuite[1] === desiredCipherSuite.aeadAlgo
|
||||
)) ?
|
||||
desiredCipherSuite :
|
||||
defaultCipherSuite;
|
||||
const desiredCipherSuites = [
|
||||
{ symmetricAlgo: config.preferredSymmetricAlgorithm, aeadAlgo: config.preferredAEADAlgorithm },
|
||||
{ symmetricAlgo: config.preferredSymmetricAlgorithm, aeadAlgo: enums.aead.ocb },
|
||||
{ symmetricAlgo: enums.symmetric.aes128, aeadAlgo: config.preferredAEADAlgorithm }
|
||||
];
|
||||
for (const desiredCipherSuite of desiredCipherSuites) {
|
||||
if (selfSigs.every(selfSig => selfSig.preferredCipherSuites && selfSig.preferredCipherSuites.some(
|
||||
cipherSuite => cipherSuite[0] === desiredCipherSuite.symmetricAlgo && cipherSuite[1] === desiredCipherSuite.aeadAlgo
|
||||
))) {
|
||||
return desiredCipherSuite;
|
||||
}
|
||||
}
|
||||
return defaultCipherSuite;
|
||||
}
|
||||
const defaultSymAlgo = enums.symmetric.aes128;
|
||||
const desiredSymAlgo = config.preferredSymmetricAlgorithm;
|
||||
|
||||
Reference in New Issue
Block a user