diff options
| author | J08nY | 2019-03-28 11:10:14 +0100 |
|---|---|---|
| committer | J08nY | 2019-03-28 11:10:14 +0100 |
| commit | 6c4e5ccd3faeca4807937f8daeb5d8a489fa34c7 (patch) | |
| tree | 4aa2f6fc0b3950e17dc6349d95cc68684a12b0ca /src/cz/crcs | |
| parent | c56c88f4183703d6b91b05436cc73ade68d962db (diff) | |
| download | ECTester-6c4e5ccd3faeca4807937f8daeb5d8a489fa34c7.tar.gz ECTester-6c4e5ccd3faeca4807937f8daeb5d8a489fa34c7.tar.zst ECTester-6c4e5ccd3faeca4807937f8daeb5d8a489fa34c7.zip | |
Diffstat (limited to 'src/cz/crcs')
| -rw-r--r-- | src/cz/crcs/ectester/common/util/ECUtil.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/cz/crcs/ectester/common/util/ECUtil.java b/src/cz/crcs/ectester/common/util/ECUtil.java index d5e8006..ce50c21 100644 --- a/src/cz/crcs/ectester/common/util/ECUtil.java +++ b/src/cz/crcs/ectester/common/util/ECUtil.java @@ -3,12 +3,10 @@ package cz.crcs.ectester.common.util; import cz.crcs.ectester.applet.EC_Consts; import cz.crcs.ectester.common.ec.*; import cz.crcs.ectester.data.EC_Store; -import org.bouncycastle.asn1.ASN1Integer; -import org.bouncycastle.asn1.ASN1StreamParser; -import org.bouncycastle.asn1.DERSequence; -import org.bouncycastle.asn1.DERSequenceParser; +import org.bouncycastle.asn1.*; import org.bouncycastle.crypto.digests.SHA1Digest; +import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.math.BigInteger; @@ -347,8 +345,11 @@ public class ECUtil { return new KeyPair(pubkey, privkey); } - public static byte[] toDERSignature(byte[] r, byte[] s) { - return ByteUtil.concatenate(new byte[]{0x30, (byte) (r.length + s.length + 4), 0x02, (byte) r.length}, r, new byte[]{0x02, (byte) s.length}, s); + public static byte[] toDERSignature(byte[] r, byte[] s) throws IOException { + ASN1Integer rInt = new ASN1Integer(r); + ASN1Integer sInt = new ASN1Integer(s); + DERSequence seq = new DERSequence(new ASN1Encodable[]{rInt, sInt}); + return seq.getEncoded(); } public static BigInteger[] fromDERSignature(byte[] signature) throws IOException { @@ -385,8 +386,8 @@ public class ECUtil { BigInteger rd = privkey.multiply(r).mod(params.getOrder()); BigInteger hrd = hashInt.add(rd).mod(params.getOrder()); return s.modInverse(params.getOrder()).multiply(hrd).mod(params.getOrder()); - } catch (NoSuchAlgorithmException | IOException nsae) { - nsae.printStackTrace(); + } catch (NoSuchAlgorithmException | IOException | ArithmeticException ex) { + ex.printStackTrace(); return null; } } |
