public static TLVNode Create(ASN1TAG tag, byte[] octets) { // UNDONE // innerLength int tmpLen=octets.Length; return null; }
public static TLVNode Create(ASN1TAG tag, ArrayList children) { // innerLength int tmpLen=0; foreach(TLVNode t in children) { tmpLen += t.outerLength; } //UNDONE return null; }
private void ProcessTAG(ASN1TAG inputTag) { if (inputTag.IsExplicit()) { // TODO - sfiksaj ovo. /* ako je TAG explicit - stripaj omotac oko DER-a... */ /* ako je IMPLICIT - ignoriraj..., ostalo ne bi trebalo biti vazno... */ SimpleDER der = valueOctets.Pop() as SimpleDER; SimpleDER unwrappedDER = new SimpleDER(der.GetValueOctets()); PushDER(unwrappedDER); // sad nastavi dalje - sve dok ne dodjemo do simple taga... ProcessTAG(((EXPLICITTag)inputTag).underTag); } if (inputTag.IsImplicit()) { /// Go to the next step... ProcessTAG(((IMPLICITTag)inputTag).underTag); } }
//FIXME public static byte[] MakeIdOctets(ASN1TAG TAG) { if (TAG.IsImplicit()) { } else { } return null; //FIXME }
public static BEREncoding Create(ASN1TAG TAG, ExperimentalObject valueObject) { byte[] tag_Octets = MakeIdOctets(TAG); byte[] value_Octets; if (TAG.IsExplicit()) { value_Octets = (valueObject.asDER()).GetBERCode(); } else { value_Octets = valueObject.Get_BER_Value_Octets() } return new BEREncoding(tag_Octets, value_Octets); }
public BEREncoding(ASN1TAG TAG, byte[] valueOctets):this() { byte[] idOctets = MakeIdOctets(TAG); byte[] lenOctets = MakeLenOctets(valueOctets.Length); IdOctets = idOctets; LenOctets = lenOctets; ContentsOctets = valueOctets; decQ = true; this.Encode(idOctets, lenOctets, valueOctets); }
public bool Match(ASN1TAG inputTag) { /* probaj iz Tag-a kreirati "povrsinske" byte-ove i usporedi ih sa * tag oktetima. */ if (inputTag.IsMultiTag()) { ASN1TAG[] tags = (inputTag as MultiASN1TAG).GetAllTags(); foreach(ASN1TAG tag in tags) { if (this.Match(tag)) { return true; } } return false; } else { SimpleASN1TAG simpleTag = inputTag.ExtractSimpleOuterTag(); return this.MatchWithSimpleTag(simpleTag); } }
public static TagValueNode Create(ASN1TAG inputTag, ArrayList nodes) { return new TagValueMiddleNode(inputTag, nodes); }
public static TagValueNode Create(ASN1TAG inputTag, byte[] valueOctets) { return new TagValueLeafNode(inputTag, valueOctets); }
protected TagValueNode(ASN1TAG inputTag) { Tag = inputTag; }
public TagValueMiddleNode(ASN1TAG inputTag, ArrayList nodes):base(inputTag) { Nodes = nodes; }
public TagValueLeafNode(ASN1TAG inputTag, byte[] valueOctets):base(inputTag) { ValueOctets = valueOctets; }
public IMPLICITTag(int tagNumber, ASN1TAG inputUnderTag):base(tagNumber, inputUnderTag){}
public TaggedTAG(int tagNumber, ASN1TAG inputUnderTag):this() { t = tagNumber; underTag = inputUnderTag; }