1 19 20 package com.maverick.crypto.asn1; 21 22 import java.io.IOException ; 23 24 27 public class DERT61String 28 extends DERObject 29 implements DERString 30 { 31 String string; 32 33 38 public static DERT61String getInstance( 39 Object obj) 40 { 41 if (obj == null || obj instanceof DERT61String) 42 { 43 return (DERT61String)obj; 44 } 45 46 if (obj instanceof ASN1OctetString) 47 { 48 return new DERT61String(((ASN1OctetString)obj).getOctets()); 49 } 50 51 if (obj instanceof ASN1TaggedObject) 52 { 53 return getInstance(((ASN1TaggedObject)obj).getObject()); 54 } 55 56 throw new IllegalArgumentException ("illegal object in getInstance: " + obj.getClass().getName()); 57 } 58 59 68 public static DERT61String getInstance( 69 ASN1TaggedObject obj, 70 boolean explicit) 71 { 72 return getInstance(obj.getObject()); 73 } 74 75 78 public DERT61String( 79 byte[] string) 80 { 81 char[] cs = new char[string.length]; 82 83 for (int i = 0; i != cs.length; i++) 84 { 85 cs[i] = (char)(string[i] & 0xff); 86 } 87 88 this.string = new String (cs); 89 } 90 91 94 public DERT61String( 95 String string) 96 { 97 this.string = string; 98 } 99 100 public String getString() 101 { 102 return string; 103 } 104 105 void encode( 106 DEROutputStream out) 107 throws IOException 108 { 109 out.writeEncoded(T61_STRING, this.getOctets()); 110 } 111 112 public byte[] getOctets() 113 { 114 char[] cs = string.toCharArray(); 115 byte[] bs = new byte[cs.length]; 116 117 for (int i = 0; i != cs.length; i++) 118 { 119 bs[i] = (byte)cs[i]; 120 } 121 122 return bs; 123 } 124 125 public boolean equals( 126 Object o) 127 { 128 if ((o == null) || !(o instanceof DERT61String)) 129 { 130 return false; 131 } 132 133 return this.getString().equals(((DERT61String)o).getString()); 134 } 135 } 136 | Popular Tags |