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

CA认证

开发平台:

Java

  1. package org.bouncycastle.asn1.cms;
  2. import org.bouncycastle.asn1.ASN1Sequence;
  3. import org.bouncycastle.asn1.ASN1TaggedObject;
  4. import org.bouncycastle.asn1.DERSequence;
  5. import org.bouncycastle.asn1.DERBitString;
  6. import org.bouncycastle.asn1.DERObject;
  7. import org.bouncycastle.asn1.DERObjectIdentifier;
  8. import org.bouncycastle.asn1.DEREncodable;
  9. import org.bouncycastle.asn1.ASN1EncodableVector;
  10. import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
  11. public class OriginatorPublicKey
  12.     implements DEREncodable
  13. {
  14. private AlgorithmIdentifier algorithm;
  15. private DERBitString        publicKey;
  16. public OriginatorPublicKey(
  17.         AlgorithmIdentifier algorithm,
  18.         byte[]              publicKey)
  19.     {
  20.         this.algorithm = algorithm;
  21.         this.publicKey = new DERBitString(publicKey);
  22. }
  23. public OriginatorPublicKey(
  24.         ASN1Sequence seq)
  25.     {
  26. algorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(0));
  27. publicKey = (DERBitString)seq.getObjectAt(1);
  28. }
  29.     /**
  30.      * return an OriginatorPublicKey object from a tagged object.
  31.      *
  32.      * @param obj the tagged object holding the object we want.
  33.      * @param explicit true if the object is meant to be explicitly
  34.      *              tagged false otherwise.
  35.      * @exception IllegalArgumentException if the object held by the
  36.      *          tagged object cannot be converted.
  37.      */
  38. public static OriginatorPublicKey getInstance(
  39.         ASN1TaggedObject    obj,
  40.         boolean             explicit)
  41.     {
  42. return getInstance(ASN1Sequence.getInstance(obj, explicit));
  43. }
  44.     /**
  45.      * return an OriginatorPublicKey object from the given object.
  46.      *
  47.      * @param obj the object we want converted.
  48.      * @exception IllegalArgumentException if the object cannot be converted.
  49.      */
  50. public static OriginatorPublicKey getInstance(
  51.         Object obj)
  52.     {
  53. if (obj == null || obj instanceof OriginatorPublicKey)
  54.         {
  55. return (OriginatorPublicKey)obj;
  56. }
  57. if (obj instanceof ASN1Sequence)
  58.         {
  59. return new OriginatorPublicKey((ASN1Sequence)obj);
  60. }
  61. throw new IllegalArgumentException("Invalid OriginatorPublicKey: " + obj.getClass().getName());
  62. public AlgorithmIdentifier getAlgorithm()
  63.     {
  64. return algorithm;
  65. }
  66. public DERBitString getPublicKey()
  67.     {
  68. return publicKey;
  69. }
  70.     /** 
  71.      * <pre>
  72.      * OriginatorPublicKey ::= SEQUENCE {
  73.      *  algorithm AlgorithmIdentifier,
  74.      *  publicKey BIT STRING 
  75.      * }
  76.      * </pre>
  77.      */
  78. public DERObject getDERObject()
  79.     {
  80.         ASN1EncodableVector  v = new ASN1EncodableVector();
  81. v.add(algorithm);
  82. v.add(publicKey);
  83. return new DERSequence(v);
  84. }
  85. }