1 package com.lowagie.bc.asn1; 2 3 import java.io.IOException; 4 5 8 public class DERVisibleString 9 extends DERObject 10 implements DERString 11 { 12 String string; 13 14 19 public static DERVisibleString getInstance( 20 Object obj) 21 { 22 if (obj == null || obj instanceof DERVisibleString) 23 { 24 return (DERVisibleString)obj; 25 } 26 27 if (obj instanceof ASN1OctetString) 28 { 29 return new DERVisibleString(((ASN1OctetString)obj).getOctets()); 30 } 31 32 if (obj instanceof ASN1TaggedObject) 33 { 34 return getInstance(((ASN1TaggedObject)obj).getObject()); 35 } 36 37 throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName()); 38 } 39 40 49 public static DERVisibleString getInstance( 50 ASN1TaggedObject obj, 51 boolean explicit) 52 { 53 return getInstance(obj.getObject()); 54 } 55 56 59 public DERVisibleString( 60 byte[] string) 61 { 62 char[] cs = new char[string.length]; 63 64 for (int i = 0; i != cs.length; i++) 65 { 66 cs[i] = (char)(string[i] & 0xff); 67 } 68 69 this.string = new String(cs); 70 } 71 72 75 public DERVisibleString( 76 String string) 77 { 78 this.string = string; 79 } 80 81 public String getString() 82 { 83 return string; 84 } 85 86 public byte[] getOctets() 87 { 88 char[] cs = string.toCharArray(); 89 byte[] bs = new byte[cs.length]; 90 91 for (int i = 0; i != cs.length; i++) 92 { 93 bs[i] = (byte)cs[i]; 94 } 95 96 return bs; 97 } 98 99 void encode( 100 DEROutputStream out) 101 throws IOException 102 { 103 out.writeEncoded(VISIBLE_STRING, this.getOctets()); 104 } 105 106 public boolean equals( 107 Object o) 108 { 109 if ((o == null) || !(o instanceof DERVisibleString)) 110 { 111 return false; 112 } 113 114 return this.getString().equals(((DERVisibleString)o).getString()); 115 } 116 } 117 | Popular Tags |