openpgpjs/test/fuzz/readKeyArmored.js
2023-12-18 09:16:43 +01:00

29 lines
726 B
JavaScript

import { FuzzedDataProvider } from '@jazzer.js/core';
import { readKey } from 'openpgp';
const ignored = ['Misformed armored text'];
const MAX_MESSAGE_LENGTH = 4096;
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 readKey({ armoredKey })
.catch(error => {
if (error.message && !ignoredError(error)) {
throw error;
}
});
}