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); } }
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); }