diff options
Diffstat (limited to 'pki/base/util/src/netscape/security/x509/GenericValueConverter.java')
-rw-r--r-- | pki/base/util/src/netscape/security/x509/GenericValueConverter.java | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/pki/base/util/src/netscape/security/x509/GenericValueConverter.java b/pki/base/util/src/netscape/security/x509/GenericValueConverter.java deleted file mode 100644 index 73bc1979c..000000000 --- a/pki/base/util/src/netscape/security/x509/GenericValueConverter.java +++ /dev/null @@ -1,143 +0,0 @@ -// --- BEGIN COPYRIGHT BLOCK --- -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License along -// with this program; if not, write to the Free Software Foundation, Inc., -// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -// -// (C) 2007 Red Hat, Inc. -// All rights reserved. -// --- END COPYRIGHT BLOCK --- -package netscape.security.x509; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.CharacterCodingException; -import java.nio.charset.CharsetEncoder; - -import netscape.security.util.ASN1CharStrConvMap; -import netscape.security.util.DerValue; - -/** - * A GenericValueConverter converts a string that is not associated with - * a particular attribute to a DER encoded ASN.1 character string type. - * Currently supports PrintableString, IA5String, BMPString T.61String and - * Universal String. - * - * <p> - * The conversion is done as follows. An encoder is obtained for the all the character sets from the global default - * ASN1CharStrConvMap. The encoders are then used to convert the string to the smallest character set first -- - * printableString. If the string contains characters outside of that character set, it is converted to the next - * character set -- IA5String character set. If that is not enough it is converted to a BMPString, then Universal String - * which contains all characters. - * - * @author Lily Hsiao, Slava Galperin at Netscape Communications, Inc. - * - */ - -public class GenericValueConverter implements AVAValueConverter { - public GenericValueConverter() { - } - - /** - * Converts a string to a DER encoded ASN.1 primtable string, defined here - * as a PrintableString, IA5String, T.61String, BMPString or - * UniversalString. The string is not expected to be encoded in any form. - * - * <p> - * If an encoder is not available for a character set that is needed to convert the string, the string cannot be - * converted and an IOException is thrown. For example, if the string contains characters outside the - * PrintableString character and only a PrintableString encoder is available then an IOException is thrown. - * - * @param s A string representing a generic attribute string value. - * - * @return The DER value of the attribute. - * - * @exception IOException if the string cannot be converted, such as - * when an encoder needed is - * unavailable. - */ - public DerValue getValue(String s) - throws IOException { - return getValue(s, null); - } - - public DerValue getValue(String valueString, byte[] tags) throws IOException { - // try to convert to printable, then t61 the universal - - // i.e. from minimal coverage to the broadest. - - if (tags == null || tags.length == 0) - tags = DefEncodingTags; - - for (int i = 0; i < tags.length; i++) { - try { - CharsetEncoder encoder = ASN1CharStrConvMap.getDefault().getEncoder(tags[i]); - if (encoder == null) - continue; - - CharBuffer charBuffer = CharBuffer.wrap(valueString.toCharArray()); - ByteBuffer byteBuffer = encoder.encode(charBuffer); - - return new DerValue(tags[i], byteBuffer.array(), byteBuffer.arrayOffset(), byteBuffer.limit()); - - } catch (CharacterCodingException e) { - continue; - } - } - - throw new IOException( - "Cannot convert the string value to a ASN.1 type"); - } - - /** - * Creates a DerValue from the byte array of BER encoded value. - * - * NOTE: currently only supports DER encoding (a form of BER) on input . - * - * @param berStream Byte array of a BER encoded value. - * - * @return DerValue object. - * - * @exception IOException If the BER value cannot be converted to a - * valid Directory String DER value. - */ - public DerValue getValue(byte[] berByteStream) - throws IOException { - // accepts any tag. - DerValue value = new DerValue(berByteStream); - return value; - } - - /** - * Converts a DerValue of ASN1 Character string type to a java string - * (the string is not encoded in any form). - * - * @param avaValue A DerValue - * @return A string representing the attribute value. - * @exception IOException if a decoder needed for the - * conversion is not available or if BER value - * is not one of the ASN1 character string types - * here. - */ - public String getAsString(DerValue avaValue) - throws IOException { - return avaValue.getASN1CharString(); - } - - private static byte DefEncodingTags[] = { - DerValue.tag_PrintableString, - DerValue.tag_IA5String, - DerValue.tag_BMPString, - DerValue.tag_UTF8String, - DerValue.tag_T61String, - DerValue.tag_UniversalString - }; -} |