tidea.pp 907 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. Program tidea;
  2. Uses Classes,Idea;
  3. Type
  4. PByte = ^Byte;
  5. Var M : TMemorystream;
  6. ES : TIDeaEncryptStream;
  7. DS : TIdeaDecryptStream;
  8. StartKey : ideacryptkey;
  9. EnKey,DeKey : ideakey;
  10. I,J : longint;
  11. begin
  12. M:=TMemoryStream.create;
  13. // generate some phoney key;
  14. For I:=0 to SizeOf(StartKey)-1 do
  15. PByte(@StartKey)[I]:=I;
  16. // Get encryption key
  17. EnKeyIdea(StartKey,enKey);
  18. ES:=TIDeaEncryptStream.Create(EnKey,M);
  19. For I:=1 to 65 do
  20. ES.Write(I,SizeOf(I));
  21. Writeln ('Position after Write : ',ES.Position);
  22. ES.Flush;
  23. Writeln ('Size of memory stream : ',M.Size);
  24. M.Seek(0,soFromBeginning);
  25. // Get decryption key
  26. DeKeyIdea(EnKey,DeKey);
  27. DS:=TIDeaDecryptStream.Create(DEKey,M);
  28. For I:=1 to 65 do
  29. begin
  30. DS.Read(J,SizeOf(J));
  31. If J<>I then
  32. Writeln ('Error; Read : ',J);
  33. end;
  34. Writeln ('Position after Reading : ',DS.Position);
  35. DS.destroy;
  36. end.