diff --git a/src/config/config.js b/src/config/config.js index ef23d2375..435881386 100644 --- a/src/config/config.js +++ b/src/config/config.js @@ -209,5 +209,5 @@ export default { * @memberof module:config * @property {Set} rejectCurves {@link module:enums.curve} */ - rejectCurves: new Set([enums.curve.brainpoolP256r1, enums.curve.brainpoolP384r1, enums.curve.brainpoolP512r1]) + rejectCurves: new Set([enums.curve.brainpoolP256r1, enums.curve.brainpoolP384r1, enums.curve.brainpoolP512r1, enums.curve.secp256k1]) }; diff --git a/src/openpgp.js b/src/openpgp.js index c10210247..a77739c1c 100644 --- a/src/openpgp.js +++ b/src/openpgp.js @@ -69,7 +69,7 @@ export async function generateKey({ userIDs = [], passphrase = '', type = 'ecc', try { const { key, revocationCertificate } = await generate(options, config); - checkKeyRequirements(key.keyPacket, config); + key.getKeys().forEach(({ keyPacket }) => checkKeyRequirements(keyPacket, config)); return { privateKey: formatObject(key, format, config), diff --git a/test/general/ecc_secp256k1.js b/test/general/ecc_secp256k1.js index 893d98c70..69ef38ee2 100644 --- a/test/general/ecc_secp256k1.js +++ b/test/general/ecc_secp256k1.js @@ -12,6 +12,17 @@ module.exports = () => describe('Elliptic Curve Cryptography for secp256k1 curve this.skip(); // eslint-disable-line no-invalid-this }); } + + let rejectCurvesVal; + beforeEach(() => { + rejectCurvesVal = openpgp.config.rejectCurves; + openpgp.config.rejectCurves = new Set(); + }); + + afterEach(() => { + openpgp.config.rejectCurves = rejectCurvesVal; + }); + const data = { romeo: { id: 'c2b12389b401a43d',