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

CA认证

开发平台:

Java

  1. package org.bouncycastle.asn1;
  2. import java.io.*;
  3. public class DERBoolean
  4.     extends DERObject
  5. {
  6.     byte         value;
  7. public static final DERBoolean FALSE = new DERBoolean(false);
  8. public static final DERBoolean TRUE  = new DERBoolean(true);
  9.     /**
  10.      * return a boolean from the passed in object.
  11.      *
  12.      * @exception IllegalArgumentException if the object cannot be converted.
  13.      */
  14.     public static DERBoolean getInstance(
  15.         Object  obj)
  16.     {
  17.         if (obj == null || obj instanceof DERBoolean)
  18.         {
  19.             return (DERBoolean)obj;
  20.         }
  21.         if (obj instanceof ASN1OctetString)
  22.         {
  23.             return new DERBoolean(((ASN1OctetString)obj).getOctets());
  24.         }
  25.         if (obj instanceof ASN1TaggedObject)
  26.         {
  27.             return getInstance(((ASN1TaggedObject)obj).getObject());
  28.         }
  29.         throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
  30.     }
  31.     /**
  32.      * return a DERBoolean from the passed in boolean.
  33.      */
  34.     public static DERBoolean getInstance(
  35.         boolean  value)
  36.     {
  37.         return (value ? TRUE : FALSE);
  38.     }
  39.     /**
  40.      * return a Boolean from a tagged object.
  41.      *
  42.      * @param obj the tagged object holding the object we want
  43.      * @param explicit true if the object is meant to be explicitly
  44.      *              tagged false otherwise.
  45.      * @exception IllegalArgumentException if the tagged object cannot
  46.      *               be converted.
  47.      */
  48.     public static DERBoolean getInstance(
  49.         ASN1TaggedObject obj,
  50.         boolean          explicit)
  51.     {
  52.         return getInstance(obj.getObject());
  53.     }
  54.     
  55.     public DERBoolean(
  56.         byte[]       value)
  57.     {
  58.         this.value = value[0];
  59.     }
  60.     public DERBoolean(
  61.         boolean     value)
  62.     {
  63.         this.value = (value) ? (byte)0xff : (byte)0;
  64.     }
  65.     public boolean isTrue()
  66.     {
  67.         return (value != 0);
  68.     }
  69.     void encode(
  70.         DEROutputStream out)
  71.         throws IOException
  72.     {
  73.         byte[]  bytes = new byte[1];
  74.         bytes[0] = value;
  75.         out.writeEncoded(BOOLEAN, bytes);
  76.     }
  77.     
  78.     public boolean equals(
  79.         Object  o)
  80.     {
  81.         if ((o == null) || !(o instanceof DERBoolean))
  82.         {
  83.             return false;
  84.         }
  85.         return (value == ((DERBoolean)o).value);
  86.     }
  87. }