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

nl.open.jwtdependency.org.bouncycastle.asn1.x509.DisplayText Maven / Gradle / Ivy

Go to download

This is a drop in replacement for the auth0 java-jwt library (see https://github.com/auth0/java-jwt). This jar makes sure there are no external dependencies (e.g. fasterXml, Apacha Commons) needed. This is useful when deploying to an application server (e.g. tomcat with Alfreso or Pega).

The newest version!

package org.bouncycastle.asn1.x509;

import org.bouncycastle.asn1.ASN1Choice;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1String;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.DERBMPString;
import org.bouncycastle.asn1.DERIA5String;
import org.bouncycastle.asn1.DERUTF8String;
import org.bouncycastle.asn1.DERVisibleString;

/**
 * DisplayText class, used in
 * CertificatePolicies X509 V3 extensions (in policy qualifiers).
 *
 * 

It stores a string in a chosen encoding. *

 * DisplayText ::= CHOICE {
 *      ia5String        IA5String      (SIZE (1..200)),
 *      visibleString    VisibleString  (SIZE (1..200)),
 *      bmpString        BMPString      (SIZE (1..200)),
 *      utf8String       UTF8String     (SIZE (1..200)) }
 * 
* @see PolicyQualifierInfo * @see PolicyInformation */ public class DisplayText extends ASN1Object implements ASN1Choice { /** * Constant corresponding to ia5String encoding. * */ public static final int CONTENT_TYPE_IA5STRING = 0; /** * Constant corresponding to bmpString encoding. * */ public static final int CONTENT_TYPE_BMPSTRING = 1; /** * Constant corresponding to utf8String encoding. * */ public static final int CONTENT_TYPE_UTF8STRING = 2; /** * Constant corresponding to visibleString encoding. * */ public static final int CONTENT_TYPE_VISIBLESTRING = 3; /** * Describe constant DISPLAY_TEXT_MAXIMUM_SIZE here. * */ public static final int DISPLAY_TEXT_MAXIMUM_SIZE = 200; int contentType; ASN1String contents; /** * Creates a new DisplayText instance. * * @param type the desired encoding type for the text. * @param text the text to store. Strings longer than 200 * characters are truncated. */ public DisplayText(int type, String text) { if (text.length() > DISPLAY_TEXT_MAXIMUM_SIZE) { // RFC3280 limits these strings to 200 chars // truncate the string text = text.substring (0, DISPLAY_TEXT_MAXIMUM_SIZE); } contentType = type; switch (type) { case CONTENT_TYPE_IA5STRING: contents = new DERIA5String(text); break; case CONTENT_TYPE_UTF8STRING: contents = new DERUTF8String(text); break; case CONTENT_TYPE_VISIBLESTRING: contents = new DERVisibleString(text); break; case CONTENT_TYPE_BMPSTRING: contents = new DERBMPString(text); break; default: contents = new DERUTF8String(text); break; } } /** * Creates a new DisplayText instance. * * @param text the text to encapsulate. Strings longer than 200 * characters are truncated. */ public DisplayText(String text) { // by default use UTF8String if (text.length() > DISPLAY_TEXT_MAXIMUM_SIZE) { text = text.substring(0, DISPLAY_TEXT_MAXIMUM_SIZE); } contentType = CONTENT_TYPE_UTF8STRING; contents = new DERUTF8String(text); } /** * Creates a new DisplayText instance. *

Useful when reading back a DisplayText class * from it's ASN1Encodable/DEREncodable form. * * @param de a DEREncodable instance. */ private DisplayText(ASN1String de) { contents = de; if (de instanceof DERUTF8String) { contentType = CONTENT_TYPE_UTF8STRING; } else if (de instanceof DERBMPString) { contentType = CONTENT_TYPE_BMPSTRING; } else if (de instanceof DERIA5String) { contentType = CONTENT_TYPE_IA5STRING; } else if (de instanceof DERVisibleString) { contentType = CONTENT_TYPE_VISIBLESTRING; } else { throw new IllegalArgumentException("unknown STRING type in DisplayText"); } } public static DisplayText getInstance(Object obj) { if (obj instanceof ASN1String) { return new DisplayText((ASN1String)obj); } else if (obj == null || obj instanceof DisplayText) { return (DisplayText)obj; } throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName()); } public static DisplayText getInstance( ASN1TaggedObject obj, boolean explicit) { return getInstance(obj.getObject()); // must be explicitly tagged } public ASN1Primitive toASN1Primitive() { return (ASN1Primitive)contents; } /** * Returns the stored String object. * * @return the stored text as a String. */ public String getString() { return contents.getString(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy