57 lines
1.1 KiB
ActionScript
57 lines
1.1 KiB
ActionScript
package com.hurlant.util.der
|
|
{
|
|
import flash.utils.ByteArray;
|
|
|
|
public class ObjectIdentifier implements IAsn1Type
|
|
{
|
|
private var type:uint;
|
|
private var len:uint;
|
|
private var oid:Array;
|
|
|
|
public function ObjectIdentifier(type:uint, length:uint, b:ByteArray) {
|
|
this.type = type;
|
|
this.len = length;
|
|
parse(b);
|
|
}
|
|
|
|
private function parse(b:ByteArray):void {
|
|
// parse stuff
|
|
// first byte = 40*value1 + value2
|
|
var o:uint = b.readUnsignedByte();
|
|
var a:Array = []
|
|
a.push(uint(o/40));
|
|
a.push(uint(o%40));
|
|
var v:uint = 0;
|
|
while (b.bytesAvailable>0) {
|
|
o = b.readUnsignedByte();
|
|
var last:Boolean = (o&0x80)==0;
|
|
o &= 0x7f;
|
|
v = v*128 + o;
|
|
if (last) {
|
|
a.push(v);
|
|
v = 0;
|
|
}
|
|
}
|
|
oid = a;
|
|
}
|
|
|
|
public function getLength():uint
|
|
{
|
|
return len;
|
|
}
|
|
|
|
public function getType():uint
|
|
{
|
|
return type;
|
|
}
|
|
|
|
public function toString():String {
|
|
return DER.indent+oid.join(".");
|
|
}
|
|
|
|
public function dump():String {
|
|
return "OID["+type+"]["+len+"]["+toString()+"]";
|
|
}
|
|
|
|
}
|
|
} |