HADOOP-10713. Refactor CryptoCodec#generateSecureRandom to take a byte[]. (wang via yliu)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/fs-encryption@1604537 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yi Liu 2014-06-22 07:20:47 +00:00
parent 97583dbb0a
commit f43f0999d9
4 changed files with 14 additions and 10 deletions

View File

@ -25,6 +25,9 @@ fs-encryption (Unreleased)
HADOOP-10662. NullPointerException in CryptoInputStream while wrapped
stream is not ByteBufferReadable. Add tests using normal stream. (Yi Liu)
HADOOP-10713. Refactor CryptoCodec#generateSecureRandom to take a byte[].
(wang via yliu)
OPTIMIZATIONS
BUG FIXES

View File

@ -81,9 +81,10 @@ public abstract class CryptoCodec implements Configurable {
public abstract void calculateIV(byte[] initIV, long counter, byte[] IV);
/**
* Generate secure random.
* @param bytes length of the secure random
* @return byte[] the secure random
* Generate a number of secure, random bytes suitable for cryptographic use.
* This method needs to be thread-safe.
*
* @param bytes byte array to populate with random data
*/
public abstract byte[] generateSecureRandom(int bytes);
public abstract void generateSecureRandom(byte[] bytes);
}

View File

@ -79,10 +79,8 @@ public class JCEAESCTRCryptoCodec extends AESCTRCryptoCodec {
}
@Override
public byte[] generateSecureRandom(int bytes) {
final byte[] data = new byte[bytes];
random.nextBytes(data);
return data;
public void generateSecureRandom(byte[] bytes) {
random.nextBytes(bytes);
}
private static class JCEAESCTRCipher implements Encryptor, Decryptor {

View File

@ -49,8 +49,10 @@ public class TestCryptoCodec {
}
private void checkSecureRandom(int len) {
byte[] rand = codec.generateSecureRandom(len);
byte[] rand1 = codec.generateSecureRandom(len);
byte[] rand = new byte[len];
byte[] rand1 = new byte[len];
codec.generateSecureRandom(rand);
codec.generateSecureRandom(rand1);
Assert.assertEquals(len, rand.length);
Assert.assertEquals(len, rand1.length);