Implement SecretKey and IV generation

This commit is contained in:
Tobias Eidelpes 2020-12-23 20:55:25 +01:00
parent 93157eb9de
commit 779fb6dc43

View File

@ -14,10 +14,8 @@ import java.util.logging.Logger;
import dslab.ComponentFactory; import dslab.ComponentFactory;
import dslab.util.Config; import dslab.util.Config;
import javax.crypto.BadPaddingException; import javax.crypto.*;
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
public class MessageClient implements IMessageClient, Runnable { public class MessageClient implements IMessageClient, Runnable {
private static final Logger logger = Logger.getLogger(MessageClient.class.getName()); private static final Logger logger = Logger.getLogger(MessageClient.class.getName());
@ -118,7 +116,20 @@ public class MessageClient implements IMessageClient, Runnable {
} }
} }
public String generateChallenge(PublicKey serverPublicKey) { private SecretKey generateSecretKey() throws NoSuchAlgorithmException {
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(256);
return keyGenerator.generateKey();
}
private byte[] generateIv() {
// Size of IV corresponds to AES block size (=128bits=16bytes)
byte[] iv = new byte[16];
new SecureRandom().nextBytes(iv);
return new IvParameterSpec(iv).getIV();
}
private String generateChallenge(PublicKey serverPublicKey) {
SecureRandom secureRandom = new SecureRandom(); SecureRandom secureRandom = new SecureRandom();
try { try {
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");