|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Classic ASP) ECDSA Sign and Verify Data using Different Hash AlgorithmsDemonstrates how to create ECDSA signatures on data using different hash algorithms. Note: This example requires Chilkat v9.5.0.85 or greater because the SignBd and VerifyBd methods were added in v9.5.0.85. 
 <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. ' First load an ECDSA private key to be used for signing. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.PrivateKey") set privKey = Server.CreateObject("Chilkat.PrivateKey") success = privKey.LoadEncryptedPemFile("qa_data/ecc/secp256r1-key-pkcs8-secret.pem","secret") If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( privKey.LastErrorText) & "</pre>" Response.End End If ' Load some data to be signed. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.BinData") set bd = Server.CreateObject("Chilkat.BinData") success = bd.LoadFile("qa_data/hamlet.xml") If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( "Failed to load file to be hashed.") & "</pre>" Response.End End If ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Ecc") set ecdsa = Server.CreateObject("Chilkat.Ecc") ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Prng") set prng = Server.CreateObject("Chilkat.Prng") ' Sign the sha256 hash of the data. Return the ECDSA signature in the base64 encoding. Response.Write "<pre>" & Server.HTMLEncode( "ECDSA signing the sha256 hash of the data...") & "</pre>" sig = ecdsa.SignBd(bd,"sha256","base64",privKey,prng) Response.Write "<pre>" & Server.HTMLEncode( "sig = " & sig) & "</pre>" ' Verify the signature against the original data. ' (We must use the same hash algorithm that was used when signing.) ' Load the public key that corresponds to the private key used for signing. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.PublicKey") set pubKey = Server.CreateObject("Chilkat.PublicKey") success = pubKey.LoadFromFile("qa_data/ecc/secp256r1-pub.pem") If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( pubKey.LastErrorText) & "</pre>" Response.End End If ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Ecc") set ecc2 = Server.CreateObject("Chilkat.Ecc") result = ecc2.VerifyBd(bd,"sha256",sig,"base64",pubKey) If (result <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( ecc2.LastErrorText) & "</pre>" Response.End End If Response.Write "<pre>" & Server.HTMLEncode( "Verified!") & "</pre>" ' ---------------------------------------------------------------------------------------- ' Let's do the same thing, but with sha384 hashing... Response.Write "<pre>" & Server.HTMLEncode( "--------------------------------------------") & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( "ECDSA signing the sha384 hash of the data...") & "</pre>" sig = ecdsa.SignBd(bd,"sha384","base64",privKey,prng) Response.Write "<pre>" & Server.HTMLEncode( "sig = " & sig) & "</pre>" result = ecc2.VerifyBd(bd,"sha384",sig,"base64",pubKey) If (result <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( ecc2.LastErrorText) & "</pre>" Response.End End If Response.Write "<pre>" & Server.HTMLEncode( "Verified!") & "</pre>" %> </body> </html> | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.