From ba48b2dcc2fedf1e8c31f4fb02cd24736355ccae Mon Sep 17 00:00:00 2001 From: mattosaurus Date: Mon, 11 Jul 2022 11:54:37 +0100 Subject: [PATCH] Throw error if signed message invalid --- PgpCore.Tests/UnitTests/UnitTestsAsync.cs | 1 - PgpCore.Tests/UnitTests/UnitTestsSync.cs | 1 - PgpCore/PGP.cs | 65 ++++++++--------------- 3 files changed, 21 insertions(+), 46 deletions(-) diff --git a/PgpCore.Tests/UnitTests/UnitTestsAsync.cs b/PgpCore.Tests/UnitTests/UnitTestsAsync.cs index 85a206b..2c3a165 100644 --- a/PgpCore.Tests/UnitTests/UnitTestsAsync.cs +++ b/PgpCore.Tests/UnitTests/UnitTestsAsync.cs @@ -799,7 +799,6 @@ public async Task VerifyAsync_DoNotVerifySignedFileWithBadContent(KeyType keyTyp // Assert var ex = await Assert.ThrowsAsync(action); - Assert.Equal("invalid armor", ex.Message); // Teardown testFactory.Teardown(); diff --git a/PgpCore.Tests/UnitTests/UnitTestsSync.cs b/PgpCore.Tests/UnitTests/UnitTestsSync.cs index dee0a6a..88c47ec 100644 --- a/PgpCore.Tests/UnitTests/UnitTestsSync.cs +++ b/PgpCore.Tests/UnitTests/UnitTestsSync.cs @@ -749,7 +749,6 @@ public void Verify_DoNotVerifySignedFileWithBadContent(KeyType keyType) // Assert var ex = Assert.Throws(action); - Assert.Equal("invalid armor", ex.Message); // Teardown testFactory.Teardown(); diff --git a/PgpCore/PGP.cs b/PgpCore/PGP.cs index e8771c9..82fc822 100644 --- a/PgpCore/PGP.cs +++ b/PgpCore/PGP.cs @@ -5480,7 +5480,6 @@ private Task VerifyAsync(Stream inputStream) PgpLiteralData pgpLiteralData = (PgpLiteralData)factory.NextPgpObject(); Stream pgpLiteralStream = pgpLiteralData.GetInputStream(); - // Verify against public key ID and that of any sub keys var keyIdToVerify = pgpOnePassSignature.KeyId; if (Utilities.FindPublicKey(keyIdToVerify, EncryptionKeys.VerificationKeys, @@ -5494,25 +5493,18 @@ private Task VerifyAsync(Stream inputStream) pgpOnePassSignature.Update((byte)ch); } - try + PgpSignatureList pgpSignatureList = (PgpSignatureList)factory.NextPgpObject(); + + for (int i = 0; i < pgpSignatureList.Count; i++) { - PgpSignatureList pgpSignatureList = (PgpSignatureList)factory.NextPgpObject(); + PgpSignature pgpSignature = pgpSignatureList[i]; - for (int i = 0; i < pgpSignatureList.Count; i++) + if (pgpOnePassSignature.Verify(pgpSignature)) { - PgpSignature pgpSignature = pgpSignatureList[i]; - - if (pgpOnePassSignature.Verify(pgpSignature)) - { - verified = true; - break; - } + verified = true; + break; } } - catch - { - verified = false; - } } } else if (pgpObject is PgpSignatureList signatureList) @@ -5591,26 +5583,18 @@ private bool Verify(Stream inputStream) pgpOnePassSignature.Update((byte)ch); } - try + PgpSignatureList pgpSignatureList = (PgpSignatureList)factory.NextPgpObject(); + + for (int i = 0; i < pgpSignatureList.Count; i++) { - PgpSignatureList pgpSignatureList = (PgpSignatureList)factory.NextPgpObject(); + PgpSignature pgpSignature = pgpSignatureList[i]; - for (int i = 0; i < pgpSignatureList.Count; i++) + if (pgpOnePassSignature.Verify(pgpSignature)) { - PgpSignature pgpSignature = pgpSignatureList[i]; - - if (pgpOnePassSignature.Verify(pgpSignature)) - { - verified = true; - break; - } + verified = true; + break; } } - catch - { - verified = false; - break; - } } else { @@ -5650,25 +5634,18 @@ private bool Verify(Stream inputStream) pgpOnePassSignature.Update((byte)ch); } - try + PgpSignatureList pgpSignatureList = (PgpSignatureList)factory.NextPgpObject(); + + for (int i = 0; i < pgpSignatureList.Count; i++) { - PgpSignatureList pgpSignatureList = (PgpSignatureList)factory.NextPgpObject(); + PgpSignature pgpSignature = pgpSignatureList[i]; - for (int i = 0; i < pgpSignatureList.Count; i++) + if (pgpOnePassSignature.Verify(pgpSignature)) { - PgpSignature pgpSignature = pgpSignatureList[i]; - - if (pgpOnePassSignature.Verify(pgpSignature)) - { - verified = true; - break; - } + verified = true; + break; } } - catch - { - verified = false; - } } } else if (pgpObject is PgpSignatureList signatureList)