1e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrompackage org.bouncycastle.asn1.cms; 2e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 3e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport java.math.BigInteger; 4e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 5e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.ASN1EncodableVector; 6e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.ASN1Integer; 7e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.ASN1Object; 8e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.ASN1Primitive; 9e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.ASN1Sequence; 10e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.DERSequence; 11e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.x500.X500Name; 12e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.x509.Certificate; 13e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.x509.X509CertificateStructure; 14e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstromimport org.bouncycastle.asn1.x509.X509Name; 15e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 16e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrompublic class IssuerAndSerialNumber 17e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom extends ASN1Object 18e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom{ 19e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private X500Name name; 20e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom private ASN1Integer serialNumber; 21e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 22e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public static IssuerAndSerialNumber getInstance( 23e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom Object obj) 24e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 25e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom if (obj instanceof IssuerAndSerialNumber) 26e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 27e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return (IssuerAndSerialNumber)obj; 28e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 29e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom else if (obj != null) 30e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 31e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return new IssuerAndSerialNumber(ASN1Sequence.getInstance(obj)); 32e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 33e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 34e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return null; 35e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 36e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 37e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 38e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1Sequence seq) 39e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 40e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = X500Name.getInstance(seq.getObjectAt(0)); 41e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = (ASN1Integer)seq.getObjectAt(1); 42e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 43e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 44e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 45e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom Certificate certificate) 46e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 47e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = certificate.getIssuer(); 48e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = certificate.getSerialNumber(); 49e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 50e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 51e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 52e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom X509CertificateStructure certificate) 53e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 54e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = certificate.getIssuer(); 55e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = certificate.getSerialNumber(); 56e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 57e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 58e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 59e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom X500Name name, 60e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom BigInteger serialNumber) 61e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 62e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = name; 63e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = new ASN1Integer(serialNumber); 64e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 65e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 66e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom /** 67e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * @deprecated use X500Name constructor 68e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 69e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 70e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom X509Name name, 71e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom BigInteger serialNumber) 72e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 73e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = X500Name.getInstance(name); 74e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = new ASN1Integer(serialNumber); 75e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 76e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 77e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom /** 78e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * @deprecated use X500Name constructor 79e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 80e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 81e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom X509Name name, 82e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1Integer serialNumber) 83e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 84e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = X500Name.getInstance(name); 85e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = serialNumber; 86e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 87e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 88e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public X500Name getName() 89e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 90e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return name; 91e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 92e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 93e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public ASN1Integer getSerialNumber() 94e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 95e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return serialNumber; 96e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 97e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 98e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public ASN1Primitive toASN1Primitive() 99e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 100e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1EncodableVector v = new ASN1EncodableVector(); 101e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 102e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom v.add(name); 103e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom v.add(serialNumber); 104e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 105e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return new DERSequence(v); 106e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 107e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom} 108