Sample code for 30+ languages & platforms
PowerBuilder

Example: Crypt2.GetSignedAttributes method

Demonstrates how to call the GetSignedAttributes method.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Crypt
oleobject loo_BdPkcs7
oleobject loo_Json
oleobject loo_SbJson
integer i
integer li_TryNext

li_Success = 0

loo_Crypt = create oleobject
li_rc = loo_Crypt.ConnectToNewObject("Chilkat.Crypt2")
if li_rc < 0 then
    destroy loo_Crypt
    MessageBox("Error","Connecting to COM object failed")
    return
end if

loo_BdPkcs7 = create oleobject
li_rc = loo_BdPkcs7.ConnectToNewObject("Chilkat.BinData")

li_Success = loo_BdPkcs7.LoadFile("qa_data/cades/CAdES-T/Signature-C-T-1.p7m")
if li_Success = 0 then
    Write-Debug loo_BdPkcs7.LastErrorText
    destroy loo_Crypt
    destroy loo_BdPkcs7
    return
end if

loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")

loo_Json.EmitCompact = 0

loo_SbJson = create oleobject
li_rc = loo_SbJson.ConnectToNewObject("Chilkat.StringBuilder")

i = 0
li_TryNext = 1
do while li_TryNext
    if loo_Crypt.GetSignedAttributes(i,loo_BdPkcs7,loo_SbJson) = 1 then
        loo_Json.LoadSb(loo_SbJson)
        Write-Debug string(i) + ": "
        Write-Debug loo_Json.Emit()
    else
        li_TryNext = 0
    end if

    i = i + 1
loop

// 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"
//     }
//   ]
// }


destroy loo_Crypt
destroy loo_BdPkcs7
destroy loo_Json
destroy loo_SbJson