package org.bouncycastle.util.encoders.test;
import java.util.Arrays;
import java.util.Random;
import org.bouncycastle.util.encoders.Base64;
import org.bouncycastle.util.encoders.Hex;
import org.bouncycastle.util.test.SimpleTest;
public class EncoderTest
extends SimpleTest
{
public static final boolean DEBUG = true;
public static void main(
String[] args)
{
runTest(new EncoderTest());
}
public String getName()
{
return "Encoder";
}
/*
*
* TESTS
*
*/
public void performTest()
{
testHex();
testBase64();
testBase64WithNL();
}
public void testBase64()
{
try
{
Random _r = new Random();
byte[] _orig1024 = new byte[1024];
_r.nextBytes(_orig1024);
byte[] _orig2048 = new byte[2048];
_r.nextBytes(_orig2048);
byte[] _orig4096 = new byte[4096];
_r.nextBytes(_orig4096);
byte[] _orig8192 = new byte[8192];
_r.nextBytes(_orig8192);
byte[] _enc1024 = Base64.encode(_orig1024);
byte[] _enc2048 = Base64.encode(_orig2048);
byte[] _enc4096 = Base64.encode(_orig4096);
byte[] _enc8192 = Base64.encode(_orig8192);
byte[] _dec1024 = Base64.decode(_enc1024);
byte[] _dec2048 = Base64.decode(_enc2048);
byte[] _dec4096 = Base64.decode(_enc4096);
byte[] _dec8192 = Base64.decode(_enc8192);
if(!Arrays.equals(_orig1024, _dec1024))
{
fail("Failed Base64 test");
}
if(!Arrays.equals(_orig2048, _dec2048))
{
fail("Failed Base64 test");
}
if(!Arrays.equals(_orig4096, _dec4096))
{
fail("Failed Base64 test");
}
if(!Arrays.equals(_orig8192, _dec8192))
{
fail("Failed Base64 test");
}
byte[] _orig1025 = new byte[1025];
_r.nextBytes(_orig1025);
byte[] _orig2049 = new byte[2049];
_r.nextBytes(_orig2049);
byte[] _orig4097 = new byte[4097];
_r.nextBytes(_orig4097);
byte[] _orig8193 = new byte[8193];
_r.nextBytes(_orig8193);
byte[] _enc1025 = Base64.encode(_orig1025);
byte[] _enc2049 = Base64.encode(_orig2049);
byte[] _enc4097 = Base64.encode(_orig4097);
byte[] _enc8193 = Base64.encode(_orig8193);
byte[] _dec1025 = Base64.decode(_enc1025);
byte[] _dec2049 = Base64.decode(_enc2049);
byte[] _dec4097 = Base64.decode(_enc4097);
byte[] _dec8193 = Base64.decode(_enc8193);
if(!Arrays.equals(_orig1025, _dec1025))
{
fail("Failed Base64 test");
}
if(!Arrays.equals(_orig2049, _dec2049))
{
fail("Failed Base64 test");
}
if(!Arrays.equals(_orig4097, _dec4097))
{
fail("Failed Base64 test");
}
if(!Arrays.equals(_orig8193, _dec8193))
{
fail("Failed Base64 test");
}
}
catch(Exception ex)
{
fail("Failed Base64 test");
}
}
public void testBase64WithNL()
{
byte[] dec = Base64.decode("SVNC" + "\n" + "QUQ=\n");
if (dec.length != 5)
{
fail("got length " + dec.length + " when expecting 10");
}
if (!areEqual(dec, Base64.decode("SVNCQUQ=")))
{
fail("decodings are not equal");
}
}
public void testHex()
{
try
{
Random _r = new Random();
byte[] _orig1024 = new byte[1024];
_r.nextBytes(_orig1024);
byte[] _orig2048 = new byte[2048];
_r.nextBytes(_orig2048);
byte[] _orig4096 = new byte[4096];
_r.nextBytes(_orig4096);
byte[] _orig8192 = new byte[8192];
_r.nextBytes(_orig8192);
byte[] _enc1024 = Hex.encode(_orig1024);
byte[] _enc2048 = Hex.encode(_orig2048);
byte[] _enc4096 = Hex.encode(_orig4096);
byte[] _enc8192 = Hex.encode(_orig8192);
byte[] _dec1024 = Hex.decode(_enc1024);
byte[] _dec2048 = Hex.decode(_enc2048);
byte[] _dec4096 = Hex.decode(_enc4096);
byte[] _dec8192 = Hex.decode(_enc8192);
if(!Arrays.equals(_orig1024, _dec1024))
{
fail("Failed Hex test");
}
if(!Arrays.equals(_orig2048, _dec2048))
{
fail("Failed Hex test");
}
if(!Arrays.equals(_orig4096, _dec4096))
{
fail("Failed Hex test");
}
if(!Arrays.equals(_orig8192, _dec8192))
{
fail("Failed Hex test");
}
byte[] _orig1025 = new byte[1025];
_r.nextBytes(_orig1025);
byte[] _orig2049 = new byte[2049];
_r.nextBytes(_orig2049);
byte[] _orig4097 = new byte[4097];
_r.nextBytes(_orig4097);
byte[] _orig8193 = new byte[8193];
_r.nextBytes(_orig8193);
byte[] _enc1025 = Hex.encode(_orig1025);
byte[] _enc2049 = Hex.encode(_orig2049);
byte[] _enc4097 = Hex.encode(_orig4097);
byte[] _enc8193 = Hex.encode(_orig8193);
byte[] _dec1025 = Hex.decode(_enc1025);
byte[] _dec2049 = Hex.decode(_enc2049);
byte[] _dec4097 = Hex.decode(_enc4097);
byte[] _dec8193 = Hex.decode(_enc8193);
if(!Arrays.equals(_orig1025, _dec1025))
{
fail("Failed Hex test");
}
if(!Arrays.equals(_orig2049, _dec2049))
{
fail("Failed Hex test");
}
if(!Arrays.equals(_orig4097, _dec4097))
{
fail("Failed Hex test");
}
if(!Arrays.equals(_orig8193, _dec8193))
{
fail("Failed Hex test");
}
}
catch(Exception ex)
{
fail("Failed Hex test");
}
}
}