diff --git a/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/AsciiArmorFuzzTest.java b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/AsciiArmorFuzzTest.java index c58090b9..7f068506 100644 --- a/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/AsciiArmorFuzzTest.java +++ b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/AsciiArmorFuzzTest.java @@ -18,7 +18,9 @@ public class AsciiArmorFuzzTest { private final SOP sop = new SOPImpl(); - @FuzzTest() + @FuzzTest( + maxDuration = "60s" + ) public void armorAndDearmorData(FuzzedDataProvider data) throws IOException { byte[] bytes = data.consumeBytes(1024); diff --git a/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/EncryptedMessageFuzzingTest.java b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/EncryptedMessageFuzzingTest.java index 7a2c18c0..4cc2daa0 100644 --- a/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/EncryptedMessageFuzzingTest.java +++ b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/EncryptedMessageFuzzingTest.java @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 Paul Schaub +// +// SPDX-License-Identifier: Apache-2.0 + package org.pgpainless.sop.fuzzing; import com.code_intelligence.jazzer.api.FuzzedDataProvider; @@ -67,7 +71,9 @@ public class EncryptedMessageFuzzingTest { return keys; } - @FuzzTest + @FuzzTest( + maxDuration = "60s" + ) public void decryptFuzzedMessage(FuzzedDataProvider provider) { byte[] ciphertext = provider.consumeBytes(8192); if (ciphertext.length == 0) { diff --git a/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTest.java b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTest.java new file mode 100644 index 00000000..bbd7e662 --- /dev/null +++ b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTest.java @@ -0,0 +1,44 @@ +// SPDX-FileCopyrightText: 2025 Paul Schaub +// +// SPDX-License-Identifier: Apache-2.0 + +package org.pgpainless.sop.fuzzing; + +import com.code_intelligence.jazzer.api.FuzzedDataProvider; +import com.code_intelligence.jazzer.junit.FuzzTest; +import org.bouncycastle.bcpg.BCPGInputStream; +import org.bouncycastle.bcpg.UnsupportedPacketVersionException; +import org.bouncycastle.openpgp.PGPObjectFactory; +import org.bouncycastle.openpgp.PGPPublicKeyRing; +import org.bouncycastle.openpgp.bc.BcPGPObjectFactory; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +public class PublicKeyPacketFuzzTest { + + @FuzzTest(maxDuration = "30m") + public void parsePublicKeyPacket(FuzzedDataProvider provider) + { + byte[] encoding = provider.consumeBytes(8192); + if (encoding.length == 0) { + return; + } + + ByteArrayInputStream bIn = new ByteArrayInputStream(encoding); + BCPGInputStream pIn = new BCPGInputStream(bIn); + PGPObjectFactory objFac = new BcPGPObjectFactory(pIn); + try { + Object next = objFac.nextObject(); + if (next == null) return; + + PGPPublicKeyRing pubKey = (PGPPublicKeyRing) next; + } catch (IOException e) { + // ignore + } catch (UnsupportedPacketVersionException e) { + // ignore + } catch (ClassCastException e) { + // ignore + } + } +} diff --git a/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTest.java b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTest.java new file mode 100644 index 00000000..2d0e94b5 --- /dev/null +++ b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTest.java @@ -0,0 +1,44 @@ +// SPDX-FileCopyrightText: 2025 Paul Schaub +// +// SPDX-License-Identifier: Apache-2.0 + +package org.pgpainless.sop.fuzzing; + +import com.code_intelligence.jazzer.api.FuzzedDataProvider; +import com.code_intelligence.jazzer.junit.FuzzTest; +import org.bouncycastle.bcpg.BCPGInputStream; +import org.bouncycastle.bcpg.UnsupportedPacketVersionException; +import org.bouncycastle.openpgp.PGPObjectFactory; +import org.bouncycastle.openpgp.PGPSecretKeyRing; +import org.bouncycastle.openpgp.bc.BcPGPObjectFactory; + +import java.io.ByteArrayInputStream; +import java.io.IOException; + +public class SecretKeyPacketFuzzTest { + + @FuzzTest(maxDuration = "30m") + public void parseSecretKeyPacket(FuzzedDataProvider provider) + { + byte[] encoding = provider.consumeBytes(8192); + if (encoding.length == 0) { + return; + } + + ByteArrayInputStream bIn = new ByteArrayInputStream(encoding); + BCPGInputStream pIn = new BCPGInputStream(bIn); + PGPObjectFactory objFac = new BcPGPObjectFactory(pIn); + try { + Object next = objFac.nextObject(); + if (next == null) return; + + PGPSecretKeyRing secKey = (PGPSecretKeyRing) next; + } catch (IOException e) { + // ignore + } catch (UnsupportedPacketVersionException e) { + // ignore + } catch (ClassCastException e) { + // ignore + } + } +} diff --git a/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/SignatureFuzzTest.java b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/SignatureFuzzTest.java index 1f7c10e2..6d1be4a2 100644 --- a/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/SignatureFuzzTest.java +++ b/pgpainless-sop/src/test/java/org/pgpainless/sop/fuzzing/SignatureFuzzTest.java @@ -270,7 +270,7 @@ public class SignatureFuzzTest { "-----END PGP PUBLIC KEY BLOCK-----\n"; @FuzzTest( - //maxDuration = "60s" + maxDuration = "60s" ) public void verifyFuzzedSig(FuzzedDataProvider provider) throws IOException { byte[] sig = provider.consumeBytes(1024); diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/EncryptedMessageFuzzingTestInputs/decryptFuzzedMessage/crash-72aacd2d82d3c3fa750807ad1138e6a566996f04 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/EncryptedMessageFuzzingTestInputs/decryptFuzzedMessage/crash-72aacd2d82d3c3fa750807ad1138e6a566996f04 new file mode 100644 index 00000000..6a639ac1 --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/EncryptedMessageFuzzingTestInputs/decryptFuzzedMessage/crash-72aacd2d82d3c3fa750807ad1138e6a566996f04 @@ -0,0 +1 @@ +qP\Ù!J],ʥ t @:0.sd$X, bcv7G \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519Legacy_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519Legacy_v4.pgp new file mode 100644 index 00000000..fc43a52a Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519Legacy_v4.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519_v4.pgp new file mode 100644 index 00000000..38aefdee --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519_v4.pgp @@ -0,0 +1 @@ +&hpx "^heh( \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519_v6.pgp new file mode 100644 index 00000000..52216d85 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed25519_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed448_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed448_v4.pgp new file mode 100644 index 00000000..af727ca9 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed448_v4.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed448_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed448_v6.pgp new file mode 100644 index 00000000..4c7476f1 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/ed448_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDH_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDH_v4.pgp new file mode 100644 index 00000000..b05dddb9 --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDH_v4.pgp @@ -0,0 +1 @@ +Vhp*H=$;*nȵ(cy4 ,sU;ؚ#!AgjL<B7? \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDH_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDH_v6.pgp new file mode 100644 index 00000000..f61b3585 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDH_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDSA_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDSA_v4.pgp new file mode 100644 index 00000000..2d5eea3e --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDSA_v4.pgp @@ -0,0 +1,2 @@ +Rhp*H=-$5? xH4t?%[sTpXi +8G:I)I/a"yA9 \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDSA_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDSA_v6.pgp new file mode 100644 index 00000000..78b3e6c6 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP256ECDSA_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDH_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDH_v4.pgp new file mode 100644 index 00000000..eb69b803 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDH_v4.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDH_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDH_v6.pgp new file mode 100644 index 00000000..fcd9418f Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDH_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDSA_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDSA_v4.pgp new file mode 100644 index 00000000..753af46d Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDSA_v4.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDSA_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDSA_v6.pgp new file mode 100644 index 00000000..e64e6b23 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP384ECDSA_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDH_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDH_v4.pgp new file mode 100644 index 00000000..c2dba861 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDH_v4.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDH_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDH_v6.pgp new file mode 100644 index 00000000..c9c82dee Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDH_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDSA_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDSA_v4.pgp new file mode 100644 index 00000000..66a16898 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDSA_v4.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDSA_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDSA_v6.pgp new file mode 100644 index 00000000..e751b309 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/nistP521ECDSA_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-40b0e946bfad779a720ffb4ddf3afda127c381e0 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-40b0e946bfad779a720ffb4ddf3afda127c381e0 new file mode 100644 index 00000000..6e8f29a8 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-40b0e946bfad779a720ffb4ddf3afda127c381e0 differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-6ff0478f8c84828619d721a9c582cf0dc048198d b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-6ff0478f8c84828619d721a9c582cf0dc048198d new file mode 100644 index 00000000..4ad30dda Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-6ff0478f8c84828619d721a9c582cf0dc048198d differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-972998632851a93af5c647ad0f8f684afbb6e788 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-972998632851a93af5c647ad0f8f684afbb6e788 new file mode 100644 index 00000000..ba689842 --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-972998632851a93af5c647ad0f8f684afbb6e788 @@ -0,0 +1 @@ +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-b2703b347fec497f13d319cfd5e337052683f853 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-b2703b347fec497f13d319cfd5e337052683f853 new file mode 100644 index 00000000..ed86d1e5 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-b2703b347fec497f13d319cfd5e337052683f853 differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-b47757e7135bbaf31049992ed13461a1c95255c9 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-b47757e7135bbaf31049992ed13461a1c95255c9 new file mode 100644 index 00000000..5fc4ff51 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-b47757e7135bbaf31049992ed13461a1c95255c9 differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-fd8f91587a20a22513ee536aec3411052e5b3217 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-fd8f91587a20a22513ee536aec3411052e5b3217 new file mode 100644 index 00000000..c31520de --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/parsePublicKeyPacket/crash-fd8f91587a20a22513ee536aec3411052e5b3217 @@ -0,0 +1 @@ ++ \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa2048_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa2048_v4.pgp new file mode 100644 index 00000000..05470088 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa2048_v4.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa2048_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa2048_v6.pgp new file mode 100644 index 00000000..18aacd39 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa2048_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa4096_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa4096_v4.pgp new file mode 100644 index 00000000..1fd6ffc9 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa4096_v4.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa4096_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa4096_v6.pgp new file mode 100644 index 00000000..fa112b0c Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/rsa4096_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x25519Legacy_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x25519Legacy_v4.pgp new file mode 100644 index 00000000..45f98c5b --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x25519Legacy_v4.pgp @@ -0,0 +1,2 @@ +8hp ++U@VIЈ樣1]ُa_l4J  \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x25519_v4.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x25519_v4.pgp new file mode 100644 index 00000000..6956e05c --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x25519_v4.pgp @@ -0,0 +1 @@ +&hp^ouGɤo"C8|ChpEN.-?FBM_-'ň[kqnQԪ&[mY \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x448_v6.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x448_v6.pgp new file mode 100644 index 00000000..a71f3a73 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/PublicKeyPacketFuzzTestInputs/x448_v6.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519Legacy_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519Legacy_v4.key.pgp new file mode 100644 index 00000000..4a8fecd6 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519Legacy_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519_v4.key.pgp new file mode 100644 index 00000000..5e4a6396 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519_v6.key.pgp new file mode 100644 index 00000000..201a1c6b Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed25519_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed448_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed448_v4.key.pgp new file mode 100644 index 00000000..738ca3a1 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed448_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed448_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed448_v6.key.pgp new file mode 100644 index 00000000..05677c5a Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/ed448_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDH_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDH_v4.key.pgp new file mode 100644 index 00000000..1473e093 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDH_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDH_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDH_v6.key.pgp new file mode 100644 index 00000000..359c0a71 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDH_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDSA_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDSA_v4.key.pgp new file mode 100644 index 00000000..60621c62 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDSA_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDSA_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDSA_v6.key.pgp new file mode 100644 index 00000000..41a05262 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP256ECDSA_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDH_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDH_v4.key.pgp new file mode 100644 index 00000000..d0c46bc1 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDH_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDH_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDH_v6.key.pgp new file mode 100644 index 00000000..6ad434aa Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDH_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDSA_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDSA_v4.key.pgp new file mode 100644 index 00000000..7268e0ab Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDSA_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDSA_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDSA_v6.key.pgp new file mode 100644 index 00000000..665e65bb Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP384ECDSA_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDH_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDH_v4.key.pgp new file mode 100644 index 00000000..bd723fb7 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDH_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDH_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDH_v6.key.pgp new file mode 100644 index 00000000..e8a45805 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDH_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDSA_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDSA_v4.key.pgp new file mode 100644 index 00000000..de6515e8 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDSA_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDSA_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDSA_v6.key.pgp new file mode 100644 index 00000000..d685854e Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/nistP521ECDSA_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-28f2677523ed3043117ea46f27bf8b9b990c4e3a b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-28f2677523ed3043117ea46f27bf8b9b990c4e3a new file mode 100644 index 00000000..7a5d881c Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-28f2677523ed3043117ea46f27bf8b9b990c4e3a differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-4fbc082c98d268e4495e09d40912053a9c08b896 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-4fbc082c98d268e4495e09d40912053a9c08b896 new file mode 100644 index 00000000..94423c97 --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-4fbc082c98d268e4495e09d40912053a9c08b896 @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-56fb7129479f381d7cfd4598b540d3b753730ffc b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-56fb7129479f381d7cfd4598b540d3b753730ffc new file mode 100644 index 00000000..307e2ad8 --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-56fb7129479f381d7cfd4598b540d3b753730ffc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-6c04193b9d8991eec00fdef05735bfed376c0f6c b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-6c04193b9d8991eec00fdef05735bfed376c0f6c new file mode 100644 index 00000000..eb9f0fc5 --- /dev/null +++ b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-6c04193b9d8991eec00fdef05735bfed376c0f6c @@ -0,0 +1 @@ +:: \ No newline at end of file diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-8eb418bf4e4721c572e13bd11313a1d29de247a9 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-8eb418bf4e4721c572e13bd11313a1d29de247a9 new file mode 100644 index 00000000..8d55b6be Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-8eb418bf4e4721c572e13bd11313a1d29de247a9 differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-e3411c8a800f1d8d38cd62027ff5c51f51ab5224 b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-e3411c8a800f1d8d38cd62027ff5c51f51ab5224 new file mode 100644 index 00000000..b5376825 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/parseSecretKeyPacket/crash-e3411c8a800f1d8d38cd62027ff5c51f51ab5224 differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa2048_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa2048_v4.key.pgp new file mode 100644 index 00000000..2dbb1579 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa2048_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa2048_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa2048_v6.key.pgp new file mode 100644 index 00000000..11a999d3 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa2048_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa4096_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa4096_v4.key.pgp new file mode 100644 index 00000000..9b56e3e9 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa4096_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa4096_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa4096_v6.key.pgp new file mode 100644 index 00000000..e9ae6fe3 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/rsa4096_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519Legacy_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519Legacy_v4.key.pgp new file mode 100644 index 00000000..582aed09 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519Legacy_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519_v4.key.pgp new file mode 100644 index 00000000..c13d1b2b Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519_v6.key.pgp new file mode 100644 index 00000000..04cc1392 Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x25519_v6.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x448_v4.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x448_v4.key.pgp new file mode 100644 index 00000000..44f5c11a Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x448_v4.key.pgp differ diff --git a/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x448_v6.key.pgp b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x448_v6.key.pgp new file mode 100644 index 00000000..e9d7d88c Binary files /dev/null and b/pgpainless-sop/src/test/resources/org/pgpainless/sop/fuzzing/SecretKeyPacketFuzzTestInputs/x448_v6.key.pgp differ