Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3608 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Vérification intégrité certificat ( RSACryptoServiceProvider SHA1 )

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Vérification intégrité certificat ( RSACryptoServiceProvider SHA1 )

n°1896852
custo76
Posté le 19-06-2009 à 10:42:05  profilanswer
 

Bonjour,
 
En fait, j'ai un certificat client qui arrive sur mon site web, et je souhaiterais vérifier son intégrité.
 
Dans ce certificat j'ai, entre autre, les informations suivantes:
- l'empreinte numérique ( certificat.Thumbprint );
- le contenu des données brut ( certificat.RawData );
- la clé publique ( certificat.PublicKey ).
 
Je sais qu'il faut crypter l'empreinte numérique avec la clé publique pour obtenir une empreinte déchiffré, hashé le contenu du certificat pour obtenir l'empreinte calculé et comparer les deux pour voir si ils sont exactes.
 
C'est ce que je fait, mais je reçois toujours le résultat "false".
 
Voici le code que j'effectue :  
 

Code :
  1. using System.Security.Cryptography;
  2. using System.Runtime.InteropServices;
  3. using System.Security.Cryptography.X509Certificates;
  4. SHA1Managed sha1 = new SHA1Managed();
  5. RSACryptoServiceProvider csp = null;
  6. AsymmetricAlgorithm rsaAlgo = certificatEnCours.PublicKey.Key;
  7. byte[] data = null;
  8. byte[] hash = null;
  9. string keyPublic = "";
  10. string signatureNumérique = "";
  11. bool verif = false;
  12. // ------------- PARTIE 1 -------------
  13. // On récupère l'empreinte numérique
  14. signatureNumérique = certificatEnCours.Thumbprint;
  15. //data = System.Text.Encoding.Unicode.GetBytes(signatureNumérique);
  16. //data = System.Text.Encoding.ASCII.GetBytes(signatureNumérique);
  17. // On convertit l'empreinte numérique en tableau de bytes
  18. data = Convert.FromBase64String(signatureNumérique);
  19. // ------------- PARTIE 2 -------------
  20. // On hashe le contenu du certificat en SHA1
  21. hash = sha1.ComputeHash(certificatEnCours.RawData);
  22. // On convertit la valeur xml de la clé en chaîne de caractère
  23. keyPublic = rsaAlgo.ToXmlString(false);
  24. // On instancie RSACryptoServiceProvider
  25. csp = new RSACryptoServiceProvider();
  26. // On importe la clé publique dans le RSACryptoServiceProvider
  27. csp.FromXmlString(keyPublic);
  28. // ------------- COMPARAISON --------------
  29. // On compare la valeur hashé du contenu du certificat avec
  30. //  la signature numérique :
  31. verif = csp.VerifyData(hash, CryptoConfig.MapNameToOID("SHA1" ), data);


 
Quelqu'un aurait une idée?

mood
Publicité
Posté le 19-06-2009 à 10:42:05  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Vérification intégrité certificat ( RSACryptoServiceProvider SHA1 )

 

Sujets relatifs
[résolu]Problème de vérification d'un entierverification
Problème vérification pseudoProblème vérification format champs
Parse error dans un script de vérification de formulaireFunction, Vérification doublons dans un formulaire
redirection php après verification code captchaverification de mon formulaire
J'éssai de coder sha1 en C ![Résolu] Ne pas charger une page pdt la vérifi des variable de session
Plus de sujets relatifs à : Vérification intégrité certificat ( RSACryptoServiceProvider SHA1 )


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)