Skip to content

Commit 9ecf791

Browse files
vanitasvitaedghgit
authored andcommitted
Move proper SignaturePacket copying to dedicated method
1 parent b759770 commit 9ecf791

File tree

2 files changed

+38
-34
lines changed

2 files changed

+38
-34
lines changed

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.bouncycastle.bcpg.sig.IssuerFingerprint;
99
import org.bouncycastle.bcpg.sig.IssuerKeyID;
1010
import org.bouncycastle.bcpg.sig.SignatureCreationTime;
11+
import org.bouncycastle.openpgp.PGPSignatureSubpacketVector;
1112
import org.bouncycastle.util.Arrays;
1213
import org.bouncycastle.util.Pack;
1314
import org.bouncycastle.util.io.Streams;
@@ -446,6 +447,40 @@ public SignaturePacket(
446447
}
447448
}
448449

450+
public static SignaturePacket copyOfWith(SignaturePacket packet, SignatureSubpacket[] unhashedSubpackets)
451+
{
452+
if (packet.getVersion() == SignaturePacket.VERSION_6)
453+
{
454+
return new SignaturePacket(
455+
packet.getVersion(),
456+
packet.getSignatureType(),
457+
packet.getKeyID(),
458+
packet.getKeyAlgorithm(),
459+
packet.getHashAlgorithm(),
460+
packet.getHashedSubPackets(),
461+
unhashedSubpackets,
462+
packet.getFingerPrint(),
463+
packet.getSignatureBytes(),
464+
packet.getSalt()
465+
);
466+
}
467+
else
468+
{
469+
return new SignaturePacket(
470+
packet.getVersion(),
471+
packet.hasNewPacketFormat(),
472+
packet.getSignatureType(),
473+
packet.getKeyID(),
474+
packet.getKeyAlgorithm(),
475+
packet.getHashAlgorithm(),
476+
packet.getHashedSubPackets(),
477+
unhashedSubpackets,
478+
packet.getFingerPrint(),
479+
packet.getSignature()
480+
);
481+
}
482+
}
483+
449484
/**
450485
* get the version number
451486
*/

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

Lines changed: 3 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,39 +1032,8 @@ public static PGPSignature join(PGPSignature sig1, PGPSignature sig2)
10321032
}
10331033

10341034
SignatureSubpacket[] unhashed = (SignatureSubpacket[])merged.toArray(new SignatureSubpacket[0]);
1035-
if (sig1.getVersion() == SignaturePacket.VERSION_6)
1036-
{
1037-
return new PGPSignature(
1038-
new SignaturePacket(
1039-
sig1.getVersion(),
1040-
sig1.getSignatureType(),
1041-
sig1.getKeyID(),
1042-
sig1.getKeyAlgorithm(),
1043-
sig1.getHashAlgorithm(),
1044-
sig1.getHashedSubPackets().packets,
1045-
unhashed,
1046-
sig1.getDigestPrefix(),
1047-
sig1.sigPck.getSignatureBytes(),
1048-
sig1.getSalt()
1049-
)
1050-
);
1051-
}
1052-
else
1053-
{
1054-
return new PGPSignature(
1055-
new SignaturePacket(
1056-
sig1.getVersion(),
1057-
sig1.sigPck.hasNewPacketFormat(),
1058-
sig1.getSignatureType(),
1059-
sig1.getKeyID(),
1060-
sig1.getKeyAlgorithm(),
1061-
sig1.getHashAlgorithm(),
1062-
sig1.getHashedSubPackets().packets,
1063-
unhashed,
1064-
sig1.getDigestPrefix(),
1065-
sig1.sigPck.getSignature()
1066-
)
1067-
);
1068-
}
1035+
return new PGPSignature(
1036+
SignaturePacket.copyOfWith(sig1.sigPck, unhashed)
1037+
);
10691038
}
10701039
}

0 commit comments

Comments
 (0)