Files
moeplayer/source/com/hurlant/util/der/ObjectIdentifier.as
T
2020-09-17 18:40:01 +08:00

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()+"]";
}
}
}