Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Plaza API (bol.com) HMAC-SHA256 AuthenticationDemonstrates how to compute the Authorization header for bol.com using HMAC-SHA256.
Use ChilkatAx-win32.pkg Procedure Test Handle hoCrypt String sPublicKey String sPrivateKey String sHttp_verb String sContent_type String sX_bol_date String sUri Handle hoSb Boolean iSuccess String sMac Handle hoSbHeader String sHdrValue String sTemp1 // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt If (Not(IsComObjectCreated(hoCrypt))) Begin Send CreateComObject of hoCrypt End Set ComEncodingMode Of hoCrypt To "base64" Set ComHashAlgorithm Of hoCrypt To "sha256" Set ComMacAlgorithm Of hoCrypt To "hmac" Move "oRNWbHFXtAECmhnZmEndcjLIaSKbRMVE" To sPublicKey Move "MaQHPOnmYkPZNgeRziPnQyyOJYytUbcFBVJBvbMKoDdpPqaZbaOiLUTWzPAkpPsZFZbJHrcoltdgpZolyNcgvvBaKcmkqFjucFzXhDONTsPAtHHyccQlLUZpkOuywMiOycDWcCySFsgpDiyGnCWCZJkNTtVdPxbSUTWVIFQiUxaPDYDXRQAVVTbSVZArAZkaLDLOoOvPzxSdhnkkJWzlQDkqsXNKfAIgAldrmyfROSyCGMCfvzdQdUQEaYZTPEoA" To sPrivateKey // The string to sign is this: // http_verb +'\n\n'+ content_type +'\n'+ x_bol_date +'\n'+ 'x-bol-date:'+ x_bol_date +'\n'+ uri Move "GET" To sHttp_verb Move "application/xml" To sContent_type Move "Wed, 17 Feb 2016 00:00:00 GMT" To sX_bol_date Move "/services/rest/orders/v2" To sUri // IMPORTANT: Notice the use of underscore and hyphen (dash) chars in x-bol-date vs. x_bol_date. // In one place hypens are used. In two places, underscore chars are used. Get Create (RefClass(cComChilkatStringBuilder)) To hoSb If (Not(IsComObjectCreated(hoSb))) Begin Send CreateComObject of hoSb End Get ComAppend Of hoSb sHttp_verb To iSuccess Get ComAppend Of hoSb (character(10)) + (character(10)) To iSuccess Get ComAppend Of hoSb sContent_type To iSuccess Get ComAppend Of hoSb (character(10)) To iSuccess Get ComAppend Of hoSb sX_bol_date To iSuccess Get ComAppend Of hoSb (character(10)) + "x-bol-date:" To iSuccess Get ComAppend Of hoSb sX_bol_date To iSuccess Get ComAppend Of hoSb (character(10)) To iSuccess Get ComAppend Of hoSb sUri To iSuccess Get ComGetAsString Of hoSb To sTemp1 Showln "[" sTemp1 "]" // Set the HMAC key: Get ComSetMacKeyEncoded Of hoCrypt sPrivateKey "ascii" To iSuccess Get ComGetAsString Of hoSb To sTemp1 Get ComMacStringENC Of hoCrypt sTemp1 To sMac // The answer should be: nqzLWvXI1eBhBXrRx5NF23V5hS8Q1xWCloJzPi/RAts= Showln sMac // The last step is to append the public key with the signature Get Create (RefClass(cComChilkatStringBuilder)) To hoSbHeader If (Not(IsComObjectCreated(hoSbHeader))) Begin Send CreateComObject of hoSbHeader End Get ComAppend Of hoSbHeader sPublicKey To iSuccess Get ComAppend Of hoSbHeader ":" To iSuccess Get ComAppend Of hoSbHeader sMac To iSuccess Get ComGetAsString Of hoSbHeader To sHdrValue Showln sHdrValue End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.