summary refs log tree commit diff
path: root/crypto/src/openpgp/PgpSignatureSubpacketVector.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/openpgp/PgpSignatureSubpacketVector.cs')
-rw-r--r--crypto/src/openpgp/PgpSignatureSubpacketVector.cs22
1 files changed, 21 insertions, 1 deletions
diff --git a/crypto/src/openpgp/PgpSignatureSubpacketVector.cs b/crypto/src/openpgp/PgpSignatureSubpacketVector.cs
index 1d3d75941..3dc96ea90 100644
--- a/crypto/src/openpgp/PgpSignatureSubpacketVector.cs
+++ b/crypto/src/openpgp/PgpSignatureSubpacketVector.cs
@@ -1,6 +1,6 @@
 using System;
 using System.Collections;
-
+using System.IO;
 using Org.BouncyCastle.Bcpg.Sig;
 using Org.BouncyCastle.Utilities;
 
@@ -189,6 +189,26 @@ namespace Org.BouncyCastle.Bcpg.OpenPgp
 			return false;
 		}
 
+        public PgpSignatureList GetEmbeddedSignatures()
+        {
+            SignatureSubpacket [] sigs = GetSubpackets(SignatureSubpacketTag.EmbeddedSignature);
+            PgpSignature[] l = new PgpSignature[sigs.Length];
+   
+            for (int i = 0; i < sigs.Length; i++)
+            {
+                try
+                {
+                    l[i] = new PgpSignature(SignaturePacket.FromByteArray(sigs[i].GetData()));
+                }
+                catch (IOException e)
+                {
+                    throw new PgpException("Unable to parse signature packet: " + e.Message, e);
+                }
+            }
+
+            return new PgpSignatureList(l);
+        }
+
 		public SignatureSubpacketTag[] GetCriticalTags()
         {
             int count = 0;