sha1test.pp 901 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. program sha1test;
  2. {$mode objfpc}{$h+}
  3. uses sha1;
  4. var
  5. code: cardinal;
  6. s, sdig: string;
  7. i: integer;
  8. ctx: TSHA1Context;
  9. d: TSHA1Digest;
  10. begin
  11. code := 0;
  12. sdig := SHA1Print(SHA1String('abc'));
  13. if sdig <> 'a9993e364706816aba3e25717850c26c9cd0d89d' then
  14. code := code or 1;
  15. sdig := SHA1Print(SHA1String('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'));
  16. if sdig <> '84983e441c3bd26ebaae4aa1f95129e5e54670f1' then
  17. code := code or 2;
  18. // SHA-1 of a million 'a' symbols
  19. SetLength(s, 1000);
  20. for i := 1 to 1000 do s[i] := 'a';
  21. SHA1Init(ctx);
  22. for i := 0 to 999 do
  23. SHA1Update(ctx, PChar(s)^, 1000);
  24. SHA1Final(ctx, d);
  25. sdig := SHA1Print(d);
  26. if sdig <> '34aa973cd4c4daa4f61eeb2bdbad27316534016f' then
  27. code := code or 4;
  28. if code = 0 then
  29. writeln('Basic SHA-1 tests passed')
  30. else
  31. writeln('SHA-1 tests failed: ', code);
  32. Halt(code);
  33. end.