Soyez le premier à donner votre avis sur cette source.
Snippet vu 8 457 fois - Téléchargée 9 fois
static byte[] HashXml ( XmlElement xe, HashAlgorithm hash ) { XmlDocument xd = new XmlDocument(); xd.LoadXml (xe.OuterXml); return HashXml(xd, hash); } static byte[] HashXml ( XmlDocument xd, HashAlgorithm hash ) { //Récupération de l'assembly de signature électronique Assembly a = Assembly.Load("System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); //Récupère la classe de Hashage Type t = a.GetType("System.Security.Cryptography.Xml.CanonicalXml"); //Récupère le constructeur le plus simple de la classe ConstructorInfo c = t.GetConstructor( BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[] { typeof(XmlDocument), typeof(XmlResolver) }, null); //construit l'objet object cx = c.Invoke(new object[] { xd, null }); //calcule le Hash byte[] result = (byte[])t.InvokeMember( "GetDigestedBytes", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance, null, cx, new object[] { hash }); return result; }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.