aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/common/ec
diff options
context:
space:
mode:
authorJ08nY2018-08-10 11:28:55 +0200
committerJ08nY2018-08-10 11:28:55 +0200
commit3cd9747a4081c5448cfd071ce64433a28dd32d55 (patch)
treec4133ce567896949bc9e51259b240c0425f2153f /src/cz/crcs/ectester/common/ec
parent5c0cfd8398282c940407516f4021882b9ed98571 (diff)
downloadECTester-3cd9747a4081c5448cfd071ce64433a28dd32d55.tar.gz
ECTester-3cd9747a4081c5448cfd071ce64433a28dd32d55.tar.zst
ECTester-3cd9747a4081c5448cfd071ce64433a28dd32d55.zip
Add utility methods for converting EC_Params to JCE EC objects.
Diffstat (limited to 'src/cz/crcs/ectester/common/ec')
-rw-r--r--src/cz/crcs/ectester/common/ec/RawECPrivateKey.java45
-rw-r--r--src/cz/crcs/ectester/common/ec/RawECPublicKey.java45
2 files changed, 90 insertions, 0 deletions
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;
+ }
+}