diff options
Diffstat (limited to 'core/src/test/java/org/bouncycastle/crypto/test/PaddingTest.java')
-rw-r--r-- | core/src/test/java/org/bouncycastle/crypto/test/PaddingTest.java | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/core/src/test/java/org/bouncycastle/crypto/test/PaddingTest.java b/core/src/test/java/org/bouncycastle/crypto/test/PaddingTest.java deleted file mode 100644 index c963b26e..00000000 --- a/core/src/test/java/org/bouncycastle/crypto/test/PaddingTest.java +++ /dev/null @@ -1,200 +0,0 @@ -package org.bouncycastle.crypto.test; - -import java.security.SecureRandom; - -import org.bouncycastle.crypto.engines.DESEngine; -import org.bouncycastle.crypto.paddings.BlockCipherPadding; -import org.bouncycastle.crypto.paddings.ISO10126d2Padding; -import org.bouncycastle.crypto.paddings.ISO7816d4Padding; -import org.bouncycastle.crypto.paddings.PKCS7Padding; -import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher; -import org.bouncycastle.crypto.paddings.TBCPadding; -import org.bouncycastle.crypto.paddings.X923Padding; -import org.bouncycastle.crypto.paddings.ZeroBytePadding; -import org.bouncycastle.crypto.params.KeyParameter; -import org.bouncycastle.crypto.InvalidCipherTextException; -import org.bouncycastle.util.encoders.Hex; -import org.bouncycastle.util.test.SimpleTest; - -/** - * General Padding tests. - */ -public class PaddingTest - extends SimpleTest -{ - public PaddingTest() - { - } - - private void blockCheck( - PaddedBufferedBlockCipher cipher, - BlockCipherPadding padding, - KeyParameter key, - byte[] data) - { - byte[] out = new byte[data.length + 8]; - byte[] dec = new byte[data.length]; - - try - { - cipher.init(true, key); - - int len = cipher.processBytes(data, 0, data.length, out, 0); - - len += cipher.doFinal(out, len); - - cipher.init(false, key); - - int decLen = cipher.processBytes(out, 0, len, dec, 0); - - decLen += cipher.doFinal(dec, decLen); - - if (!areEqual(data, dec)) - { - fail("failed to decrypt - i = " + data.length + ", padding = " + padding.getPaddingName()); - } - } - catch (Exception e) - { - fail("Exception - " + e.toString(), e); - } - } - - public void testPadding( - BlockCipherPadding padding, - SecureRandom rand, - byte[] ffVector, - byte[] ZeroVector) - { - PaddedBufferedBlockCipher cipher = new PaddedBufferedBlockCipher(new DESEngine(), padding); - KeyParameter key = new KeyParameter(Hex.decode("0011223344556677")); - - // - // ff test - // - byte[] data = { (byte)0xff, (byte)0xff, (byte)0xff, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0 }; - - if (ffVector != null) - { - padding.addPadding(data, 3); - - if (!areEqual(data, ffVector)) - { - fail("failed ff test for " + padding.getPaddingName()); - } - } - - // - // zero test - // - if (ZeroVector != null) - { - data = new byte[8]; - padding.addPadding(data, 4); - - if (!areEqual(data, ZeroVector)) - { - fail("failed zero test for " + padding.getPaddingName()); - } - } - - for (int i = 1; i != 200; i++) - { - data = new byte[i]; - - rand.nextBytes(data); - - blockCheck(cipher, padding, key, data); - } - } - - private void testOutputSizes() - { - PaddedBufferedBlockCipher bc = new PaddedBufferedBlockCipher(new DESEngine(), new PKCS7Padding()); - KeyParameter key = new KeyParameter(Hex.decode("0011223344556677")); - - for (int i = 0; i < bc.getBlockSize() * 2; i++) - { - bc.init(true, key); - if (bc.getUpdateOutputSize(i) < 0) - { - fail("Padded cipher encrypt negative update output size for input size " + i); - } - if (bc.getOutputSize(i) < 0) - { - fail("Padded cipher encrypt negative output size for input size " + i); - } - - bc.init(false, key); - if (bc.getUpdateOutputSize(i) < 0) - { - fail("Padded cipher decrypt negative update output size for input size " + i); - } - if (bc.getOutputSize(i) < 0) - { - fail("Padded cipher decrypt negative output size for input size " + i); - } - - } - } - - public void performTest() - { - SecureRandom rand = new SecureRandom(new byte[20]); - - rand.setSeed(System.currentTimeMillis()); - - testPadding(new PKCS7Padding(), rand, - Hex.decode("ffffff0505050505"), - Hex.decode("0000000004040404")); - - PKCS7Padding padder = new PKCS7Padding(); - try - { - padder.padCount(new byte[8]); - - fail("invalid padding not detected"); - } - catch (InvalidCipherTextException e) - { - if (!"pad block corrupted".equals(e.getMessage())) - { - fail("wrong exception for corrupt padding: " + e); - } - } - - testPadding(new ISO10126d2Padding(), rand, - null, - null); - - testPadding(new X923Padding(), rand, - null, - null); - - testPadding(new TBCPadding(), rand, - Hex.decode("ffffff0000000000"), - Hex.decode("00000000ffffffff")); - - testPadding(new ZeroBytePadding(), rand, - Hex.decode("ffffff0000000000"), - null); - - testPadding(new ISO7816d4Padding(), rand, - Hex.decode("ffffff8000000000"), - Hex.decode("0000000080000000")); - - testOutputSizes(); - - } - - public String getName() - { - return "PaddingTest"; - } - - public static void main( - String[] args) - { - runTest(new PaddingTest()); - } -} |