| package org.bouncycastle.crypto.test; |
| |
| import org.bouncycastle.crypto.BlockCipher; |
| import org.bouncycastle.crypto.DataLengthException; |
| import org.bouncycastle.crypto.engines.NullEngine; |
| import org.bouncycastle.crypto.params.KeyParameter; |
| import org.bouncycastle.util.encoders.Hex; |
| import org.bouncycastle.util.test.SimpleTest; |
| |
| public class NullTest |
| extends CipherTest |
| { |
| static SimpleTest[] tests = |
| { |
| new BlockCipherVectorTest(0, new NullEngine(), |
| new KeyParameter(Hex.decode("00")), "00", "00") |
| }; |
| |
| NullTest() |
| { |
| super(tests, new NullEngine(), new KeyParameter(new byte[2])); |
| } |
| |
| public String getName() |
| { |
| return "Null"; |
| } |
| |
| public void performTest() |
| throws Exception |
| { |
| super.performTest(); |
| |
| BlockCipher engine = new NullEngine(); |
| |
| engine.init(true, null); |
| |
| byte[] buf = new byte[1]; |
| |
| engine.processBlock(buf, 0, buf, 0); |
| |
| if (buf[0] != 0) |
| { |
| fail("NullCipher changed data!"); |
| } |
| |
| byte[] shortBuf = new byte[0]; |
| |
| try |
| { |
| engine.processBlock(shortBuf, 0, buf, 0); |
| |
| fail("failed short input check"); |
| } |
| catch (DataLengthException e) |
| { |
| // expected |
| } |
| |
| try |
| { |
| engine.processBlock(buf, 0, shortBuf, 0); |
| |
| fail("failed short output check"); |
| } |
| catch (DataLengthException e) |
| { |
| // expected |
| } |
| } |
| |
| public static void main( |
| String[] args) |
| { |
| runTest(new NullTest()); |
| } |
| } |