|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
package com.sun.jndi.ldap; |
|
|
|
import java.io.OutputStream; |
|
import java.io.IOException; |
|
import java.io.ByteArrayInputStream; |
|
|
|
import sun.misc.HexDumpEncoder; |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public abstract class Ber { |
|
|
|
protected byte buf[]; |
|
protected int offset; |
|
protected int bufsize; |
|
|
|
protected Ber() { |
|
} |
|
|
|
public static void dumpBER(OutputStream outStream, String tag, byte[] bytes, |
|
int from, int to) { |
|
|
|
try { |
|
outStream.write('\n'); |
|
outStream.write(tag.getBytes("UTF8")); |
|
|
|
new HexDumpEncoder().encodeBuffer( |
|
new ByteArrayInputStream(bytes, from, to), |
|
outStream); |
|
|
|
outStream.write('\n'); |
|
} catch (IOException e) { |
|
try { |
|
outStream.write( |
|
"Ber.dumpBER(): error encountered\n".getBytes("UTF8")); |
|
} catch (IOException e2) { |
|
// ignore |
|
} |
|
} |
|
} |
|
|
|
//////////////////////////////////////////////////////////////////////////// |
|
// |
|
// some ASN defines |
|
// |
|
//////////////////////////////////////////////////////////////////////////// |
|
|
|
public static final int ASN_BOOLEAN = 0x01; |
|
public static final int ASN_INTEGER = 0x02; |
|
public static final int ASN_BIT_STRING = 0x03; |
|
public static final int ASN_SIMPLE_STRING = 0x04; |
|
public static final int ASN_OCTET_STR = 0x04; |
|
public static final int ASN_NULL = 0x05; |
|
public static final int ASN_OBJECT_ID = 0x06; |
|
public static final int ASN_SEQUENCE = 0x10; |
|
public static final int ASN_SET = 0x11; |
|
|
|
|
|
public static final int ASN_PRIMITIVE = 0x00; |
|
public static final int ASN_UNIVERSAL = 0x00; |
|
public static final int ASN_CONSTRUCTOR = 0x20; |
|
public static final int ASN_APPLICATION = 0x40; |
|
public static final int ASN_CONTEXT = 0x80; |
|
public static final int ASN_PRIVATE = 0xC0; |
|
|
|
public static final int ASN_ENUMERATED = 0x0a; |
|
|
|
final static class EncodeException extends IOException { |
|
private static final long serialVersionUID = -5247359637775781768L; |
|
EncodeException(String msg) { |
|
super(msg); |
|
} |
|
} |
|
|
|
final static class DecodeException extends IOException { |
|
private static final long serialVersionUID = 8735036969244425583L; |
|
DecodeException(String msg) { |
|
super(msg); |
|
} |
|
} |
|
} |