Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oBd
LOCAL oCrypt
LOCAL nBVerified
LOCAL oXml

nSuccess := 0

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

oBd := CreateObject("Chilkat.BinData")
nSuccess := oBd:LoadFile("qa_data/p7m/IT01879020517_abc.xml.p7m")
IF (nSuccess != 1)
    ? "Failed to load the .p7m file"
    oBd:destroy()
    RETURN
ENDIF

oCrypt := CreateObject("Chilkat.Crypt2")

//  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.
nBVerified := oCrypt:OpaqueVerifyBd(oBd)
IF (nBVerified != 1)
    ? oCrypt:LastErrorText
    ? "Failed to extract and verify."
    oBd:destroy()
    oCrypt:destroy()
    RETURN
ENDIF

//  Save the XML to a file.
oBd:WriteFile("qa_output/zIT01879020517_abc.xml")

//  Alternatively, load into an XML object and emit.
oXml := CreateObject("Chilkat.Xml")
oXml:LoadXml(oBd:GetString("utf-8"))

? oXml:GetXml()

oBd:destroy()
oCrypt:destroy()
oXml:destroy()