PureBasic
PureBasic
RSA Sign Using Private Key from .pfx/.p12 to Base64 Signature
See more RSA Examples
Demonstrates how to RSA sign something using a private key loaded from a .pfx/.p12. The RSA signature is returned in Base64 encoded format.Chilkat PureBasic Downloads
IncludeFile "CkPfx.pb"
IncludeFile "CkPrivateKey.pb"
IncludeFile "CkRsa.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
rsa.i = CkRsa::ckCreate()
If rsa.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Load the .pfx/.p12
pfx.i = CkPfx::ckCreate()
If pfx.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkPfx::ckLoadPfxFile(pfx,"qa_data/pfx/myKey.p12","myPassword")
If success = 0
Debug CkPfx::ckLastErrorText(pfx)
CkRsa::ckDispose(rsa)
CkPfx::ckDispose(pfx)
ProcedureReturn
EndIf
; Get the default private key.
privKey.i = CkPrivateKey::ckCreate()
If privKey.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkPfx::ckPrivateKeyAt(pfx,0,privKey)
If success = 0
Debug CkPfx::ckLastErrorText(pfx)
CkRsa::ckDispose(rsa)
CkPfx::ckDispose(pfx)
CkPrivateKey::ckDispose(privKey)
ProcedureReturn
EndIf
; Import the private key into the RSA component:
success = CkRsa::ckUsePrivateKey(rsa,privKey)
If success = 0
Debug CkRsa::ckLastErrorText(rsa)
CkRsa::ckDispose(rsa)
CkPfx::ckDispose(pfx)
CkPrivateKey::ckDispose(privKey)
ProcedureReturn
EndIf
; Get the signature in base64
CkRsa::setCkEncodingMode(rsa, "base64")
strData.s = "This is the string to be signed."
; Sign the string using the sha256 hash algorithm.
; Other valid choices are "sha384", "sha512", "sha-1", "md2" and "md5".
base64Sig.s = CkRsa::ckSignStringENC(rsa,strData,"sha256")
Debug base64Sig
Debug "Success!"
CkRsa::ckDispose(rsa)
CkPfx::ckDispose(pfx)
CkPrivateKey::ckDispose(privKey)
ProcedureReturn
EndProcedure