summary refs log tree commit diff
path: root/crypto/src/openpgp/PgpSignature.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--crypto/src/openpgp/PgpSignature.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/crypto/src/openpgp/PgpSignature.cs b/crypto/src/openpgp/PgpSignature.cs
index c8c541bef..fb6244725 100644
--- a/crypto/src/openpgp/PgpSignature.cs
+++ b/crypto/src/openpgp/PgpSignature.cs
@@ -12,6 +12,14 @@ namespace Org.BouncyCastle.Bcpg.OpenPgp
 	/// <remarks>A PGP signature object.</remarks>
     public class PgpSignature
     {
+        private static SignaturePacket Cast(Packet packet)
+        {
+            if (!(packet is SignaturePacket))
+                throw new IOException("unexpected packet in stream: " + packet);
+
+            return (SignaturePacket)packet;
+        }
+
         public const int BinaryDocument = 0x00;
         public const int CanonicalTextDocument = 0x01;
         public const int StandAlone = 0x02;
@@ -38,7 +46,7 @@ namespace Org.BouncyCastle.Bcpg.OpenPgp
 
 		internal PgpSignature(
             BcpgInputStream bcpgInput)
-            : this((SignaturePacket)bcpgInput.ReadPacket())
+            : this(Cast(bcpgInput.ReadPacket()))
         {
         }