View Javadoc

1   /*
2    *   Copyright 2005 The Apache Software Foundation
3    *
4    *   Licensed under the Apache License, Version 2.0 (the "License");
5    *   you may not use this file except in compliance with the License.
6    *   You may obtain a copy of the License at
7    *
8    *       http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *   Unless required by applicable law or agreed to in writing, software
11   *   distributed under the License is distributed on an "AS IS" BASIS,
12   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *   See the License for the specific language governing permissions and
14   *   limitations under the License.
15   *
16   */
17  
18  package org.apache.asn1.der;
19  
20  import java.io.ByteArrayOutputStream;
21  import java.io.IOException;
22  
23  /***
24   * DER UniversalString object.
25   */
26  public class DERUniversalString extends DERString
27  {
28      private static final char[] table = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
29      
30      /***
31       * Basic DERObject constructor.
32       */
33      public DERUniversalString( byte[] value )
34      {
35      	super( UNIVERSAL_STRING, value );
36      }
37  
38      public String getString()
39      {
40          StringBuffer buf = new StringBuffer( "#" );
41          
42          ByteArrayOutputStream baos = new ByteArrayOutputStream();
43          ASN1OutputStream       aos = new ASN1OutputStream( baos );
44          
45          try
46          {
47              aos.writeObject( this );
48          }
49          catch (IOException e)
50          {
51             throw new RuntimeException( "Internal error encoding BitString." );
52          }
53          
54          byte[] string = baos.toByteArray();
55          
56          for ( int i = 0; i < string.length; i++ )
57          {
58              buf.append( table[ ( string[ i ] >>> 4 ) % 0xf ] );
59              buf.append( table[ string[ i ] & 0xf ] );
60          }
61          
62          return buf.toString();
63      }
64  }
65