Accueil Rechercher Faq Enregistrement Connexion  
C#
Vérification intégrité certificat {RSACryptoServiceProvider - SHA1 - thumbprint - RawData }

Thread Starter: custo76   Started: 06-19-2009 11:30    Replies: 0
 Dotnet-Project.com & Dotnet-News.com Forums » .NET en général » C# » Vérification intégrité certificat {RSACryptoServiceProvider - SHA1 - thumbprint - RawData }
 Printable Version    « Précédent Suivant »
  19 juin 2009, 11:30
custo76 n'est pas en ligne. Dernière activité: 07/07/2009 17:16:21 custo76

Top 10 Posts
Rejoint: 04-30-2008
Messages : 3
Vérification intégrité certificat {RSACryptoServiceProvider - SHA1 - thumbprint - RawData }
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]
using System.Security.Cryptography;
using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;

SHA1Managed sha1 = new SHA1Managed();
RSACryptoServiceProvider csp = null;
AsymmetricAlgorithm rsaAlgo = certificatEnCours.PublicKey.Key;
byte[] data = null;
byte[] hash = null;

string keyPublic = "";
string signatureNumérique = "";

bool verif = false;

// ------------- PARTIE 1 -------------

// On récupère l'empreinte numérique
signatureNumérique = certificatEnCours.Thumbprint;

//data = System.Text.Encoding.Unicode.GetBytes(signatureNumérique);
//data = System.Text.Encoding.ASCII.GetBytes(signatureNumérique);

// On convertit l'empreinte numérique en tableau de bytes
data = Convert.FromBase64String(signatureNumérique);

// ------------- PARTIE 2 -------------

// On hashe le contenu du certificat en SHA1
hash = sha1.ComputeHash(certificatEnCours.RawData);

// On convertit la valeur xml de la clé en chaîne de caractère
keyPublic = rsaAlgo.ToXmlString(false);

// On instancie RSACryptoServiceProvider
csp = new RSACryptoServiceProvider();

// On importe la clé publique dans le RSACryptoServiceProvider
csp.FromXmlString(keyPublic);

// ------------- COMPARAISON --------------

// On compare la valeur hashé du contenu du certificat avec
//  la signature numérique :
verif = csp.VerifyData(hash, CryptoConfig.MapNameToOID("SHA1"), data);

[/CODE]

Quelqu'un aurait une idée?

Adresse IP: Connecté  
 Page 1 sur 1 [1 au total]
Dotnet-Project.com & Dotnet-News.com Forums » .NET en général » C# » Vérification intégrité certificat {RSACryptoServiceProvider - SHA1 - thumbprint - RawData }

Vous pouvez ajouter une pièce jointe à un message dans ce forum
Vous pouvez écrire un nouveau sujet dans ce forum
Vous pouvez répondre à un sujet dans ce forum
Vous pouvez effacer un sujet dans ce forum
Vous pouvez éditer un message dans ce forum
Vous pouvez créer un sondage dans ce forum
Vous pouvez voter dans ce forum
Statistiques des messages sont activé pour ce forum
Forum est démodéré

Powered by Community Server :: Forums