C
C
Example: Crypt2.GetSignedAttributes method
Demonstrates how to call the GetSignedAttributes method.Chilkat C Downloads
#include <C_CkCrypt2.h>
#include <C_CkBinData.h>
#include <C_CkJsonObject.h>
#include <C_CkStringBuilder.h>
void ChilkatSample(void)
{
BOOL success;
HCkCrypt2 crypt;
HCkBinData bdPkcs7;
HCkJsonObject json;
HCkStringBuilder sbJson;
int i;
BOOL tryNext;
success = FALSE;
crypt = CkCrypt2_Create();
bdPkcs7 = CkBinData_Create();
success = CkBinData_LoadFile(bdPkcs7,"qa_data/cades/CAdES-T/Signature-C-T-1.p7m");
if (success == FALSE) {
printf("%s\n",CkBinData_lastErrorText(bdPkcs7));
CkCrypt2_Dispose(crypt);
CkBinData_Dispose(bdPkcs7);
return;
}
json = CkJsonObject_Create();
CkJsonObject_putEmitCompact(json,FALSE);
sbJson = CkStringBuilder_Create();
i = 0;
tryNext = TRUE;
while (tryNext) {
if (CkCrypt2_GetSignedAttributes(crypt,i,bdPkcs7,sbJson) == TRUE) {
CkJsonObject_LoadSb(json,sbJson);
printf("%d: \n",i);
printf("%s\n",CkJsonObject_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"
// }
// ]
// }
CkCrypt2_Dispose(crypt);
CkBinData_Dispose(bdPkcs7);
CkJsonObject_Dispose(json);
CkStringBuilder_Dispose(sbJson);
}