Sample code for 30+ languages & platforms
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 C++ Downloads

C++
#include <CkBinData.h>
#include <CkCrypt2.h>
#include <CkXml.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.

    CkBinData bd;
    success = bd.LoadFile("qa_data/p7m/IT01879020517_abc.xml.p7m");
    if (success != true) {
        std::cout << "Failed to load the .p7m file" << "\r\n";
        return;
    }

    CkCrypt2 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) {
        std::cout << crypt.lastErrorText() << "\r\n";
        std::cout << "Failed to extract and verify." << "\r\n";
        return;
    }

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

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

    std::cout << xml.getXml() << "\r\n";
    }