01: package org.bouncycastle.asn1.test;
02:
03: import java.io.IOException;
04:
05: import org.bouncycastle.asn1.ASN1InputStream;
06: import org.bouncycastle.asn1.DERBitString;
07: import org.bouncycastle.asn1.cmp.PKIFailureInfo;
08: import org.bouncycastle.util.encoders.Base64;
09: import org.bouncycastle.util.test.SimpleTest;
10:
11: /**
12: * PKIFailureInfoTest
13: */
14: public class PKIFailureInfoTest extends SimpleTest {
15: // A correct hex encoded BAD_DATA_FORMAT PKIFailureInfo
16: private static final byte[] CORRECT_FAILURE_INFO = Base64
17: .decode("AwIANQ==");
18:
19: public String getName() {
20: return "PKIFailureInfo";
21: }
22:
23: private void testEncoding() throws IOException {
24: DERBitString bitString = (DERBitString) new ASN1InputStream(
25: CORRECT_FAILURE_INFO).readObject();
26: PKIFailureInfo correct = new PKIFailureInfo(bitString);
27:
28: PKIFailureInfo bug = new PKIFailureInfo(
29: PKIFailureInfo.badRequest | PKIFailureInfo.badTime
30: | PKIFailureInfo.badDataFormat
31: | PKIFailureInfo.incorrectData);
32:
33: if (!areEqual(correct.getDEREncoded(), bug.getDEREncoded())) {
34: fail("encoding doesn't match");
35: }
36: }
37:
38: public void performTest() throws IOException {
39: BitStringConstantTester.testFlagValueCorrect(0,
40: PKIFailureInfo.badAlg);
41: BitStringConstantTester.testFlagValueCorrect(1,
42: PKIFailureInfo.badMessageCheck);
43: BitStringConstantTester.testFlagValueCorrect(2,
44: PKIFailureInfo.badRequest);
45: BitStringConstantTester.testFlagValueCorrect(3,
46: PKIFailureInfo.badTime);
47: BitStringConstantTester.testFlagValueCorrect(4,
48: PKIFailureInfo.badCertId);
49: BitStringConstantTester.testFlagValueCorrect(5,
50: PKIFailureInfo.badDataFormat);
51: BitStringConstantTester.testFlagValueCorrect(6,
52: PKIFailureInfo.wrongAuthority);
53: BitStringConstantTester.testFlagValueCorrect(7,
54: PKIFailureInfo.incorrectData);
55: BitStringConstantTester.testFlagValueCorrect(8,
56: PKIFailureInfo.missingTimeStamp);
57: BitStringConstantTester.testFlagValueCorrect(9,
58: PKIFailureInfo.badPOP);
59: BitStringConstantTester.testFlagValueCorrect(14,
60: PKIFailureInfo.timeNotAvailable);
61: BitStringConstantTester.testFlagValueCorrect(15,
62: PKIFailureInfo.unacceptedPolicy);
63: BitStringConstantTester.testFlagValueCorrect(16,
64: PKIFailureInfo.unacceptedExtension);
65: BitStringConstantTester.testFlagValueCorrect(17,
66: PKIFailureInfo.addInfoNotAvailable);
67: BitStringConstantTester.testFlagValueCorrect(25,
68: PKIFailureInfo.systemFailure);
69:
70: testEncoding();
71: }
72:
73: public static void main(String[] args) {
74: runTest(new PKIFailureInfoTest());
75: }
76: }
|