Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
HMAC SHA-1 Matching FIPS ExamplesProvides an example of computing an HMAC-SHA1 digest to duplicate the FIPS examples at http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATCRYPT2Lib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var crypt: TChilkatCrypt2; success: Integer; strToSign: String; key: String; expectedResult: String; mac: String; begin crypt := TChilkatCrypt2.Create(Self); success := crypt.UnlockComponent('Anything for 30-day trial.'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); Exit; end; strToSign := 'Sample #1'; // 64-byte key key := '000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f'; // The expected result: // (from Appendix A.1 at http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf ) expectedResult := '4f4ca3d5d68ba7cc0a1208c9c61e9c5da0403c0a'; // Here is the code to duplicate the results: crypt.HashAlgorithm := 'sha-1'; crypt.EncodingMode := 'hex'; crypt.SetHmacKeyEncoded(key,'hex'); mac := crypt.HmacStringENC(strToSign); Memo1.Lines.Add('Computed: ' + mac); Memo1.Lines.Add('Expected: ' + expectedResult); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.