J'ai besoin de signer xml en utilisant Ruby, quelqu'un connais une méthode ou libère pour ça?
Mon squelette XML est: p>
<Message> <MessageId> <ServiceId>service</ServiceId> <Version>1.0</Version> <MsgDesc>Service Description</MsgDesc> <Code>4</Code> <FromAddress>from</FromAddress> <ToAddress>to</ToAddress> <Date>2012-10-29</Date> </MessageId> <MessageBody/> <Message>
3 Réponses :
Malheureusement, la création et la vérification de la signature XML sont très compliquées. Les détails peuvent être trouvés dans le spec . J'ai commencé à la mettre en œuvre pour proposer une addition à Stdlib il y a quelque temps , Mais ensuite arrêté, car un autre projet est devenu plus important et Nokogiri a commencé à offrir les fonctionnalités de canonique dont j'avais besoin et que j'ai malheureusement déjà déjà mise en œuvre à l'aide de LibxML directement. Vous voudrez peut-être avoir un look là pour voir ce qui est nécessaire, puis portez les idées au code Nokogiri uni. P>
Utiliser ceux-ci, il devrait être possible de mettre en œuvre complètement XML-DSIG dans RUBY. Mais soyez prêt, ce n'est pas une chose facile à faire, beaucoup de petits détails qui ont un grand potentiel pour vous conduire à Noix ... P>
Vous serez peut-être mieux en train de passer à Jruby et en intégrant le Implémentation par défaut de XML-DSIG qui navère avec les bibliothèques standard Java. P>
Si vous êtes toujours intéressé, j'ai fait ce gemme il y a une semaine. Il est toujours en développement, mais le matériel de base est mis en œuvre. Ce gemme est testé contre les signatures créées avec la bibliothèque XMLSEC. http://www.aleksey.com/xmlsec/ p>
Je travaille activement avec cette gemme pour le moment afin que les bogues soient fixes relativement rapides. P>
Voici un joyau utilisable pour la signature / la digestion, mais j'ai toujours un problème de canonicalisation et c'est probablement pourquoi je ne reçois pas les digestions appropriées: https://github.com/ebegarts/signer p>
Vous n'avez pas vu prendre en compte la canonicalisation, cf. w3.org/tr/xml-exc-c14n dans votre cas.
Je m'excuse d'avance pour le monde de la douleur que vous êtes sur le point d'entrer =) Voir cette question connexe: Stackoverflow.com/Questtions/3038757/Canonicalizing-xml-in-ru par