summaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java
diff options
context:
space:
mode:
authorJ08nY2018-01-23 17:31:15 +0100
committerJ08nY2018-01-23 17:31:15 +0100
commitcb6c6b8b1274fe5a340c4317a4b015ea0ef15396 (patch)
tree864a54dcdf07da33cd139312c8b0ee693e1a0eff /src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java
parent6c46a27a52854aee24f7a37e74002bd6f4485723 (diff)
parentc581e39e539e6dadb49d9f83f563ab2b375f6e0b (diff)
downloadECTester-0.2.0.tar.gz
ECTester-0.2.0.tar.zst
ECTester-0.2.0.zip
Diffstat (limited to 'src/cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey.java')
-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);
+ }
+ }
+}