2010-10-20 19 views
0

Je reçois un message smime avec le type de contenu 'Application/EDI'. C'est un type mime non standard et le contenu doit être interprété comme binaire. Mais OpenSSL lors de la vérification de la signature le traite comme du texte et modifie les sauts de ligne de '\ n' à '\ r \ n' (comme requis par spec pour le type de contenu 'text'). Le résumé devient erroné et la vérification échoue.OpenSSL traite le message smime avec le type de contenu 'Application/EDI' comme texte et modifie les sauts de ligne

Est-il possible de faire en sorte que openssl ne dérange rien dans le message d'origine? L'argument '-binary' ne fonctionne sur aucune version (j'ai essayé 0.9.7, 0.9.8, 1.0.0).

Répondre

4

Ok, répondre à ma propre question.

J'ai divisé les données d'entrée en deux fichiers séparés avec le contenu et la signature supprimant les métadonnées inutiles. Après que j'ai changé le type mime de la signature à application/pkcs7-mime et de vérification est devenu un succès avec cette commande:

openssl.exe smime -verify -inform SMIME -CAfile caCert.pem -certfile cert.pem -in signature.txt -content content.txt 

Variante à l'évolution -inform à PEM fonctionne également, mais la signature doit être sans Content-xxx têtes