mirror of
https://github.com/openpgpjs/openpgpjs.git
synced 2025-11-25 06:55:50 +00:00
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
29 lines
740 B
JavaScript
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;
|
|
}
|
|
});
|
|
}
|
|
|