re-enable getEmbeddedSignatures

This commit is contained in:
Ashley Hughes 2014-01-27 23:31:19 +00:00
parent e094d295ea
commit 4071ce8550
3 changed files with 36 additions and 10 deletions

View File

@ -973,16 +973,16 @@ public class PgpOperation {
boolean primkeyBinding_isok = false;
JcaPGPContentVerifierBuilderProvider contentVerifierBuilderProvider = new JcaPGPContentVerifierBuilderProvider()
.setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME);
PGPSignatureList eSigList = null;
PGPSignatureList eSigList;
if (Pkts.hasSubpacket(SignatureSubpacketTags.EMBEDDED_SIGNATURE)) {
// try {
// eSigList = Pkts.getEmbeddedSignatures();
// } catch (IOException e) {
// return false;
// } catch (PGPException e) {
// return false;
// }
try {
eSigList = Pkts.getEmbeddedSignatures();
} catch (IOException e) {
return false;
} catch (PGPException e) {
return false;
}
for (int j = 0; j < eSigList.size(); ++j) {
PGPSignature emSig = eSigList.get(j);
if (emSig.getSignatureType() == PGPSignature.PRIMARYKEY_BINDING) {

View File

@ -27,7 +27,7 @@ public class SignaturePacket
private SignatureSubpacket[] unhashedData;
private byte[] signatureEncoding;
SignaturePacket(
public SignaturePacket(
BCPGInputStream in)
throws IOException
{

View File

@ -1,9 +1,13 @@
package org.spongycastle.openpgp;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.spongycastle.bcpg.BCPGInputStream;
import org.spongycastle.bcpg.SignaturePacket;
import org.spongycastle.bcpg.SignatureSubpacket;
import org.spongycastle.bcpg.SignatureSubpacketTags;
import org.spongycastle.bcpg.sig.Features;
@ -16,6 +20,7 @@ import org.spongycastle.bcpg.sig.PrimaryUserID;
import org.spongycastle.bcpg.sig.SignatureCreationTime;
import org.spongycastle.bcpg.sig.SignatureExpirationTime;
import org.spongycastle.bcpg.sig.SignerUserID;
import org.spongycastle.openpgp.PGPException;
/**
* Container for a list of signature subpackets.
@ -89,6 +94,27 @@ public class PGPSignatureSubpacketVector
return vals;
}
public PGPSignatureList getEmbeddedSignatures() throws IOException, PGPException
{
SignatureSubpacket[] sigs = getSubpackets(SignatureSubpacketTags.EMBEDDED_SIGNATURE);
ArrayList l = new ArrayList();
for (int i = 0; i < sigs.length; i++) {
byte[] data = sigs[i].getData();
PGPSignature tmpSig = null;
BCPGInputStream in = new BCPGInputStream(new ByteArrayInputStream(data));
try {
tmpSig = new PGPSignature(new SignaturePacket(in));
} catch (IOException e) {
tmpSig = null;
} catch (PGPException e) {
tmpSig = null;
}
if (tmpSig != null)
l.add(tmpSig);
}
return new PGPSignatureList((PGPSignature[])l.toArray(new PGPSignature[l.size()]));
}
public long getIssuerKeyID()
{
SignatureSubpacket p = this.getSubpacket(SignatureSubpacketTags.ISSUER_KEY_ID);