Unicode C
Unicode C
Example: Crypt2.GetSignedAttributes method
Demonstrates how to call the GetSignedAttributes method.Chilkat Unicode C Downloads
#include <C_CkCrypt2W.h>
#include <C_CkBinDataW.h>
#include <C_CkJsonObjectW.h>
#include <C_CkStringBuilderW.h>
void ChilkatSample(void)
{
BOOL success;
HCkCrypt2W crypt;
HCkBinDataW bdPkcs7;
HCkJsonObjectW json;
HCkStringBuilderW sbJson;
int i;
BOOL tryNext;
success = FALSE;
crypt = CkCrypt2W_Create();
bdPkcs7 = CkBinDataW_Create();
success = CkBinDataW_LoadFile(bdPkcs7,L"qa_data/cades/CAdES-T/Signature-C-T-1.p7m");
if (success == FALSE) {
wprintf(L"%s\n",CkBinDataW_lastErrorText(bdPkcs7));
CkCrypt2W_Dispose(crypt);
CkBinDataW_Dispose(bdPkcs7);
return;
}
json = CkJsonObjectW_Create();
CkJsonObjectW_putEmitCompact(json,FALSE);
sbJson = CkStringBuilderW_Create();
i = 0;
tryNext = TRUE;
while (tryNext) {
if (CkCrypt2W_GetSignedAttributes(crypt,i,bdPkcs7,sbJson) == TRUE) {
CkJsonObjectW_LoadSb(json,sbJson);
wprintf(L"%d: \n",i);
wprintf(L"%s\n",CkJsonObjectW_emit(json));
}
else {
tryNext = FALSE;
}
i = i + 1;
}
// 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"
// }
// ]
// }
CkCrypt2W_Dispose(crypt);
CkBinDataW_Dispose(bdPkcs7);
CkJsonObjectW_Dispose(json);
CkStringBuilderW_Dispose(sbJson);
}