Package com.iizix.server.client
Class DHKey
- java.lang.Object
- com.iizix.server.client.DHKey
public class DHKey extends java.lang.Object
Class used to generate a 2048 bits key for password transport over unsecured HTTP transactions.- Author:
- Christopher Mindus
Constructor Summary
Constructors Constructor Description DHKey()
Constructs the instance creating the server's key only.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
assignClientPublicKey(java.lang.String publicKey)
Assigns the Client's public key.byte[]
decrypt(java.lang.String clientPublicKey, java.lang.String encryptedString)
Decrypts an encoded string from the client using the two public keys.void
encrypt(byte[] data, SendTransaction sendTrans)
Encrypts and appends the bytes to the SendTransaction.static javax.crypto.spec.IvParameterSpec
getIvParameterSpec()
Gets the IV parameter.java.lang.String
getServerPublicKey()
Gets the Server's public key.
Method Detail
getIvParameterSpec
public static javax.crypto.spec.IvParameterSpec getIvParameterSpec()
Gets the IV parameter.
assignClientPublicKey
public void assignClientPublicKey(java.lang.String publicKey)
Assigns the Client's public key.- Parameters:
publicKey
- The "Alice" public key as a hexadecimal number.- Throws:
java.lang.IllegalArgumentException
- If the public key is invalid.
getServerPublicKey
public java.lang.String getServerPublicKey()
Gets the Server's public key.- Returns:
- The server's public key as a hexadecimal number.
encrypt
public void encrypt(byte[] data, SendTransaction sendTrans) throws java.lang.Exception
Encrypts and appends the bytes to the SendTransaction.- Parameters:
data
- The data to encrypt.sendTrans
- The send transaction.- Throws:
java.lang.Exception
- For errors.
decrypt
public byte[] decrypt(java.lang.String clientPublicKey, java.lang.String encryptedString) throws java.security.InvalidKeyException, java.security.InvalidAlgorithmParameterException, java.security.NoSuchAlgorithmException, javax.crypto.NoSuchPaddingException, javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException, java.io.UnsupportedEncodingException
Decrypts an encoded string from the client using the two public keys.- Parameters:
clientPublicKey
- The client public key.encryptedString
- The encrypted string encoded as a Base 64 string.- Returns:
- The decrypted string.
- Throws:
java.security.InvalidAlgorithmParameterException
java.security.InvalidKeyException
javax.crypto.NoSuchPaddingException
java.security.NoSuchAlgorithmException
javax.crypto.BadPaddingException
javax.crypto.IllegalBlockSizeException
java.io.UnsupportedEncodingException