| package org.bouncycastle.asn1.test; |
| |
| |
| import org.bouncycastle.asn1.ASN1Encodable; |
| import org.bouncycastle.asn1.ASN1Integer; |
| import org.bouncycastle.asn1.ASN1Sequence; |
| import org.bouncycastle.asn1.DERIA5String; |
| import org.bouncycastle.asn1.DERSequence; |
| import org.bouncycastle.asn1.DERSet; |
| import org.bouncycastle.asn1.cmc.BodyPartID; |
| import org.bouncycastle.asn1.cmc.CMCObjectIdentifiers; |
| import org.bouncycastle.asn1.cmc.TaggedAttribute; |
| import org.bouncycastle.util.Arrays; |
| import org.bouncycastle.util.test.SimpleTest; |
| |
| |
| public class TaggedAttributeTest |
| extends SimpleTest |
| { |
| public String getName() |
| { |
| return "TaggedAttributeTest"; |
| } |
| |
| public void performTest() |
| throws Exception |
| { |
| // |
| // This creates and tests the various get instance methods. |
| // |
| TaggedAttribute ta = new TaggedAttribute( |
| new BodyPartID(10L), |
| CMCObjectIdentifiers.id_cct_PKIData, |
| new DERSet(new DERIA5String("Cats"))); |
| |
| byte[] d = ta.getEncoded(); |
| |
| { |
| TaggedAttribute res1 = TaggedAttribute.getInstance(d); |
| isEquals(ta.getBodyPartID(), res1.getBodyPartID()); |
| isEquals(ta.getAttrType(), res1.getAttrType()); |
| isEquals(ta.getAttrValues().getObjectAt(0), res1.getAttrValues().getObjectAt(0)); |
| isTrue(Arrays.areEqual(res1.getEncoded(), d)); |
| } |
| |
| // |
| // Where sequence is too short. |
| // |
| try |
| { |
| ASN1Sequence seq = new DERSequence(new ASN1Encodable[] { new BodyPartID(10) }); |
| |
| TaggedAttribute.getInstance(seq); |
| fail("no exception"); |
| } |
| catch (IllegalArgumentException e) |
| { |
| isEquals("incorrect sequence size", e.getMessage()); |
| } |
| |
| // |
| // Where sequence is too long. |
| // |
| try |
| { |
| ASN1Sequence seq = new DERSequence(new ASN1Encodable[] { ta.getBodyPartID(), ta.getAttrType(), ta.getAttrValues(), new ASN1Integer(0)}); |
| |
| TaggedAttribute.getInstance(seq); |
| fail("no exception"); |
| } |
| catch (IllegalArgumentException e) |
| { |
| isEquals("incorrect sequence size", e.getMessage()); |
| } |
| } |
| |
| public static void main(String[] args) |
| throws Exception |
| { |
| runTest(new TaggedAttributeTest()); |
| } |
| } |