001package org.apache.commons.ssl.org.bouncycastle.asn1.pkcs; 002 003import java.math.BigInteger; 004 005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1EncodableVector; 006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer; 007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object; 008import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive; 009import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence; 010import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence; 011import org.apache.commons.ssl.org.bouncycastle.asn1.x500.X500Name; 012import org.apache.commons.ssl.org.bouncycastle.asn1.x509.X509Name; 013 014public class IssuerAndSerialNumber 015 extends ASN1Object 016{ 017 X500Name name; 018 ASN1Integer certSerialNumber; 019 020 public static IssuerAndSerialNumber getInstance( 021 Object obj) 022 { 023 if (obj instanceof IssuerAndSerialNumber) 024 { 025 return (IssuerAndSerialNumber)obj; 026 } 027 else if (obj != null) 028 { 029 return new IssuerAndSerialNumber(ASN1Sequence.getInstance(obj)); 030 } 031 032 return null; 033 } 034 035 private IssuerAndSerialNumber( 036 ASN1Sequence seq) 037 { 038 this.name = X500Name.getInstance(seq.getObjectAt(0)); 039 this.certSerialNumber = (ASN1Integer)seq.getObjectAt(1); 040 } 041 042 public IssuerAndSerialNumber( 043 X509Name name, 044 BigInteger certSerialNumber) 045 { 046 this.name = X500Name.getInstance(name.toASN1Primitive()); 047 this.certSerialNumber = new ASN1Integer(certSerialNumber); 048 } 049 050 public IssuerAndSerialNumber( 051 X509Name name, 052 ASN1Integer certSerialNumber) 053 { 054 this.name = X500Name.getInstance(name.toASN1Primitive()); 055 this.certSerialNumber = certSerialNumber; 056 } 057 058 public IssuerAndSerialNumber( 059 X500Name name, 060 BigInteger certSerialNumber) 061 { 062 this.name = name; 063 this.certSerialNumber = new ASN1Integer(certSerialNumber); 064 } 065 066 public X500Name getName() 067 { 068 return name; 069 } 070 071 public ASN1Integer getCertificateSerialNumber() 072 { 073 return certSerialNumber; 074 } 075 076 public ASN1Primitive toASN1Primitive() 077 { 078 ASN1EncodableVector v = new ASN1EncodableVector(); 079 080 v.add(name); 081 v.add(certSerialNumber); 082 083 return new DERSequence(v); 084 } 085}