SignerIdentifier.java
上传用户:lior1029
上传日期:2013-05-07
资源大小:209k
文件大小:2k
源码类别:

CA认证

开发平台:

Java

  1. package org.bouncycastle.asn1.cms;
  2. import org.bouncycastle.asn1.ASN1OctetString;
  3. import org.bouncycastle.asn1.ASN1TaggedObject;
  4. import org.bouncycastle.asn1.DERTaggedObject;
  5. import org.bouncycastle.asn1.DEREncodable;
  6. import org.bouncycastle.asn1.DERObject;
  7. public class SignerIdentifier
  8.     implements DEREncodable
  9. {
  10. private DEREncodable id;
  11. public SignerIdentifier(
  12.         IssuerAndSerialNumber id)
  13.     {
  14.         this.id = id;
  15. }
  16. public SignerIdentifier(
  17.         ASN1OctetString id)
  18.     {
  19.         this.id = new DERTaggedObject(false, 0, id);
  20. }
  21. public SignerIdentifier(
  22.         DERObject id)
  23.     {
  24.         this.id = id;
  25. }
  26.     /**
  27.      * return a SignerIdentifier object from the given object.
  28.      *
  29.      * @param o the object we want converted.
  30.      * @exception IllegalArgumentException if the object cannot be converted.
  31.      */
  32. public static SignerIdentifier getInstance(
  33.         Object o)
  34.     {
  35. if (o == null || o instanceof SignerIdentifier)
  36.         {
  37. return (SignerIdentifier)o;
  38. }
  39. if (o instanceof IssuerAndSerialNumber)
  40.         {
  41. return new SignerIdentifier((IssuerAndSerialNumber)o);
  42. }
  43. if (o instanceof ASN1OctetString)
  44.         {
  45. return new SignerIdentifier((ASN1OctetString)o);
  46. }
  47. if (o instanceof DERObject)
  48.         {
  49. return new SignerIdentifier((DERObject)o);
  50. }
  51. throw new IllegalArgumentException(
  52.              "Illegal object in SignerIdentifier: " + o.getClass().getName());
  53.     public boolean isTagged()
  54.     {
  55.         return (id instanceof ASN1TaggedObject);
  56.     }
  57. public DEREncodable getId()
  58.     {
  59.         if (id instanceof ASN1TaggedObject)
  60.         {
  61.             return ASN1OctetString.getInstance((ASN1TaggedObject)id, false);
  62.         }
  63. return id;
  64. }
  65.     /** 
  66.      * <pre>
  67.      * SignerIdentifier ::= CHOICE {
  68.      *  issuerAndSerialNumber IssuerAndSerialNumber,
  69.      *  subjectKeyIdentifier [0] SubjectKeyIdentifier 
  70.      * }
  71.      *
  72.      * SubjectKeyIdentifier ::= OCTET STRING
  73.      * </pre>
  74.      */
  75. public DERObject getDERObject()
  76.     {
  77.         return id.getDERObject();
  78. }
  79. }