1 20 package com.novosec.pkix.asn1.crmf; 21 22 import org.bouncycastle.asn1.ASN1EncodableVector; 23 import org.bouncycastle.asn1.ASN1Sequence; 24 import org.bouncycastle.asn1.ASN1TaggedObject; 25 import org.bouncycastle.asn1.DEREncodable; 26 import org.bouncycastle.asn1.DERInteger; 27 import org.bouncycastle.asn1.DERObject; 28 import org.bouncycastle.asn1.DERSequence; 29 import org.bouncycastle.asn1.x509.GeneralName; 30 31 41 public class CertId implements DEREncodable 42 { 43 GeneralName issuer; 44 DERInteger serialNumber; 45 46 public static CertId getInstance( ASN1TaggedObject obj, boolean explicit ) 47 { 48 return getInstance(ASN1Sequence.getInstance(obj, explicit)); 49 } 50 51 public static CertId getInstance( Object obj ) 52 { 53 if (obj instanceof CertId) 54 { 55 return (CertId)obj; 56 } 57 else if (obj instanceof ASN1Sequence) 58 { 59 return new CertId((ASN1Sequence)obj); 60 } 61 62 throw new IllegalArgumentException ("unknown object in factory"); 63 } 64 65 public CertId( ASN1Sequence seq ) 66 { 67 this.issuer = GeneralName.getInstance((ASN1TaggedObject)seq.getObjectAt(0),true); this.serialNumber = (DERInteger)seq.getObjectAt(1); 69 } 70 71 public CertId( GeneralName issuer, DERInteger serialNumber ) 72 { 73 this.issuer = issuer; 74 this.serialNumber = serialNumber; 75 } 76 77 public GeneralName getIssuer() 78 { 79 return issuer; 80 } 81 82 public DERInteger getSerialNumber() 83 { 84 return serialNumber; 85 } 86 87 public DERObject getDERObject() 88 { 89 ASN1EncodableVector v = new ASN1EncodableVector(); 90 91 v.add( issuer ); 92 v.add( serialNumber ); 93 94 return new DERSequence(v); 95 } 96 97 public String toString() 98 { 99 return "CertId: (issuer = " + this.getIssuer() + ", serialNumber = " + this.getSerialNumber() + ")"; 100 } 101 } 102 | Popular Tags |