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
(PowerBuilder) RSA Sign Binary Data and Verify (Recover the Original Data)Demonstrates how to RSA sign binary data and then verify/recover the original data. Note: This example uses methods introduced in Chilkat v9.5.0.77.
integer li_rc oleobject loo_PrivKey integer li_Success oleobject loo_Rsa string ls_OriginalData oleobject loo_Bd oleobject loo_PubKey oleobject loo_Rsa2 integer li_BVerified // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Load an RSA private key for signing. loo_PrivKey = create oleobject // Use "Chilkat_9_5_0.PrivateKey" for versions of Chilkat < 10.0.0 li_rc = loo_PrivKey.ConnectToNewObject("Chilkat.PrivateKey") if li_rc < 0 then destroy loo_PrivKey MessageBox("Error","Connecting to COM object failed") return end if li_Success = loo_PrivKey.LoadEncryptedPemFile("qa_data/pem/rsa_passwd.pem","passwd") if li_Success <> 1 then Write-Debug loo_PrivKey.LastErrorText destroy loo_PrivKey return end if loo_Rsa = create oleobject // Use "Chilkat_9_5_0.Rsa" for versions of Chilkat < 10.0.0 li_rc = loo_Rsa.ConnectToNewObject("Chilkat.Rsa") loo_Rsa.ImportPrivateKeyObj(loo_PrivKey) // We have some binary data (in hex) to sign ls_OriginalData = "0102030405060708090A" loo_Bd = create oleobject // Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 li_rc = loo_Bd.ConnectToNewObject("Chilkat.BinData") loo_Bd.AppendEncoded(ls_OriginalData,"hex") // If successful, the contents of bd are replaced with the RSA signature. li_Success = loo_Rsa.OpenSslSignBd(loo_Bd) if li_Success <> 1 then Write-Debug loo_Rsa.LastErrorText destroy loo_PrivKey destroy loo_Rsa destroy loo_Bd return end if // Show the RSA signature in base64 Write-Debug loo_Bd.GetEncoded("base64") // ------------------------------------------ // Get the public key from the private key loo_PubKey = loo_PrivKey.GetPublicKey() // Verify the signature and extract the original data. loo_Rsa2 = create oleobject // Use "Chilkat_9_5_0.Rsa" for versions of Chilkat < 10.0.0 li_rc = loo_Rsa2.ConnectToNewObject("Chilkat.Rsa") loo_Rsa2.ImportPublicKeyObj(loo_PubKey) li_BVerified = loo_Rsa2.OpenSslVerifyBd(loo_Bd) Write-Debug "signature verified: " + string(li_BVerified) // Show the original data: Write-Debug "original data: " + loo_Bd.GetEncoded("hex") destroy loo_PubKey destroy loo_PrivKey destroy loo_Rsa destroy loo_Bd destroy loo_Rsa2 |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.