diff options
Diffstat (limited to 'src/main/java/org/openslx/satellitedaemon/util/RndStringEncrypt.java')
-rw-r--r-- | src/main/java/org/openslx/satellitedaemon/util/RndStringEncrypt.java | 50 |
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(); + } +} |