| package org.bouncycastle.asn1.test; |
| |
| import java.util.Date; |
| |
| import org.bouncycastle.asn1.ASN1Enumerated; |
| import org.bouncycastle.asn1.ASN1GeneralizedTime; |
| import org.bouncycastle.asn1.ASN1Integer; |
| import org.bouncycastle.asn1.ASN1OctetString; |
| import org.bouncycastle.asn1.DEROctetString; |
| import org.bouncycastle.asn1.DERSequence; |
| import org.bouncycastle.asn1.DERUTF8String; |
| import org.bouncycastle.asn1.cmc.RevokeRequest; |
| import org.bouncycastle.asn1.x500.X500Name; |
| import org.bouncycastle.asn1.x500.X500NameBuilder; |
| import org.bouncycastle.asn1.x500.style.BCStyle; |
| import org.bouncycastle.asn1.x509.CRLReason; |
| import org.bouncycastle.util.Pack; |
| import org.bouncycastle.util.test.SimpleTest; |
| |
| |
| public class RevokeRequestTest |
| extends SimpleTest |
| { |
| public static void main(String[] args) |
| { |
| runTest(new RevokeRequestTest()); |
| } |
| |
| public String getName() |
| { |
| return "RevokeRequestTest"; |
| } |
| |
| public void performTest() |
| throws Exception |
| { |
| |
| |
| X500NameBuilder builder = new X500NameBuilder(); |
| builder.addRDN(BCStyle.OU, "Bouncycastle"); |
| |
| X500Name name = builder.build(); |
| |
| for (int t = 0; t < 8; t++) |
| { |
| ASN1GeneralizedTime invalidityDate = null; |
| ASN1OctetString passphrase = null; |
| DERUTF8String comment = null; |
| |
| if ((t & 1) == 1) |
| { |
| invalidityDate = new ASN1GeneralizedTime(new Date()); |
| } |
| if ((t & 2) == 2) |
| { |
| passphrase = new DEROctetString(Pack.longToBigEndian(System.currentTimeMillis())); |
| } |
| if ((t & 4) == 4) |
| { |
| comment = new DERUTF8String("T" + Long.toOctalString(System.currentTimeMillis())); |
| } |
| |
| RevokeRequest rr = new RevokeRequest( |
| name, |
| new ASN1Integer(12L), |
| CRLReason.getInstance(new ASN1Enumerated(CRLReason.certificateHold)), |
| invalidityDate, |
| passphrase, |
| comment); |
| byte[] b = rr.getEncoded(); |
| RevokeRequest rrResp = RevokeRequest.getInstance(b); |
| |
| isEquals("issuerName", rr.getName(), rrResp.getName()); |
| isEquals("serialNumber", rr.getSerialNumber(), rrResp.getSerialNumber()); |
| isEquals("reason", rr.getReason(), rrResp.getReason()); |
| isEquals("invalidityDate", rr.getInvalidityDate(), rrResp.getInvalidityDate()); |
| isTrue("passphrase", areEqual(rr.getPassPhrase(), rrResp.getPassPhrase())); |
| isEquals("comment", rr.getComment(), rrResp.getComment()); |
| |
| } |
| |
| try |
| { |
| RevokeRequest.getInstance(new DERSequence()); |
| fail("Sequence is less that 3"); |
| } |
| catch (Throwable t) |
| { |
| isEquals("Exception type", t.getClass(), IllegalArgumentException.class); |
| } |
| |
| } |
| } |