Made secret keys erasable from memory.

This commit is contained in:
akwizgran
2011-11-15 14:43:06 +00:00
parent 23be7fd876
commit f41d48eb9f
17 changed files with 135 additions and 75 deletions

View File

@@ -6,26 +6,23 @@ import java.security.Signature;
import javax.crypto.Cipher;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
public interface CryptoComponent {
SecretKey deriveIncomingFrameKey(byte[] secret);
ErasableKey deriveIncomingFrameKey(byte[] secret);
SecretKey deriveIncomingIvKey(byte[] secret);
ErasableKey deriveIncomingIvKey(byte[] secret);
SecretKey deriveIncomingMacKey(byte[] secret);
ErasableKey deriveIncomingMacKey(byte[] secret);
SecretKey deriveOutgoingFrameKey(byte[] secret);
ErasableKey deriveOutgoingFrameKey(byte[] secret);
SecretKey deriveOutgoingIvKey(byte[] secret);
ErasableKey deriveOutgoingIvKey(byte[] secret);
SecretKey deriveOutgoingMacKey(byte[] secret);
ErasableKey deriveOutgoingMacKey(byte[] secret);
KeyPair generateKeyPair();
SecretKey generateSecretKey();
Cipher getFrameCipher();
Cipher getIvCipher();
@@ -39,4 +36,6 @@ public interface CryptoComponent {
SecureRandom getSecureRandom();
Signature getSignature();
ErasableKey generateTestKey();
}

View File

@@ -0,0 +1,9 @@
package net.sf.briar.api.crypto;
import javax.crypto.SecretKey;
public interface ErasableKey extends SecretKey {
/** Erases the key from memory. */
void erase();
}