aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java
diff options
context:
space:
mode:
authorJ08nY2017-12-12 12:32:25 +0100
committerJ08nY2017-12-12 12:32:25 +0100
commit4dbc748a207bcee2c8fbe22566646b27a9f61dc0 (patch)
treefdf069ac9a25ff82f9509826425bd4796c514da0 /src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java
parente329190e496ecf847cfd7afa886ac08cacb2fc92 (diff)
parent9e8fbbc907f4157988ac425af4dce541f7e42328 (diff)
downloadECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.tar.gz
ECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.tar.zst
ECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.zip
Merge branch 'feature/standalone-lib-testing' into devel
Diffstat (limited to '')
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java b/src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java
new file mode 100644
index 0000000..22e5329
--- /dev/null
+++ b/src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java
@@ -0,0 +1,68 @@
+package cz.crcs.ectester.standalone.libs.jni;
+
+import org.bouncycastle.util.Arrays;
+
+import java.math.BigInteger;
+import java.security.interfaces.ECPrivateKey;
+import java.security.spec.ECParameterSpec;
+
+/**
+ * @author Jan Jancar johny@neuromancer.sk
+ */
+public abstract class NativeECPrivateKey implements ECPrivateKey {
+ private String algorithm;
+ private String format;
+
+ public NativeECPrivateKey(String algorithm, String format) {
+ this.algorithm = algorithm;
+ this.format = format;
+ }
+
+ @Override
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ @Override
+ public String getFormat() {
+ return format;
+ }
+
+ private static class Raw extends NativeECPrivateKey {
+ private byte[] keyData;
+ private ECParameterSpec params;
+
+ public Raw(byte[] keyData, ECParameterSpec params) {
+ super("EC", "raw");
+ this.keyData = keyData;
+ this.params = params;
+ }
+
+ @Override
+ public BigInteger getS() {
+ return new BigInteger(1, keyData);
+ }
+
+ @Override
+ public byte[] getEncoded() {
+ return Arrays.clone(keyData);
+ }
+
+ @Override
+ public ECParameterSpec getParams() {
+ return params;
+ }
+ }
+
+ public static class TomCrypt extends Raw {
+ public TomCrypt(byte[] keyData, ECParameterSpec params) {
+ super(keyData, params);
+ }
+ }
+
+ public static class Botan extends Raw {
+ public Botan(byte[] keyData, ECParameterSpec params) {
+ super(keyData, params);
+ }
+ }
+}