1 19 20 package com.maverick.util; 21 22 import java.io.ByteArrayOutputStream ; 23 24 29 public class SimpleASNWriter { 30 private ByteArrayOutputStream data; 31 32 35 public SimpleASNWriter() { 36 this.data = new ByteArrayOutputStream (); 37 } 38 39 44 public void writeByte(int b) { 45 data.write(b); 46 } 47 48 53 public void writeData(byte[] b) { 54 writeLength(b.length); 55 this.data.write(b, 0, b.length); 56 } 57 58 63 public void writeLength(int length) { 64 if (length < 0x80) { 65 data.write(length); 66 } 67 else { 68 if (length < 0x100) { 69 data.write(0x81); 70 data.write(length); 71 } 72 else if (length < 0x10000) { 73 data.write(0x82); 74 data.write(length >>> 8); 75 data.write(length); 76 } 77 else if (length < 0x1000000) { 78 data.write(0x83); 79 data.write(length >>> 16); 80 data.write(length >>> 8); 81 data.write(length); 82 } 83 else { 84 data.write(0x84); 85 data.write(length >>> 24); 86 data.write(length >>> 16); 87 data.write(length >>> 8); 88 data.write(length); 89 } 90 } 91 } 92 93 98 public byte[] toByteArray() { 99 return data.toByteArray(); 100 } 101 } 102 | Popular Tags |