001: package org.bouncycastle.util.encoders.test;
002:
003: import java.util.Arrays;
004: import java.util.Random;
005:
006: import org.bouncycastle.util.encoders.Base64;
007: import org.bouncycastle.util.encoders.Hex;
008: import org.bouncycastle.util.test.SimpleTest;
009:
010: public class EncoderTest extends SimpleTest {
011: public static final boolean DEBUG = true;
012:
013: public static void main(String[] args) {
014: runTest(new EncoderTest());
015: }
016:
017: public String getName() {
018: return "Encoder";
019: }
020:
021: /*
022: *
023: * TESTS
024: *
025: */
026:
027: public void performTest() {
028: testHex();
029: testBase64();
030: testBase64WithNL();
031: }
032:
033: public void testBase64() {
034: try {
035: Random _r = new Random();
036:
037: byte[] _orig1024 = new byte[1024];
038: _r.nextBytes(_orig1024);
039:
040: byte[] _orig2048 = new byte[2048];
041: _r.nextBytes(_orig2048);
042:
043: byte[] _orig4096 = new byte[4096];
044: _r.nextBytes(_orig4096);
045:
046: byte[] _orig8192 = new byte[8192];
047: _r.nextBytes(_orig8192);
048:
049: byte[] _enc1024 = Base64.encode(_orig1024);
050: byte[] _enc2048 = Base64.encode(_orig2048);
051: byte[] _enc4096 = Base64.encode(_orig4096);
052: byte[] _enc8192 = Base64.encode(_orig8192);
053:
054: byte[] _dec1024 = Base64.decode(_enc1024);
055: byte[] _dec2048 = Base64.decode(_enc2048);
056: byte[] _dec4096 = Base64.decode(_enc4096);
057: byte[] _dec8192 = Base64.decode(_enc8192);
058:
059: if (!Arrays.equals(_orig1024, _dec1024)) {
060: fail("Failed Base64 test");
061: }
062:
063: if (!Arrays.equals(_orig2048, _dec2048)) {
064: fail("Failed Base64 test");
065: }
066:
067: if (!Arrays.equals(_orig4096, _dec4096)) {
068: fail("Failed Base64 test");
069: }
070:
071: if (!Arrays.equals(_orig8192, _dec8192)) {
072: fail("Failed Base64 test");
073: }
074:
075: byte[] _orig1025 = new byte[1025];
076: _r.nextBytes(_orig1025);
077:
078: byte[] _orig2049 = new byte[2049];
079: _r.nextBytes(_orig2049);
080:
081: byte[] _orig4097 = new byte[4097];
082: _r.nextBytes(_orig4097);
083:
084: byte[] _orig8193 = new byte[8193];
085: _r.nextBytes(_orig8193);
086:
087: byte[] _enc1025 = Base64.encode(_orig1025);
088: byte[] _enc2049 = Base64.encode(_orig2049);
089: byte[] _enc4097 = Base64.encode(_orig4097);
090: byte[] _enc8193 = Base64.encode(_orig8193);
091:
092: byte[] _dec1025 = Base64.decode(_enc1025);
093: byte[] _dec2049 = Base64.decode(_enc2049);
094: byte[] _dec4097 = Base64.decode(_enc4097);
095: byte[] _dec8193 = Base64.decode(_enc8193);
096:
097: if (!Arrays.equals(_orig1025, _dec1025)) {
098: fail("Failed Base64 test");
099: }
100:
101: if (!Arrays.equals(_orig2049, _dec2049)) {
102: fail("Failed Base64 test");
103: }
104:
105: if (!Arrays.equals(_orig4097, _dec4097)) {
106: fail("Failed Base64 test");
107: }
108:
109: if (!Arrays.equals(_orig8193, _dec8193)) {
110: fail("Failed Base64 test");
111: }
112: } catch (Exception ex) {
113: fail("Failed Base64 test");
114: }
115: }
116:
117: public void testBase64WithNL() {
118: byte[] dec = Base64.decode("SVNC" + "\n" + "QUQ=\n");
119:
120: if (dec.length != 5) {
121: fail("got length " + dec.length + " when expecting 10");
122: }
123:
124: if (!areEqual(dec, Base64.decode("SVNCQUQ="))) {
125: fail("decodings are not equal");
126: }
127: }
128:
129: public void testHex() {
130: try {
131: Random _r = new Random();
132:
133: byte[] _orig1024 = new byte[1024];
134: _r.nextBytes(_orig1024);
135:
136: byte[] _orig2048 = new byte[2048];
137: _r.nextBytes(_orig2048);
138:
139: byte[] _orig4096 = new byte[4096];
140: _r.nextBytes(_orig4096);
141:
142: byte[] _orig8192 = new byte[8192];
143: _r.nextBytes(_orig8192);
144:
145: byte[] _enc1024 = Hex.encode(_orig1024);
146: byte[] _enc2048 = Hex.encode(_orig2048);
147: byte[] _enc4096 = Hex.encode(_orig4096);
148: byte[] _enc8192 = Hex.encode(_orig8192);
149:
150: byte[] _dec1024 = Hex.decode(_enc1024);
151: byte[] _dec2048 = Hex.decode(_enc2048);
152: byte[] _dec4096 = Hex.decode(_enc4096);
153: byte[] _dec8192 = Hex.decode(_enc8192);
154:
155: if (!Arrays.equals(_orig1024, _dec1024)) {
156: fail("Failed Hex test");
157: }
158:
159: if (!Arrays.equals(_orig2048, _dec2048)) {
160: fail("Failed Hex test");
161: }
162:
163: if (!Arrays.equals(_orig4096, _dec4096)) {
164: fail("Failed Hex test");
165: }
166:
167: if (!Arrays.equals(_orig8192, _dec8192)) {
168: fail("Failed Hex test");
169: }
170:
171: byte[] _orig1025 = new byte[1025];
172: _r.nextBytes(_orig1025);
173:
174: byte[] _orig2049 = new byte[2049];
175: _r.nextBytes(_orig2049);
176:
177: byte[] _orig4097 = new byte[4097];
178: _r.nextBytes(_orig4097);
179:
180: byte[] _orig8193 = new byte[8193];
181: _r.nextBytes(_orig8193);
182:
183: byte[] _enc1025 = Hex.encode(_orig1025);
184: byte[] _enc2049 = Hex.encode(_orig2049);
185: byte[] _enc4097 = Hex.encode(_orig4097);
186: byte[] _enc8193 = Hex.encode(_orig8193);
187:
188: byte[] _dec1025 = Hex.decode(_enc1025);
189: byte[] _dec2049 = Hex.decode(_enc2049);
190: byte[] _dec4097 = Hex.decode(_enc4097);
191: byte[] _dec8193 = Hex.decode(_enc8193);
192:
193: if (!Arrays.equals(_orig1025, _dec1025)) {
194: fail("Failed Hex test");
195: }
196:
197: if (!Arrays.equals(_orig2049, _dec2049)) {
198: fail("Failed Hex test");
199: }
200:
201: if (!Arrays.equals(_orig4097, _dec4097)) {
202: fail("Failed Hex test");
203: }
204:
205: if (!Arrays.equals(_orig8193, _dec8193)) {
206: fail("Failed Hex test");
207: }
208: } catch (Exception ex) {
209: fail("Failed Hex test");
210: }
211: }
212: }
|