PureBasic
PureBasic
Duplicate openssl dgst -md5 -sign myKey.pem something.txt | openssl enc -base64 -A
See more RSA Examples
Demonstrates how to duplicate the creation of an RSA signature produced by this OpenSSL command:openssl dgst -md5 -sign myKey.pem something.txt | openssl enc -base64 -A
Chilkat PureBasic Downloads
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.
pkey.i = CkPrivateKey::ckCreate()
If pkey.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Load the private key from an RSA PEM file:
success = CkPrivateKey::ckLoadPemFile(pkey,"myKey.pem")
rsa.i = CkRsa::ckCreate()
If rsa.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Import the private key into the RSA component:
success = CkRsa::ckUsePrivateKey(rsa,pkey)
If success = 0
Debug CkRsa::ckLastErrorText(rsa)
CkPrivateKey::ckDispose(pkey)
CkRsa::ckDispose(rsa)
ProcedureReturn
EndIf
; OpenSSL uses BigEndian byte ordering:
CkRsa::setCkLittleEndian(rsa, 0)
; The resulting signature will be a Base64 string:
CkRsa::setCkEncodingMode(rsa, "base64")
; For simplicity, we're not loading
; the data to be signed from a file. We are instead simply
; using a literal string value.
strData.s = "This is the text to be signed."
; Hash the input using MD5, and then sign the hash:
; Other valid hash algorithm choices are "md2" and "sha-1".
base64Sig.s = CkRsa::ckSignStringENC(rsa,strData,"md5")
Debug base64Sig
Debug "Success!"
CkPrivateKey::ckDispose(pkey)
CkRsa::ckDispose(rsa)
ProcedureReturn
EndProcedure