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 37a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom /** 38a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom * @deprecated use getInstance() method. 39a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom * @param seq 40a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom */ 41e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 42e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1Sequence seq) 43e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 44e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = X500Name.getInstance(seq.getObjectAt(0)); 45e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = (ASN1Integer)seq.getObjectAt(1); 46e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 47e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 48e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 49e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom Certificate certificate) 50e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 51e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = certificate.getIssuer(); 52e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = certificate.getSerialNumber(); 53e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 54e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 55e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 56e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom X509CertificateStructure certificate) 57e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 58e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = certificate.getIssuer(); 59e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = certificate.getSerialNumber(); 60e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 61e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 62e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 63e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom X500Name name, 64e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom BigInteger serialNumber) 65e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 66e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = name; 67e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = new ASN1Integer(serialNumber); 68e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 69e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 70e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom /** 71e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * @deprecated use X500Name constructor 72e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 73e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 74e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom X509Name name, 75e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom BigInteger serialNumber) 76e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 77e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = X500Name.getInstance(name); 78e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = new ASN1Integer(serialNumber); 79e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 80e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 81e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom /** 82e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom * @deprecated use X500Name constructor 83e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom */ 84e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public IssuerAndSerialNumber( 85e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom X509Name name, 86e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1Integer serialNumber) 87e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 88e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.name = X500Name.getInstance(name); 89e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom this.serialNumber = serialNumber; 90e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 91e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 92e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public X500Name getName() 93e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 94e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return name; 95e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 96e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 97e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public ASN1Integer getSerialNumber() 98e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 99e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return serialNumber; 100e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 101e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 102e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom public ASN1Primitive toASN1Primitive() 103e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom { 104e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom ASN1EncodableVector v = new ASN1EncodableVector(); 105e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 106e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom v.add(name); 107e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom v.add(serialNumber); 108e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom 109e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom return new DERSequence(v); 110e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom } 111e6bf3e8dfa2804891a82075cb469b736321b4827Brian Carlstrom} 112