Je dois obtenir la signature et l'algorithme utilisé pour créer cette signature à partir d'un certificat avec C#.Comment puis-je obtenir la signature d'un objet X509Certificate2 en utilisant C#?
Puis-je faire cela? Si oui, comment?
Je dois obtenir la signature et l'algorithme utilisé pour créer cette signature à partir d'un certificat avec C#.Comment puis-je obtenir la signature d'un objet X509Certificate2 en utilisant C#?
Puis-je faire cela? Si oui, comment?
Je développe maintenant une application avec des fonctionnalités similaires. Et je suis vraiment déçu pourquoi Microsoft n'a pas ajouté la propriété Signature à X509Certificate2 classe
Je sais comment faire via bouncycastle
partir de là http://www.bouncycastle.org/csharp/
Ensuite, ajoutez le code
using System;
using System.Security.Cryptography.X509Certificates;
using bcrypto = Org.BouncyCastle.X509;
.
var cert = new X509Certificate2("c:\\temp\\0c50000343119659.cer");
var certParser = new bcrypto.X509CertificateParser();
var privateCertBouncy = certParser.ReadCertificate(cert.GetRawCertData());
var xx = privateCertBouncy.GetSignature();
Array.Reverse(xx);
//Signature
Console.WriteLine(BitConverter.ToString(xx));
//algorithm
Console.WriteLine(privateCertBouncy.SigAlgName);
Console.ReadLine();
Merci. Semble fonctionner :) –
J'ai mis à jour le code. C'est étrange mais je reçois un tableau d'octets dans le mauvais ordre et je dois l'inverser. –
Ouais je suis tombé dessus et je l'ai trouvé dans un forum et je l'ai réparé :) –
Vous devrez recourir à Bouncy Castle,
https://github.com/bcgit/bc-csharp/blob/master/crypto/src/x509/X509Certificate.cs#L240
Sa classe X509Certificate vous donne accès à cette propriété.
Merci. Bouncy Castle est génial! –
Les certificats ont thumbprint, mais pas de signature, si vous lisez attentivement la documentation MSDN, https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate2(v=vs .110) .aspx –
@ lex-li Les certificats ont une signature. .Net ne vous permet pas d'y accéder. Les certificats n'ont pas d'empreinte. Thumbprint est l'invention de Microsoft, il est calculé en hachant le contenu du certificat avec SHA1. –