Skip to content

Commit bdb43ae

Browse files
committed
Added getEmbeddedSignatures()
1 parent f2520ff commit bdb43ae

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

pg/src/main/java/org/bouncycastle/bcpg/SignaturePacket.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,4 +520,12 @@ private void setCreationTime()
520520
}
521521
}
522522
}
523+
524+
public static SignaturePacket fromByteArray(byte[] data)
525+
throws IOException
526+
{
527+
BCPGInputStream in = new BCPGInputStream(new ByteArrayInputStream(data));
528+
529+
return new SignaturePacket(in);
530+
}
523531
}

pg/src/main/java/org/bouncycastle/openpgp/PGPSignatureSubpacketVector.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.bouncycastle.openpgp;
22

3+
import java.io.IOException;
34
import java.util.ArrayList;
45
import java.util.Date;
56
import java.util.List;
67

8+
import org.bouncycastle.bcpg.SignaturePacket;
79
import org.bouncycastle.bcpg.SignatureSubpacket;
810
import org.bouncycastle.bcpg.SignatureSubpacketTags;
911
import org.bouncycastle.bcpg.sig.Features;
@@ -77,7 +79,28 @@ public SignatureSubpacket[] getSubpackets(
7779
return (SignatureSubpacket[])list.toArray(new SignatureSubpacket[]{});
7880
}
7981

80-
public NotationData[] getNotationDataOccurences()
82+
public PGPSignatureList getEmbeddedSignatures()
83+
throws PGPException
84+
{
85+
SignatureSubpacket[] sigs = getSubpackets(SignatureSubpacketTags.EMBEDDED_SIGNATURE);
86+
ArrayList l = new ArrayList();
87+
88+
for (int i = 0; i < sigs.length; i++)
89+
{
90+
try
91+
{
92+
l.add(new PGPSignature(SignaturePacket.fromByteArray(sigs[i].getData())));
93+
}
94+
catch (IOException e)
95+
{
96+
throw new PGPException("Unable to parse signature packet: " + e.getMessage(), e);
97+
}
98+
}
99+
100+
return new PGPSignatureList((PGPSignature[])l.toArray(new PGPSignature[l.size()]));
101+
}
102+
103+
public NotationData[] getNotationDataOccurrences()
81104
{
82105
SignatureSubpacket[] notations = getSubpackets(SignatureSubpacketTags.NOTATION_DATA);
83106
NotationData[] vals = new NotationData[notations.length];
@@ -89,6 +112,14 @@ public NotationData[] getNotationDataOccurences()
89112
return vals;
90113
}
91114

115+
/**
116+
* @deprecated use getNotationDataOccurrences()
117+
*/
118+
public NotationData[] getNotationDataOccurences()
119+
{
120+
return getNotationDataOccurrences();
121+
}
122+
92123
public long getIssuerKeyID()
93124
{
94125
SignatureSubpacket p = this.getSubpacket(SignatureSubpacketTags.ISSUER_KEY_ID);

0 commit comments

Comments
 (0)