All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.asn1.ASN1Null Maven / Gradle / Ivy

Go to download

The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.

The newest version!
package org.bouncycastle.asn1;

import java.io.IOException;

/**
 * A NULL object - use DERNull.INSTANCE for populating structures.
 */
public abstract class ASN1Null
    extends ASN1Primitive
{
    static final ASN1UniversalType TYPE = new ASN1UniversalType(ASN1Null.class, BERTags.NULL)
    {
        ASN1Primitive fromImplicitPrimitive(DEROctetString octetString)
        {
            return createPrimitive(octetString.getOctets());
        }
    };

    /**
     * Return an instance of ASN.1 NULL from the passed in object.
     * 

* Accepted inputs: *

    *
  • null → null *
  • {@link ASN1Null} object *
  • a byte[] containing ASN.1 NULL object *
*

* * @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)TYPE.fromByteArray((byte[])o); } catch (IOException e) { throw new IllegalArgumentException("failed to construct NULL from byte[]: " + e.getMessage()); } } return null; } public static ASN1Null getInstance(ASN1TaggedObject taggedObject, boolean explicit) { return (ASN1Null)TYPE.getContextInstance(taggedObject, explicit); } ASN1Null() { } public int hashCode() { return -1; } boolean asn1Equals( ASN1Primitive o) { if (!(o instanceof ASN1Null)) { return false; } return true; } public String toString() { return "NULL"; } static ASN1Null createPrimitive(byte[] contents) { if (0 != contents.length) { throw new IllegalStateException("malformed NULL encoding encountered"); } return DERNull.INSTANCE; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy