Newsgroup: it.comp.lang.visual-basic
Titolo: per favore

Avrei bisogno di convertire il seguente codice in visual basic
siccome ne capisco ben poca  cosa c'e' qualcuno che puo' aiutarmi?
accetto qualunque cosa
ciao
procedure decripta (CW: array of byte;K:array of byte;var DW:array of byte);
var C:byte;
    ciclo,x,y,i:integer;
    A,B:integer;
    NCW:array[0..7] of byte;
  begin
  { 1a fase  Preparazione della chiave}
  C:=0;
  repeat
    begin
    k[0]:=k[0] XOR T1[(k[15] XOR k[1] XOR C)];
    k[1]:=k[1] XOR T1[(k[0] XOR k[2] XOR C)];
    k[2]:=k[2] XOR T1[(k[1] XOR k[3] XOR C)];
    k[3]:=k[3] XOR T1[(k[2] XOR k[4] XOR C)];
    c:=c+1;
    k[4]:=k[4] XOR T1[(k[3] XOR k[5] XOR C)];
    k[5]:=k[5] XOR T1[(k[4] XOR k[6] XOR C)];
    k[6]:=k[6] XOR T1[(k[5] XOR k[7] XOR C)];
    k[7]:=k[7] XOR T1[(k[6] XOR k[8] XOR C)];
    c:=c+1;
    k[8]:=k[8] XOR T1[(k[7] XOR k[9] XOR C)];
    k[9]:=k[9] XOR T1[(k[8] XOR k[10] XOR C)];
    k[10]:=k[10] XOR T1[(k[9] XOR k[11] XOR C)];
    k[11]:=k[11] XOR T1[(k[10] XOR k[12] XOR C)];
    c:=c+1;
    k[12]:=k[12] XOR T1[(k[11] XOR k[13] XOR C)];
    k[13]:=k[13] XOR T1[(k[12] XOR k[14] XOR C)];
    k[14]:=k[14] XOR T1[(k[13] XOR k[15] XOR C)];
    k[15]:=k[15] XOR T1[(k[14] XOR k[0] XOR C)];
    c:=c+1;
  end;
  until C=$10;  {preparazione chiave terminata}
{ 2a fase Manipolazione dei dati che S composta di 16 cicli uguali}
  C:=C-1;
  I:=$0F;
  repeat
    begin
    { 1o passo: }
    NCW[4]:=CW[4];
    NCW[5]:=CW[5];
    NCW[6]:=CW[6];
    NCW[7]:=CW[7];
    NCW[7]:=NCW[7] XOR K[0+I];
    A:=I+1;
    B:=I-1;
    if A>15 then
      A:=0;
    if B<0 then
      B:=$0F;
    K[0+I]:=K[0+I] XOR T1[C XOR K[A] XOR K[B]];
    I:=I-1;
    If i<0 then
     begin
     I:=$0F;
     end;
    NCW[6]:=NCW[6] XOR K[0+I];
    A:=I+1;
    B:=I-1;
    if A>15 then
      A:=0;
    if B<0 then
      B:=15;
    K[0+I]:=K[0+I] XOR T1[C XOR K[A] XOR K[B]];
    I:=I-1;
    If i<0 then
     begin
     I:=$F;
     end;
    NCW[5]:=NCW[5] XOR K[0+I];
    A:=I+1;
    B:=I-1;
    if A>15 then
      A:=0;
    if B<0 then
      B:=15;
    K[0+I]:=K[0+I] XOR T1[C XOR K[A] XOR K[B]];
    I:=I-1;
    If i<0 then
     begin
     I:=$F;
     end;
    NCW[4]:=NCW[4] XOR K[0+I];
    A:=I+1;
    B:=I-1;
    if A>15 then
      A:=0;
    if B<0 then
      B:=15;
    K[0+I]:=K[0+I] XOR T1[C XOR K[A] XOR K[B]];
    I:=I-1;
    If I<0 then
     begin
     I:=$0F;
     end;
    { 2O PASSO}
    NCW[4]:=T1[NCW[4]];
    NCW[5]:=T1[NCW[5]];
    NCW[6]:=T1[NCW[6]];
    NCW[7]:=T1[NCW[7]];
    NCW[4]:=NCW[7] XOR NCW[4];
    NCW[6]:=T2[SOMMA_VERIFICATA(SCAMBIA_NIBBLE(NCW[7]),NCW[6])];
    NCW[7]:=NCW[6] XOR NCW[7];
    NCW[5]:=T2[SOMMA_VERIFICATA(SCAMBIA_NIBBLE(NCW[6]),NCW[5])];
    NCW[6]:=NCW[5] XOR NCW[6];
    NCW[4]:=T2[SOMMA_VERIFICATA(SCAMBIA_NIBBLE(NCW[5]),NCW[4])];
    {ora si deve usare T1 come segue}
    NCW[5]:=NCW[4] XOR NCW[5];
    NCW[7]:=T1[SOMMA_VERIFICATA(SCAMBIA_NIBBLE(NCW[4]),NCW[7])];
    NCW[4]:=NCW[7] XOR NCW[4];
    NCW[6]:=T1[SOMMA_VERIFICATA(SCAMBIA_NIBBLE(NCW[7]),NCW[6])];
    NCW[7]:=NCW[6] XOR NCW[7];
    NCW[5]:=T1[SOMMA_VERIFICATA(SCAMBIA_NIBBLE(NCW[6]),NCW[5])];
    NCW[6]:=NCW[5] XOR NCW[6];
    NCW[5]:=NCW[4] XOR NCW[5];
    CW[0]:=T2[NCW[5]] XOR CW[0];
    CW[1]:=T2[NCW[7]] XOR CW[1];
    CW[2]:=T2[NCW[4]] XOR CW[2];
    CW[3]:=T2[NCW[6]] XOR CW[3];
    {3o PASSO}
    C:=C-1;
      if C<>$FF then
        begin
        SCAMBIA_BYTE(CW[0],CW[4]);
        SCAMBIA_BYTE(CW[1],CW[5]);
        SCAMBIA_BYTE(CW[2],CW[6]);
        SCAMBIA_BYTE(CW[3],CW[7]);
        end;
    end;
  until c=$FF;
  for i:= 0 to 7 do
   begin
   dw[i]:=cw[i];
   end;
end;{decripta - algoritmo -}

accetto qualunque cosa
Anche noi accettiamo contante, assegni, bonifici, ecc..! <g>
Dev'essere la giornata del "pagare denaro, vedere cammello"! :-(
Assomiglia al pascal... č una procedura che prende 3 array di byte e
ci lavora su: 
":=" dovrebbe essere un'assegnazione, 
Repeat...until beh dovrebbe essere intuitivo a cosa equivale in VB,
XOR č un'operazione logica al livello di bit, 
con var[n] accedi all'n-esimo valore dell'array var,
 ";" serve a indicare la fine del comando, 
le parentesi graffe includono i commenti, 
$numero immagino sia il modo per far trattare al compilatore il numero
come se fosse esadecimale.
Il codice richiama alcuen altre funzioni sche spero siano in tuo
possesso altrimenti non ci fai niente...
Ciao
-- 
Visita il sito comune del NG: 
http://www.it-lang-vb.net
Visit: 
http://www.hardwaretips.com


praticamente tutto, almeno adesso so che e' pascal
solo che sono ancora al punto di prima, se hai altri
aiuti....
ciao


E forse è meglio che continui a non capire và...
Quello che hai postato sul NG non è altro che la routine di decodifica del
Sistema SECA??!!!!!!
Forse siamo arrivati troppo in la!! Chedere spudoratamente una cosa del
genere su un NG che peraltro neache se ne occupa!!!! Almeno ste cose
chiedele nel posto giusto..
Fatti l'abbonamento che forse è meglio..



beh questo mi sembra un po' azzardato visto che non
ho la parabola e poi in italia a scopo di studio
si puo fare questo ed altro
ciao

 ciao
Si si, studio... AH AH AH!! Almeno raccontalo a qualcuno che non l'ha già
fatto prima di te.. ;-)
Cmq sei liberissimo di farlo, ma siccome si tratta di studio, come dici tu,
almeno io mi sono impegnato per farlo da solo.. Sta proprio li il bello..
Cmq di docuemntazione on line ce n'e veramente un sacco che puo' aiutarti e
la routine che hai in mano probabilmente è incompleta..
Ti dovrebbero mancare a occhio e croce almeno 3 routine e una dichiarazione
di 2 array da 255 elementi..
studio,studio,studio = sudore, fatica,soddisfazione...
Ciao.Mich.
PS Se ti serve della documentazione fammi sapere, quella se vuoi te la
mando..


volevo farlo ma la tua mail e' inesistente
ciao