openpgpjs/test/fuzz/readKeyArmored.js
hulkoba 4c0a324980
test(fuzz): turn everything into esm
since coverage does not work as expected at all, we can use esm. So if jazzer at some point, add esm support for esm, we can easily add it
2023-12-13 15:09:46 +01:00

29 lines
740 B
JavaScript

import { FuzzedDataProvider } from '@jazzer.js/core';
import openpgp from '../initOpenpgp.js';
const ignored = ['Misformed armored text'];
const MAX_MESSAGE_LENGTH = 9000;
function ignoredError(error) {
return ignored.some(message => error.message.includes(message));
}
/**
* @param { Buffer } inputData
*/
export function fuzz (inputData) {
const data = new FuzzedDataProvider(inputData);
const fuzzedText = data.consumeString(MAX_MESSAGE_LENGTH, 'utf-8');
const armoredKey = `-----BEGIN PGP PRIVATE KEY BLOCK-----\n ${fuzzedText} -----END PGP PRIVATE KEY BLOCK-----`;
return openpgp.readKey({ armoredKey })
.catch(error => {
if (error.message && !ignoredError(error)) {
throw error;
}
});
}