| package org.bouncycastle.crypto.test; |
| |
| import java.security.SecureRandom; |
| |
| import org.bouncycastle.crypto.util.JournalingSecureRandom; |
| import org.bouncycastle.util.Arrays; |
| import org.bouncycastle.util.test.SimpleTest; |
| |
| public class JournalingSecureRandomTest |
| extends SimpleTest |
| { |
| public String getName() |
| { |
| return "JournalingSecureRandom"; |
| } |
| |
| public void performTest() |
| throws Exception |
| { |
| SecureRandom rand = new SecureRandom(); |
| |
| JournalingSecureRandom jRandom1 = new JournalingSecureRandom(rand); |
| |
| byte[] base = new byte[1024]; |
| |
| jRandom1.nextBytes(base); |
| |
| byte[] transcript = jRandom1.getTranscript(); |
| |
| byte[] block = new byte[512]; |
| |
| JournalingSecureRandom jRandom2 = new JournalingSecureRandom(transcript, rand); |
| |
| jRandom2.nextBytes(block); |
| |
| areEqual(Arrays.copyOfRange(base, 0, 512), block); |
| |
| jRandom2.nextBytes(block); |
| |
| areEqual(Arrays.copyOfRange(base, 512, 1024), block); |
| |
| jRandom2.nextBytes(block); |
| |
| isTrue(!Arrays.areEqual(Arrays.copyOfRange(base, 0, 512), block)); |
| |
| } |
| |
| public static void main( |
| String[] args) |
| { |
| runTest(new JournalingSecureRandomTest()); |
| } |
| } |