diff options
| author | J08nY | 2024-06-14 12:44:47 +0200 |
|---|---|---|
| committer | J08nY | 2024-06-14 12:44:47 +0200 |
| commit | 2ecf1379142f580730cfaf7ceaca18aeb7af9b40 (patch) | |
| tree | 46ca5ed0ca131bd16e5bc73903f39c416fb255a6 /common | |
| parent | 0bc459385a67f0a0f09abda7c1c768fc14e20a5f (diff) | |
| download | ECTester-2ecf1379142f580730cfaf7ceaca18aeb7af9b40.tar.gz ECTester-2ecf1379142f580730cfaf7ceaca18aeb7af9b40.tar.zst ECTester-2ecf1379142f580730cfaf7ceaca18aeb7af9b40.zip | |
Diffstat (limited to 'common')
| -rw-r--r-- | common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java b/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java index 54c5131..907d75f 100644 --- a/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java +++ b/common/src/main/java/cz/crcs/ectester/common/util/ECUtil.java @@ -3,6 +3,9 @@ package cz.crcs.ectester.common.util; import cz.crcs.ectester.common.ec.*; import cz.crcs.ectester.data.EC_Store; import org.bouncycastle.asn1.ASN1OctetString; +import org.bouncycastle.asn1.ASN1Integer; +import org.bouncycastle.asn1.ASN1Primitive; +import org.bouncycastle.asn1.ASN1Sequence; import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.signers.PlainDSAEncoding; @@ -371,14 +374,18 @@ public class ECUtil { } // Parse signature - BigInteger[] sigPair; + BigInteger r; + BigInteger s; if (sigType.contains("CVC") || sigType.contains("PLAIN")) { - sigPair = PlainDSAEncoding.INSTANCE.decode(n, signature); + BigInteger[] sigPair = PlainDSAEncoding.INSTANCE.decode(n, signature); + r = sigPair[0]; + s = sigPair[1]; } else { - sigPair = StandardDSAEncoding.INSTANCE.decode(n, signature); + ASN1Sequence seq = (ASN1Sequence)ASN1Primitive.fromByteArray(signature); + r = ((ASN1Integer)seq.getObjectAt(0)).getValue(); + s = ((ASN1Integer)seq.getObjectAt(1)).getValue(); } - BigInteger r = sigPair[0]; - BigInteger s = sigPair[1]; + BigInteger rd = privkey.multiply(r).mod(n); BigInteger hrd = hashInt.add(rd).mod(n); |
