summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/satellitedaemon/util/RndStringEncrypt.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/satellitedaemon/util/RndStringEncrypt.java')
-rw-r--r--src/main/java/org/openslx/satellitedaemon/util/RndStringEncrypt.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/satellitedaemon/util/RndStringEncrypt.java b/src/main/java/org/openslx/satellitedaemon/util/RndStringEncrypt.java
new file mode 100644
index 0000000..c99a768
--- /dev/null
+++ b/src/main/java/org/openslx/satellitedaemon/util/RndStringEncrypt.java
@@ -0,0 +1,50 @@
+package org.openslx.satellitedaemon.util;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.security.InvalidKeyException;
+import java.security.Key;
+import java.security.KeyPair;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.Signature;
+import java.security.SignatureException;
+import java.security.UnrecoverableKeyException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+
+public class RndStringEncrypt {
+
+ KeyPair pair;
+
+ public RndStringEncrypt(String alias, String password, String file)
+ throws NoSuchAlgorithmException, CertificateException,
+ FileNotFoundException, IOException, KeyStoreException,
+ UnrecoverableKeyException {
+ KeyStore keystore = KeyStore.getInstance("JKS");
+ keystore.load(new FileInputStream(new File(file)),
+ password.toCharArray());
+ Certificate cert = null;
+
+ Key key = keystore.getKey(alias, password.toCharArray());
+
+ if (key instanceof PrivateKey) {
+ cert = keystore.getCertificate(alias);
+ PublicKey publicKey = cert.getPublicKey();
+ pair = new KeyPair(publicKey, (PrivateKey) key);
+ }
+ }
+
+ public byte[] encryptRndString(String message) throws NoSuchAlgorithmException,
+ InvalidKeyException, SignatureException {
+ Signature signature = Signature.getInstance("SHA256WITHRSA");
+ signature.initSign(pair.getPrivate());
+ signature.update(message.getBytes());
+ return signature.sign();
+ }
+}