Sample code for 30+ languages & platforms
Lianja

Example: Crypt2.GetSignedAttributes method

Demonstrates how to call the GetSignedAttributes method.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

loCrypt = createobject("CkCrypt2")

loBdPkcs7 = createobject("CkBinData")
llSuccess = loBdPkcs7.LoadFile("qa_data/cades/CAdES-T/Signature-C-T-1.p7m")
if (llSuccess = .F.) then
    ? loBdPkcs7.LastErrorText
    release loCrypt
    release loBdPkcs7
    return
endif

loJson = createobject("CkJsonObject")
loJson.EmitCompact = .F.

loSbJson = createobject("CkStringBuilder")
i = 0
llTryNext = .T.
do while llTryNext
    if (loCrypt.GetSignedAttributes(i,loBdPkcs7,loSbJson) = .T.) then
        loJson.LoadSb(loSbJson)
        ? str(i) + ": "
        ? loJson.Emit()
    else
        llTryNext = .F.
    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