Sample code for 30+ languages & platforms
Visual FoxPro

Example: Crypt2.GetSignedAttributes method

Demonstrates how to call the GetSignedAttributes method.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loCrypt
LOCAL loBdPkcs7
LOCAL loJson
LOCAL loSbJson
LOCAL i
LOCAL lnTryNext

lnSuccess = 0

loCrypt = CreateObject('Chilkat.Crypt2')

loBdPkcs7 = CreateObject('Chilkat.BinData')
lnSuccess = loBdPkcs7.LoadFile("qa_data/cades/CAdES-T/Signature-C-T-1.p7m")
IF (lnSuccess = 0) THEN
    ? loBdPkcs7.LastErrorText
    RELEASE loCrypt
    RELEASE loBdPkcs7
    CANCEL
ENDIF

loJson = CreateObject('Chilkat.JsonObject')
loJson.EmitCompact = 0

loSbJson = CreateObject('Chilkat.StringBuilder')
i = 0
lnTryNext = 1
DO WHILE lnTryNext
    IF (loCrypt.GetSignedAttributes(i,loBdPkcs7,loSbJson) = 1) THEN
        loJson.LoadSb(loSbJson)
        ? STR(i) + ": "
        ? loJson.Emit()
    ELSE
        lnTryNext = 0
    ENDIF

    i = i + 1
ENDDO

* Sample output:

* 0: 
* {
*   "signedAttributes": [
*     {
*       "oid": "1.2.840.113549.1.9.3",
*       "name": "Content Type"
*     },
*     {
*       "oid": "1.2.840.113549.1.9.5",
*       "name": "Signing Time"
*     },
*     {
*       "oid": "1.2.840.113549.1.9.4",
*       "name": "Message Digest"
*     },
*     {
*       "oid": "1.2.840.113549.1.9.16.2.47",
*       "name": "Signing Certificate V2"
*     }
*   ]
* }

RELEASE loCrypt
RELEASE loBdPkcs7
RELEASE loJson
RELEASE loSbJson