diff options
Diffstat (limited to 'core/src/test/java/org/spongycastle/asn1/test/PKIFailureInfoTest.java')
-rw-r--r-- | core/src/test/java/org/spongycastle/asn1/test/PKIFailureInfoTest.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/core/src/test/java/org/spongycastle/asn1/test/PKIFailureInfoTest.java b/core/src/test/java/org/spongycastle/asn1/test/PKIFailureInfoTest.java new file mode 100644 index 00000000..b4b52744 --- /dev/null +++ b/core/src/test/java/org/spongycastle/asn1/test/PKIFailureInfoTest.java @@ -0,0 +1,68 @@ +package org.spongycastle.asn1.test; + +import java.io.IOException; + +import org.spongycastle.asn1.ASN1Encoding; +import org.spongycastle.asn1.ASN1InputStream; +import org.spongycastle.asn1.DERBitString; +import org.spongycastle.asn1.cmp.PKIFailureInfo; +import org.spongycastle.util.encoders.Base64; +import org.spongycastle.util.test.SimpleTest; + + +/** + * PKIFailureInfoTest + */ +public class PKIFailureInfoTest + extends SimpleTest +{ + // A correct hex encoded BAD_DATA_FORMAT PKIFailureInfo + private static final byte[] CORRECT_FAILURE_INFO = Base64.decode("AwIANQ=="); + + public String getName() + { + return "PKIFailureInfo"; + } + + private void testEncoding() + throws IOException + { + DERBitString bitString = (DERBitString)new ASN1InputStream(CORRECT_FAILURE_INFO).readObject(); + PKIFailureInfo correct = new PKIFailureInfo(bitString); + + PKIFailureInfo bug = new PKIFailureInfo(PKIFailureInfo.badRequest | PKIFailureInfo.badTime |PKIFailureInfo.badDataFormat | PKIFailureInfo.incorrectData); + + if (!areEqual(correct.getEncoded(ASN1Encoding.DER),bug.getEncoded(ASN1Encoding.DER))) + { + fail("encoding doesn't match"); + } + } + + public void performTest() + throws IOException + { + BitStringConstantTester.testFlagValueCorrect(0, PKIFailureInfo.badAlg); + BitStringConstantTester.testFlagValueCorrect(1, PKIFailureInfo.badMessageCheck); + BitStringConstantTester.testFlagValueCorrect(2, PKIFailureInfo.badRequest); + BitStringConstantTester.testFlagValueCorrect(3, PKIFailureInfo.badTime); + BitStringConstantTester.testFlagValueCorrect(4, PKIFailureInfo.badCertId); + BitStringConstantTester.testFlagValueCorrect(5, PKIFailureInfo.badDataFormat); + BitStringConstantTester.testFlagValueCorrect(6, PKIFailureInfo.wrongAuthority); + BitStringConstantTester.testFlagValueCorrect(7, PKIFailureInfo.incorrectData); + BitStringConstantTester.testFlagValueCorrect(8, PKIFailureInfo.missingTimeStamp); + BitStringConstantTester.testFlagValueCorrect(9, PKIFailureInfo.badPOP); + BitStringConstantTester.testFlagValueCorrect(14, PKIFailureInfo.timeNotAvailable); + BitStringConstantTester.testFlagValueCorrect(15, PKIFailureInfo.unacceptedPolicy); + BitStringConstantTester.testFlagValueCorrect(16, PKIFailureInfo.unacceptedExtension); + BitStringConstantTester.testFlagValueCorrect(17, PKIFailureInfo.addInfoNotAvailable); + BitStringConstantTester.testFlagValueCorrect(25, PKIFailureInfo.systemFailure); + + testEncoding(); + } + + public static void main( + String[] args) + { + runTest(new PKIFailureInfoTest()); + } +} |