| package org.bouncycastle.asn1.est; |
| |
| import org.bouncycastle.asn1.ASN1Object; |
| import org.bouncycastle.asn1.ASN1Primitive; |
| import org.bouncycastle.asn1.ASN1Sequence; |
| import org.bouncycastle.asn1.ASN1TaggedObject; |
| import org.bouncycastle.asn1.DERSequence; |
| |
| /** |
| * <pre> |
| * CsrAttrs ::= SEQUENCE SIZE (0..MAX) OF AttrOrOID |
| * </pre> |
| */ |
| public class CsrAttrs |
| extends ASN1Object |
| { |
| private final AttrOrOID[] attrOrOIDs; |
| |
| public static CsrAttrs getInstance( |
| Object obj) |
| { |
| if (obj instanceof CsrAttrs) |
| { |
| return (CsrAttrs)obj; |
| } |
| |
| if (obj != null) |
| { |
| return new CsrAttrs(ASN1Sequence.getInstance(obj)); |
| } |
| |
| return null; |
| } |
| |
| public static CsrAttrs getInstance( |
| ASN1TaggedObject obj, |
| boolean explicit) |
| { |
| return getInstance(ASN1Sequence.getInstance(obj, explicit)); |
| } |
| |
| /** |
| * Construct a CsrAttrs object containing one AttrOrOID. |
| * |
| * @param attrOrOID the AttrOrOID to be contained. |
| */ |
| public CsrAttrs( |
| AttrOrOID attrOrOID) |
| { |
| this.attrOrOIDs = new AttrOrOID[]{attrOrOID}; |
| } |
| |
| |
| public CsrAttrs( |
| AttrOrOID[] attrOrOIDs) |
| { |
| this.attrOrOIDs = Utils.clone(attrOrOIDs); |
| } |
| |
| private CsrAttrs( |
| ASN1Sequence seq) |
| { |
| this.attrOrOIDs = new AttrOrOID[seq.size()]; |
| |
| for (int i = 0; i != seq.size(); i++) |
| { |
| attrOrOIDs[i] = AttrOrOID.getInstance(seq.getObjectAt(i)); |
| } |
| } |
| |
| public AttrOrOID[] getAttrOrOIDs() |
| { |
| return Utils.clone(attrOrOIDs); |
| } |
| |
| public int size() |
| { |
| return attrOrOIDs.length; |
| } |
| |
| public ASN1Primitive toASN1Primitive() |
| { |
| return new DERSequence(attrOrOIDs); |
| } |
| } |