Sample code for 30+ languages & platforms
Unicode C++

Extract XML from FatturaPA .p7m

See more Digital Signatures Examples

Demonstrates how to verify the signature and extract the XML from a FatturaPA .p7m file.

Chilkat Unicode C++ Downloads

Unicode C++
#include <CkBinDataW.h>
#include <CkCrypt2W.h>
#include <CkXmlW.h>

void ChilkatSample(void)
    {
    bool success = false;

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

    CkBinDataW bd;
    success = bd.LoadFile(L"qa_data/p7m/IT01879020517_abc.xml.p7m");
    if (success != true) {
        wprintf(L"Failed to load the .p7m file\n");
        return;
    }

    CkCrypt2W crypt;

    // Verify and extrct the payload contained within the .p7m.
    // In this case, the payload is the FatturaPA XML.
    // If successful, the resulting bd will contain only the XML.
    bool bVerified = crypt.OpaqueVerifyBd(bd);
    if (bVerified != true) {
        wprintf(L"%s\n",crypt.lastErrorText());
        wprintf(L"Failed to extract and verify.\n");
        return;
    }

    // Save the XML to a file.
    bd.WriteFile(L"qa_output/zIT01879020517_abc.xml");

    // Alternatively, load into an XML object and emit.
    CkXmlW xml;
    xml.LoadXml(bd.getString(L"utf-8"));

    wprintf(L"%s\n",xml.getXml());
    }