| package org.bouncycastle.asn1; |
| |
| import java.io.IOException; |
| |
| /** |
| * A NULL object - use DERNull.INSTANCE for populating structures. |
| */ |
| public abstract class ASN1Null |
| extends ASN1Primitive |
| { |
| // BEGIN android-added |
| /*package*/ ASN1Null() |
| { |
| } |
| |
| // END android-added |
| /** |
| * Return an instance of ASN.1 NULL from the passed in object. |
| * <p> |
| * Accepted inputs: |
| * <ul> |
| * <li> null → null |
| * <li> {@link ASN1Null} object |
| * <li> a byte[] containing ASN.1 NULL object |
| * </ul> |
| * </p> |
| * |
| * @param o object to be converted. |
| * @return an instance of ASN1Null, or null. |
| * @exception IllegalArgumentException if the object cannot be converted. |
| */ |
| public static ASN1Null getInstance(Object o) |
| { |
| if (o instanceof ASN1Null) |
| { |
| return (ASN1Null)o; |
| } |
| |
| if (o != null) |
| { |
| try |
| { |
| return ASN1Null.getInstance(ASN1Primitive.fromByteArray((byte[])o)); |
| } |
| catch (IOException e) |
| { |
| throw new IllegalArgumentException("failed to construct NULL from byte[]: " + e.getMessage()); |
| } |
| catch (ClassCastException e) |
| { |
| throw new IllegalArgumentException("unknown object in getInstance(): " + o.getClass().getName()); |
| } |
| } |
| |
| return null; |
| } |
| |
| public int hashCode() |
| { |
| return -1; |
| } |
| |
| boolean asn1Equals( |
| ASN1Primitive o) |
| { |
| if (!(o instanceof ASN1Null)) |
| { |
| return false; |
| } |
| |
| return true; |
| } |
| |
| abstract void encode(ASN1OutputStream out) |
| throws IOException; |
| |
| public String toString() |
| { |
| return "NULL"; |
| } |
| } |