CryptoLibTestBase.pas 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. unit CryptoLibTestBase;
  2. interface
  3. {$IFDEF FPC}
  4. {$WARNINGS OFF}
  5. {$NOTES OFF}
  6. {$ENDIF FPC}
  7. uses
  8. SysUtils,
  9. {$IFDEF FPC}
  10. fpcunit,
  11. testregistry,
  12. {$ELSE}
  13. TestFramework,
  14. {$ENDIF FPC}
  15. ClpEncoders,
  16. ClpArrayUtils;
  17. type
  18. TCryptoLibTestCase = class abstract(TTestCase)
  19. end;
  20. type
  21. TCryptoLibAlgorithmTestCase = class abstract(TCryptoLibTestCase)
  22. protected
  23. function DecodeHex(const data: String): TBytes;
  24. function EncodeHex(const data: TBytes): String;
  25. function DecodeBase64(const data: String): TBytes;
  26. procedure ZeroFill(const data: TBytes);
  27. function Prepend(const data: TBytes; b: Byte): TBytes;
  28. function AreEqual(const A, b: TBytes): Boolean;
  29. end;
  30. implementation
  31. { TCryptoLibAlgorithmTestCase }
  32. function TCryptoLibAlgorithmTestCase.DecodeBase64(const data: String): TBytes;
  33. begin
  34. result := TBase64.Decode(data);
  35. end;
  36. function TCryptoLibAlgorithmTestCase.DecodeHex(const data: String): TBytes;
  37. begin
  38. result := THex.Decode(data);
  39. end;
  40. function TCryptoLibAlgorithmTestCase.EncodeHex(const data: TBytes): String;
  41. begin
  42. result := THex.Encode(data);
  43. end;
  44. function TCryptoLibAlgorithmTestCase.Prepend(const data: TBytes;
  45. b: Byte): TBytes;
  46. begin
  47. result := TArrayUtils.Prepend(data, b);
  48. end;
  49. procedure TCryptoLibAlgorithmTestCase.ZeroFill(const data: TBytes);
  50. begin
  51. TArrayUtils.ZeroFill(data);
  52. end;
  53. function TCryptoLibAlgorithmTestCase.AreEqual(const A, b: TBytes): Boolean;
  54. begin
  55. result := TArrayUtils.AreEqual(A, b);
  56. end;
  57. end.