Sample code for 30+ languages & platforms
Unicode C

Extract XML string from a .p7m byte array (e.g. FATTURA ELETTRONICA, ITALY)

See more Digital Signatures Examples

_LANGUAGE_ example to extract the original XML from a .p7m (Signed-Data PKCS7 Format) provided as a byte array.

One use for this example is to extract the original XML from a Fattura Elettronica .p7m signature.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkFileAccessW.h>
#include <C_CkByteData.h>
#include <C_CkCrypt2W.h>

void ChilkatSample(void)
    {
    HCkFileAccessW fac;
    HCkByteData p7mBytes;
    HCkCrypt2W crypt;
    const wchar_t *originalXml;

    //  This example requires the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    fac = CkFileAccessW_Create();
    p7mBytes = CkByteData_Create();
    success = CkFileAccessW_ReadEntireFile(fac,L"testData/p7m/fattura_signature.p7m",p7mBytes);
    if (CkFileAccessW_getLastMethodSuccess(fac) != TRUE) {
        wprintf(L"%s\n",CkFileAccessW_lastErrorText(fac));
        CkFileAccessW_Dispose(fac);
        CkByteData_Dispose(p7mBytes);
        return;
    }

    crypt = CkCrypt2W_Create();

    originalXml = CkCrypt2W_opaqueVerifyString(crypt,p7mBytes);
    if (CkCrypt2W_getLastMethodSuccess(crypt) != TRUE) {
        wprintf(L"%s\n",CkFileAccessW_lastErrorText(fac));
        CkFileAccessW_Dispose(fac);
        CkByteData_Dispose(p7mBytes);
        CkCrypt2W_Dispose(crypt);
        return;
    }

    wprintf(L"Original XML:\n");
    wprintf(L"%s\n",originalXml);

    wprintf(L"Success!\n");


    CkFileAccessW_Dispose(fac);
    CkByteData_Dispose(p7mBytes);
    CkCrypt2W_Dispose(crypt);

    }