Classic ASP
Classic ASP
Plaza API (bol.com) HMAC-SHA256 Authentication
See more Encryption Examples
Demonstrates how to compute the Authorization header for bol.com using HMAC-SHA256.Chilkat Classic ASP Downloads
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
set crypt = Server.CreateObject("Chilkat.Crypt2")
crypt.EncodingMode = "base64"
crypt.HashAlgorithm = "sha256"
crypt.MacAlgorithm = "hmac"
publicKey = "oRNWbHFXtAECmhnZmEndcjLIaSKbRMVE"
privateKey = "MaQHPOnmYkPZNgeRziPnQyyOJYytUbcFBVJBvbMKoDdpPqaZbaOiLUTWzPAkpPsZFZbJHrcoltdgpZolyNcgvvBaKcmkqFjucFzXhDONTsPAtHHyccQlLUZpkOuywMiOycDWcCySFsgpDiyGnCWCZJkNTtVdPxbSUTWVIFQiUxaPDYDXRQAVVTbSVZArAZkaLDLOoOvPzxSdhnkkJWzlQDkqsXNKfAIgAldrmyfROSyCGMCfvzdQdUQEaYZTPEoA"
' 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
http_verb = "GET"
content_type = "application/xml"
x_bol_date = "Wed, 17 Feb 2016 00:00:00 GMT"
uri = "/services/rest/orders/v2"
' 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.
set sb = Server.CreateObject("Chilkat.StringBuilder")
success = sb.Append(http_verb)
success = sb.Append(vbLf & vbLf)
success = sb.Append(content_type)
success = sb.Append(vbLf)
success = sb.Append(x_bol_date)
success = sb.Append(vbLf & "x-bol-date:")
success = sb.Append(x_bol_date)
success = sb.Append(vbLf)
success = sb.Append(uri)
Response.Write "<pre>" & Server.HTMLEncode( "[" & sb.GetAsString() & "]") & "</pre>"
' Set the HMAC key:
success = crypt.SetMacKeyEncoded(privateKey,"ascii")
mac = crypt.MacStringENC(sb.GetAsString())
' The answer should be: nqzLWvXI1eBhBXrRx5NF23V5hS8Q1xWCloJzPi/RAts=
Response.Write "<pre>" & Server.HTMLEncode( mac) & "</pre>"
' The last step is to append the public key with the signature
set sbHeader = Server.CreateObject("Chilkat.StringBuilder")
success = sbHeader.Append(publicKey)
success = sbHeader.Append(":")
success = sbHeader.Append(mac)
hdrValue = sbHeader.GetAsString()
Response.Write "<pre>" & Server.HTMLEncode( hdrValue) & "</pre>"
%>
</body>
</html>