| package org.bouncycastle.asn1.test; |
| |
| |
| import org.bouncycastle.asn1.ASN1Encodable; |
| import org.bouncycastle.asn1.ASN1Integer; |
| import org.bouncycastle.asn1.DERBitString; |
| import org.bouncycastle.asn1.DERSequence; |
| import org.bouncycastle.asn1.DERSet; |
| import org.bouncycastle.asn1.DERTaggedObject; |
| import org.bouncycastle.asn1.cmc.BodyPartID; |
| import org.bouncycastle.asn1.cmc.CertificationRequest; |
| import org.bouncycastle.asn1.cmc.TaggedCertificationRequest; |
| import org.bouncycastle.asn1.cmc.TaggedRequest; |
| import org.bouncycastle.asn1.crmf.AttributeTypeAndValue; |
| import org.bouncycastle.asn1.crmf.CertReqMsg; |
| import org.bouncycastle.asn1.crmf.CertRequest; |
| import org.bouncycastle.asn1.crmf.CertTemplate; |
| import org.bouncycastle.asn1.crmf.Controls; |
| import org.bouncycastle.asn1.crmf.POPOSigningKey; |
| import org.bouncycastle.asn1.crmf.POPOSigningKeyInput; |
| import org.bouncycastle.asn1.crmf.ProofOfPossession; |
| import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; |
| import org.bouncycastle.asn1.x509.AlgorithmIdentifier; |
| import org.bouncycastle.asn1.x509.GeneralName; |
| import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; |
| import org.bouncycastle.util.encoders.Base64; |
| import org.bouncycastle.util.test.SimpleTest; |
| |
| public class TaggedRequestTest |
| extends SimpleTest |
| { |
| public static void main(String[] args) |
| { |
| runTest(new TaggedRequestTest()); |
| } |
| |
| public String getName() |
| { |
| return "TaggedRequestTest"; |
| } |
| |
| private static byte[] req1 = Base64.decode( |
| "MIHoMIGTAgEAMC4xDjAMBgNVBAMTBVRlc3QyMQ8wDQYDVQQKEwZBbmFUb20xCzAJBgNVBAYTAlNF" |
| + "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALlEt31Tzt2MlcOljvacJgzQVhmlMoqAOgqJ9Pgd3Gux" |
| + "Z7/WcIlgW4QCB7WZT21O1YoghwBhPDMcNGrHei9kHQkCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA0EA" |
| + "NDEI4ecNtJ3uHwGGlitNFq9WxcoZ0djbQJ5hABMotav6gtqlrwKXY2evaIrsNwkJtNdwwH18aQDU" |
| + "KCjOuBL38Q=="); |
| |
| |
| public void performTest() |
| throws Exception |
| { |
| { // TaggedCertificationRequest |
| TaggedRequest tr = new TaggedRequest( |
| new TaggedCertificationRequest( |
| new BodyPartID(10L), |
| CertificationRequest.getInstance(req1)) |
| ); |
| byte[] b = tr.getEncoded(); |
| TaggedRequest trResult = TaggedRequest.getInstance(b); |
| isEquals("Tag", tr.getTagNo(), trResult.getTagNo()); |
| isEquals("Is TCR tag", TaggedRequest.TCR, tr.getTagNo()); |
| isEquals("Value", tr.getValue(), trResult.getValue()); |
| } |
| |
| { // CertReqMsg |
| |
| POPOSigningKeyInput pski = new POPOSigningKeyInput( |
| new GeneralName(GeneralName.rfc822Name, "fish"), |
| new SubjectPublicKeyInfo(new AlgorithmIdentifier( |
| PKCSObjectIdentifiers.certBag, |
| new ASN1Integer(5L)), new ASN1Integer(4L) |
| )); |
| |
| AlgorithmIdentifier aid = new AlgorithmIdentifier(PKCSObjectIdentifiers.crlTypes, new ASN1Integer(1L)); |
| DERBitString dbi = new DERBitString(2); |
| |
| POPOSigningKey popoSigningKey = new POPOSigningKey(pski, aid, dbi); |
| ProofOfPossession proofOfPossession = new ProofOfPossession(new POPOSigningKey(pski, aid, dbi)); |
| |
| TaggedRequest tr = new TaggedRequest( |
| new CertReqMsg(new CertRequest( |
| new ASN1Integer(1L), |
| CertTemplate.getInstance(new DERSequence(new DERTaggedObject(0,new ASN1Integer(3L)))), |
| new Controls(new AttributeTypeAndValue(PKCSObjectIdentifiers.pkcs_9,new ASN1Integer(3)))), |
| proofOfPossession, |
| new AttributeTypeAndValue[0]) |
| ); |
| byte[] b = tr.getEncoded(); |
| TaggedRequest trResult = TaggedRequest.getInstance(b); |
| isEquals("Tag", tr.getTagNo(), trResult.getTagNo()); |
| isEquals("Is CRM tag", TaggedRequest.CRM, tr.getTagNo()); |
| isEquals("Value", tr.getValue(), trResult.getValue()); |
| } |
| |
| |
| { // ORM |
| TaggedRequest tr = TaggedRequest.getInstance( new DERTaggedObject(TaggedRequest.ORM, new DERSequence(new ASN1Encodable[]{ |
| new BodyPartID(1L), |
| PKCSObjectIdentifiers.data, |
| new DERSet(new ASN1Encodable[]{new ASN1Integer(5L)}) |
| }))); |
| byte[] b = tr.getEncoded(); |
| TaggedRequest trResult = TaggedRequest.getInstance(b); |
| isEquals("Tag", tr.getTagNo(), trResult.getTagNo()); |
| isEquals("Is ORM tag", TaggedRequest.ORM, tr.getTagNo()); |
| isEquals("Value", tr.getValue(), trResult.getValue()); |
| } |
| |
| } |
| } |