PureBasic
PureBasic
Example: Crypt2.GetSignedAttributes method
Demonstrates how to call the GetSignedAttributes method.Chilkat PureBasic Downloads
IncludeFile "CkBinData.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"
IncludeFile "CkCrypt2.pb"
Procedure ChilkatExample()
success.i = 0
crypt.i = CkCrypt2::ckCreate()
If crypt.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
bdPkcs7.i = CkBinData::ckCreate()
If bdPkcs7.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkBinData::ckLoadFile(bdPkcs7,"qa_data/cades/CAdES-T/Signature-C-T-1.p7m")
If success = 0
Debug CkBinData::ckLastErrorText(bdPkcs7)
CkCrypt2::ckDispose(crypt)
CkBinData::ckDispose(bdPkcs7)
ProcedureReturn
EndIf
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::setCkEmitCompact(json, 0)
sbJson.i = CkStringBuilder::ckCreate()
If sbJson.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
i.i = 0
tryNext.i = 1
While tryNext
If CkCrypt2::ckGetSignedAttributes(crypt,i,bdPkcs7,sbJson) = 1
CkJsonObject::ckLoadSb(json,sbJson)
Debug Str(i) + ": "
Debug CkJsonObject::ckEmit(json)
Else
tryNext = 0
EndIf
i = i + 1
Wend
; 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"
; }
; ]
; }
CkCrypt2::ckDispose(crypt)
CkBinData::ckDispose(bdPkcs7)
CkJsonObject::ckDispose(json)
CkStringBuilder::ckDispose(sbJson)
ProcedureReturn
EndProcedure