public override void Visit_SEQUENCE(mASN1CommonDenominator seq) { //markiraj pocetak trpanja SEQUENCE komponenti Push(state.START_OF_SEQUENCE); SEQUENCE s = (seq as SEQUENCE); // obradi(potrpaj) children-objekte na stack foreach(ExperimentalObject eo in s.Components) { /// TODO: Before visiting must check if non-optional are missing. Visit(eo); } /* sad Pop() until START_OF_SEQUENCE, pazi na obrnuti redoslijed */ ArrayList TVList = new ArrayList(); TagValueNode node; while( (node=stack.Pop() as TagValueNode)!=null ) { TVList.Insert(0, node); } node = TagValueNode.Create(s.TAG, TVList); // TODO: jos bi trebalo markirati da se SEQUENCE kodira "constructed". // mozda bi to trebalo tutnuti u SEQUENCE tag i sve zajedno preimenovati // u TagInfo. Or something. Push(node); }
public override void Visit_NULL(mASN1CommonDenominator ob) { byte[] value_Octets=new byte[]{}; TagValueNode node = TagValueNode.Create(ob.TAG, value_Octets); Push(node); }
public override void Visit_BOOLEAN(mASN1CommonDenominator ob) { byte boolCode = 0x00; BOOLEAN b = (ob as BOOLEAN); if (b.boolValue) boolCode = 0xff; byte[] value_Octets=new byte[]{boolCode}; TagValueNode node = TagValueNode.Create(b.TAG, value_Octets); Push(node); }
public override void Visit(mASN1CommonDenominator ob) { if (ob!=null) { ob.acceptVisitor(this); } else { this.Push(state.MISSING_COMPONENT); } }
public override void Visit(mASN1CommonDenominator ob) { ProcessTAG(ob.TAG); currentInstance = (ob as ExperimentalType).Instance(); if (currentInstance == null) { //DIZI FRKU! } ob.acceptVisitor(this); }
public override void Visit_SEQUENCE(mASN1CommonDenominator ob) { SEQUENCE inst = currentInstance as SEQUENCE; SimpleDER[] ders = (valueOctets.Pop() as SimpleDER).Unwrap(); /* pospajaj odgovarajuce DERove sa njihovim instancama, i sve * gurni u SEQUENCE instancu. */ SEQUENCE_Process_DERs(inst, ders); PushInstance(inst); }
public override void Visit_INTEGER(mASN1CommonDenominator ob) { //TODO: ovo jos nisam ni na papiru!!! :-( // probati na AlgorithmIdentifier - the classic example. throw new NotImplementedException(); }
public override void Visit_NULL(mASN1CommonDenominator ob) { SimpleDER der = PopDER(); PushInstance(currentInstance); }
public override void Visit_BOOLEAN(mASN1CommonDenominator ob) { SimpleDER d = PopDER(); byte[] bytes = d.GetValueOctets(); if (bytes[0]==0xff) { (currentInstance as BOOLEAN).boolValue = true; } else { (currentInstance as BOOLEAN).boolValue = false; } PushInstance(currentInstance); }
public override void Visit_ANY(mASN1CommonDenominator ob) { /// a tricky one? throw new NotImplementedException(); }
public override void Visit_INTEGER(mASN1CommonDenominator ob) { throw new NotImplementedException(); }