| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- unit IdTestHMACSHA1;
- interface
- uses
- IdHMACSHA1, IdSys, IdObjs, IdGlobal;
- type
- TIdTestHMACSHA1 = class(TIdPersistent)
- private
- FHash: TIdHMACSHA1;
- function GenerateByteArray(AValue: Byte; ACount: Integer) : TIdBytes;
- public
- constructor Create; virtual;
- destructor Destroy; override;
- published
- procedure TestIETF1;
- procedure TestIETF2;
- procedure TestIETF3;
- procedure TestIETF4;
- procedure TestIETF5;
- procedure TestIETF6;
- procedure TestIETF7;
- end;
- implementation
- { TIdTestHMACSHA1 }
- constructor TIdTestHMACSHA1.Create;
- begin
- inherited;
- FHash := TIdHMACSHA1.Create;
- end;
- destructor TIdTestHMACSHA1.Destroy;
- begin
- Sys.FreeAndNil(FHash);
- inherited;
- end;
- function TIdTestHMACSHA1.GenerateByteArray(AValue: Byte;
- ACount: Integer): TIdBytes;
- var
- I: Integer;
- TempBuffer: TIdBytes;
- begin
- SetLength(TempBuffer, ACount);
- for I := 0 to ACount - 1 do
- begin
- TempBuffer[I] := AValue;
- end;
- Result := TempBuffer;
- SetLength(TempBuffer, 0);
- end;
- procedure TIdTestHMACSHA1.TestIETF2;
- begin
- FHash.Key := ToBytes('Jefe');
- Assert(Sys.LowerCase(ToHex(FHash.HashValue(ToBytes('what do ya want for nothing?')))) = 'effcdf6ae5eb2fa2d27416d5f184df9c259a7c79');
- end;
- procedure TIdTestHMACSHA1.TestIETF3;
- var
- TempBuf: TIdBytes;
- begin
- FHash.Key := GenerateByteArray($AA, 20);
- TempBuf := GenerateByteArray($DD, 50);
- Assert(Sys.LowerCase(ToHex(FHash.HashValue(TempBuf))) = '125d7342b9ac11cd91a39af48aa17b4f63f175d3');
- end;
- procedure TIdTestHMACSHA1.TestIETF1;
- begin
- FHash.Key := GenerateByteArray($0B, 20);
- Assert(Sys.LowerCase(ToHex(FHash.HashValue(ToBytes('Hi There')))) = 'b617318655057264e28bc0b6fb378c8ef146be00');
- end;
- procedure TIdTestHMACSHA1.TestIETF6;
- begin
- FHash.Key := GenerateByteArray($AA, 80);
- Assert(Sys.LowerCase(ToHex(FHash.HashValue(ToBytes('Test Using Larger Than Block-Size Key - Hash Key First')))) = 'aa4ae5e15272d00e95705637ce8a3b55ed402112');
- end;
- procedure TIdTestHMACSHA1.TestIETF7;
- var
- FData: TIdBytes;
- begin
- FHash.Key := GenerateByteArray($AA, 80);
- FData := ToBytes('Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data');
- Assert(Sys.LowerCase(ToHex(FHash.HashValue(FData))) = 'e8e99d0f45237d786d6bbaa7965c7808bbff1a91');
- end;
- procedure TIdTestHMACSHA1.TestIETF4;
- var
- LByteArray: TIdBytes;
- begin
- SetLength(LByteArray, 25);
- LByteArray[0] := $01;
- LByteArray[1] := $02;
- LByteArray[2] := $03;
- LByteArray[3] := $04;
- LByteArray[4] := $05;
- LByteArray[5] := $06;
- LByteArray[6] := $07;
- LByteArray[7] := $08;
- LByteArray[8] := $09;
- LByteArray[9] := $0A;
- LByteArray[10] := $0B;
- LByteArray[11] := $0C;
- LByteArray[12] := $0D;
- LByteArray[13] := $0E;
- LByteArray[14] := $0F;
- LByteArray[15] := $10;
- LByteArray[16] := $11;
- LByteArray[17] := $12;
- LByteArray[18] := $13;
- LByteArray[19] := $14;
- LByteArray[20] := $15;
- LByteArray[21] := $16;
- LByteArray[22] := $17;
- LByteArray[23] := $18;
- LByteArray[24] := $19;
- FHash.Key := LByteArray;
- Assert(Sys.LowerCase(ToHex(FHash.HashValue(GenerateByteArray($CD, 50)))) = '4c9007f4026250c6bc8414f9bf50c86c2d7235da');
- end;
- procedure TIdTestHMACSHA1.TestIETF5;
- var
- LByteArray: TIdBytes;
- begin
- FHash.Key := GenerateByteArray($0C, 20);
- LByteArray := ToBytes('Test With Truncation');
- LByteArray := FHash.HashValue(LByteArray);
- Assert(Sys.LowerCase(ToHex(LByteArray)) = '4c1a03424b55e07fe7f27be1d58bb9324a9a5a04');
- LByteArray := ToBytes('Test With Truncation');
- LByteArray := FHash.HashValue(LByteArray, 12);
- Assert(Sys.LowerCase(ToHex(LByteArray)) = '4c1a03424b55e07fe7f27be1');
- end;
- end.
|