Package com.iizix.server.client
Class DHKey
- java.lang.Object
- com.iizix.server.client.DHKey
public class DHKey extends java.lang.ObjectClass 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 voidassignClientPublicKey(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.voidencrypt(byte[] data, SendTransaction sendTrans)Encrypts and appends the bytes to the SendTransaction.static javax.crypto.spec.IvParameterSpecgetIvParameterSpec()Gets the IV parameter.java.lang.StringgetServerPublicKey()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.ExceptionEncrypts 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.UnsupportedEncodingExceptionDecrypts 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.InvalidAlgorithmParameterExceptionjava.security.InvalidKeyExceptionjavax.crypto.NoSuchPaddingExceptionjava.security.NoSuchAlgorithmExceptionjavax.crypto.BadPaddingExceptionjavax.crypto.IllegalBlockSizeExceptionjava.io.UnsupportedEncodingException