Sample code for 30+ languages & platforms
Visual FoxPro

PKCS7 Sign Text using RSA 2048, SHA256, Base64 Output

See more Digital Signatures Examples

Demonstrates how to sign text using 2048-bit RSA with SHA256, producing PKCS#7 output in Base64. The certificate w/ private key used for signing is loaded from a .p12/.pfx file.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loCert
LOCAL loCrypt
LOCAL lcTextToSign
LOCAL lcSigBase64

lnSuccess = 0

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loCert = CreateObject('Chilkat.Cert')

* Load the cert and private key.  Whatever the private key happens to be,
* such as RSA or ECC, then Chilkat will use it.  If the private key is 
* a 2048-bit RSA key, then that's what will be used..
lnSuccess = loCert.LoadPfxFile("qa_data/pfx/myCertAndKey.p12","password")
IF (lnSuccess <> 1) THEN
    ? loCert.LastErrorText
    RELEASE loCert
    CANCEL
ENDIF

loCrypt = CreateObject('Chilkat.Crypt2')

lnSuccess = loCrypt.SetSigningCert(loCert)
IF (lnSuccess <> 1) THEN
    ? loCrypt.LastErrorText
    RELEASE loCert
    RELEASE loCrypt
    CANCEL
ENDIF

* Use SHA-256
loCrypt.HashAlgorithm = "sha256"

* Hash the utf-8 byte representation of the string
loCrypt.Charset = "utf-8"

* Return the result in base64
loCrypt.EncodingMode = "base64"

* Sign some text..
lcTextToSign = "This is the text to be hashed and signed."
lcSigBase64 = loCrypt.OpaqueSignStringENC(lcTextToSign)
IF (loCrypt.LastMethodSuccess <> 1) THEN
    ? loCrypt.LastErrorText
    RELEASE loCert
    RELEASE loCrypt
    CANCEL
ENDIF

? lcSigBase64

* The result:
* MIIS2wYJKoZIhvcNAQc ... zGeeY4Oxg==

RELEASE loCert
RELEASE loCrypt