Visual FoxPro
Visual FoxPro
RSA Signature with Certificate's Private Key from PFX
See more RSA Examples
Demonstrates how to use a certificate's private key from a PFX file to create an RSA signature.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loCertStore
LOCAL loJsonCN
LOCAL loCert
LOCAL loPrivKey
LOCAL loRsa
LOCAL lcStrData
LOCAL lcHexSig
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
* Create an instance of a certificate store object, load a PFX file,
* locate the certificate we need, and use it for signing.
* (a PFX file may contain more than one certificate.)
loCertStore = CreateObject('Chilkat.CertStore')
* The 1st argument is the filename, the 2nd arg is the
* PFX file's password:
lnSuccess = loCertStore.LoadPfxFile("chilkat.pfx","test")
IF (lnSuccess = 0) THEN
? loCertStore.LastErrorText
RELEASE loCertStore
CANCEL
ENDIF
* Find the certificate by the subject common name:
loJsonCN = CreateObject('Chilkat.JsonObject')
loJsonCN.UpdateString("CN","cert common name")
loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCertStore.FindCert(loJsonCN,loCert)
IF (lnSuccess = 0) THEN
? loCertStore.LastErrorText
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert
CANCEL
ENDIF
loPrivKey = CreateObject('Chilkat.PrivateKey')
lnSuccess = loCert.GetPrivateKey(loPrivKey)
IF (lnSuccess = 0) THEN
? loCert.LastErrorText
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert
RELEASE loPrivKey
CANCEL
ENDIF
loRsa = CreateObject('Chilkat.Rsa')
lnSuccess = loRsa.UsePrivateKey(loPrivKey)
IF (lnSuccess = 0) THEN
? loRsa.LastErrorText
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert
RELEASE loPrivKey
RELEASE loRsa
CANCEL
ENDIF
* Encode the signature as a hex string
loRsa.EncodingMode = "hex"
lcStrData = "This is the string to be signed."
* Sign the string using the sha-1 hash algorithm.
* Other valid choices are "sha-256", "md2" and "md5".
lcHexSig = loRsa.SignStringENC(lcStrData,"sha-1")
? lcHexSig
? "Success!"
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert
RELEASE loPrivKey
RELEASE loRsa