2009-10-19 6 views

Répondre

1

Je ne sais pas ce format, mais étant donné que vous avez dit « OpenXML », vous avez probablement juste besoin d'ouvrir et de décoder les données base64;

1

Selon mes recherches, il s'agit d'un fichier compressé .fo. Si vous renommez .zfo en .zip, vous pourrez l'ouvrir avec l'archive habituelle et vous y trouverez le fichier .fo qui est au format xml et que vous pouvez voir avec n'importe quel éditeur de texte.

0

sur linux

ZFO -> XML

openssl smime -inform DER -in file.zfo -verify -noverify -out file.zfo.xml 

en XML sont dans l'élément

<p:dmFiles> 

données ATTACHEMENTS (nom de fichier, type de fichier, données)

0

Dans mon Les messages d'expérience .zfo sont simplement des fichiers XML signés (standard CMS/PKCS # 7). Tout ce que vous devez faire est de supprimer l'enveloppe cryptée, ce qui vous donne un fichier XML que vous pouvez facilement lire. Dans le cas de l'ISDS tchèque, toutes les pièces jointes sont répertoriées dans un élément <p:dmFiles>.

exemple XML:

... 
<p:dmFiles xmlns:p="http://isds.czechpoint.cz/v20"> 
    <p:dmFile dmMimeType="doc" ... > 
    <p:dmEncodedContent> ... </p:dmEncodedContent> 
    </p:dmFile> 
    <p:dmFile dmMimeType="pdf" ...> 
    <p:dmEncodedContent> ... </p:dmEncodedContent> 
    </p:dmFile> 
</p:dmFiles> 

Vous pouvez atteindre les éléments de contenu en utilisant C# comme ceci:

var message = new System.Security.Cryptography.Pkcs.SignedCms(); 
message.Decode(System.IO.File.ReadAllBytes("message.zfo")); 

var doc = new System.Xml.XmlDocument(); 
using (var ms = new System.IO.MemoryStream(message.ContentInfo.Content)) 
{ 
    doc.Load(ms); 
    var list = d.DocumentElement.GetElementsByTagName("p:dmEncodedContent"); 
} 
Questions connexes