Skip to content

Commit f38e1f6

Browse files
committed
Properly copy salt when creating new instances of signatures
1 parent cf0e7c4 commit f38e1f6

File tree

1 file changed

+34
-14
lines changed

1 file changed

+34
-14
lines changed

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

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

10341034
SignatureSubpacket[] unhashed = (SignatureSubpacket[])merged.toArray(new SignatureSubpacket[0]);
1035-
return new PGPSignature(
1036-
new SignaturePacket(
1037-
sig1.getVersion(),
1038-
sig1.sigPck.hasNewPacketFormat(),
1039-
sig1.getSignatureType(),
1040-
sig1.getKeyID(),
1041-
sig1.getKeyAlgorithm(),
1042-
sig1.getHashAlgorithm(),
1043-
sig1.getHashedSubPackets().packets,
1044-
unhashed,
1045-
sig1.getDigestPrefix(),
1046-
sig1.sigPck.getSignature()
1047-
)
1048-
);
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+
}
10491069
}
10501070
}

0 commit comments

Comments
 (0)