Eu mesmo tenho um desses documentos hoje.
Como explicar o que está errado para o pessoal de suporte técnico provavelmente demoraria mais do que tentar extraí-lo sozinho, criei um pequeno script python para extrair e decodificar o documento pdf que estava incorporado em o arquivo sig .
Ou seja, assumindo que existe um único arquivo pdf e o formato do arquivo sig é o mesmo que o meu.
Espero que alguém ache útil.
import base64
import xml.etree.ElementTree as ET
import sys
def decode(infile, outfile):
tree = ET.parse(infile)
xmlns = '{http://www.w3.org/2000/09/xmldsig#}'
b64 = tree.find("./SignaturePackage/{0}Signature/{0}Object/DocumentContent".format(xmlns)).text
txt = base64.b64decode(b64)
with open(outfile, 'bw+') as f:
f.write(txt)
if __name__ == "__main__":
if len(sys.argv) < 2:
print('usage: python unpack.py <input_filename>')
exit(1)
infile = sys.argv[1]
outfile = 'out.pdf'
decode(infile, outfile)
print('Done. Result saved to {0}'.format(outfile))
Eu criei um gist para este script.
Você precisa ter o python 3.x instalado, colocar o arquivo sig e o python script na mesma pasta (ou forneça o caminho do arquivo para o script) e execute da seguinte forma:
python unpack.py <sig_filename>
Isso criará um arquivo chamado out.pdf na mesma pasta.