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

CA认证

开发平台:

Java

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