From 3cd9747a4081c5448cfd071ce64433a28dd32d55 Mon Sep 17 00:00:00 2001 From: J08nY Date: Fri, 10 Aug 2018 11:28:55 +0200 Subject: Add utility methods for converting EC_Params to JCE EC objects. --- .../crcs/ectester/common/ec/RawECPrivateKey.java | 45 ++++++++++++++++++++++ src/cz/crcs/ectester/common/ec/RawECPublicKey.java | 45 ++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 src/cz/crcs/ectester/common/ec/RawECPrivateKey.java create mode 100644 src/cz/crcs/ectester/common/ec/RawECPublicKey.java (limited to 'src/cz/crcs/ectester/common/ec') diff --git a/src/cz/crcs/ectester/common/ec/RawECPrivateKey.java b/src/cz/crcs/ectester/common/ec/RawECPrivateKey.java new file mode 100644 index 0000000..f4556a0 --- /dev/null +++ b/src/cz/crcs/ectester/common/ec/RawECPrivateKey.java @@ -0,0 +1,45 @@ +package cz.crcs.ectester.common.ec; + +import cz.crcs.ectester.common.util.ECUtil; + +import java.math.BigInteger; +import java.security.interfaces.ECPrivateKey; +import java.security.spec.ECParameterSpec; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class RawECPrivateKey implements ECPrivateKey { + private BigInteger scalar; + private ECParameterSpec params; + + public RawECPrivateKey(BigInteger scalar, ECParameterSpec params) { + this.scalar = scalar; + this.params = params; + } + + @Override + public BigInteger getS() { + return scalar; + } + + @Override + public String getAlgorithm() { + return "EC"; + } + + @Override + public String getFormat() { + return "Raw"; + } + + @Override + public byte[] getEncoded() { + return ECUtil.toByteArray(scalar, params.getOrder().bitLength()); + } + + @Override + public ECParameterSpec getParams() { + return params; + } +} diff --git a/src/cz/crcs/ectester/common/ec/RawECPublicKey.java b/src/cz/crcs/ectester/common/ec/RawECPublicKey.java new file mode 100644 index 0000000..f09feef --- /dev/null +++ b/src/cz/crcs/ectester/common/ec/RawECPublicKey.java @@ -0,0 +1,45 @@ +package cz.crcs.ectester.common.ec; + +import cz.crcs.ectester.common.util.ECUtil; + +import java.security.interfaces.ECPublicKey; +import java.security.spec.ECParameterSpec; +import java.security.spec.ECPoint; + +/** + * @author Jan Jancar johny@neuromancer.sk + */ +public class RawECPublicKey implements ECPublicKey { + private ECPoint point; + private ECParameterSpec params; + + public RawECPublicKey(ECPoint point, ECParameterSpec params) { + this.point = point; + this.params = params; + } + + @Override + public ECPoint getW() { + return point; + } + + @Override + public String getAlgorithm() { + return "EC"; + } + + @Override + public String getFormat() { + return "Raw"; + } + + @Override + public byte[] getEncoded() { + return ECUtil.toX962Uncompressed(point, params); + } + + @Override + public ECParameterSpec getParams() { + return params; + } +} -- cgit v1.2.3-70-g09d2