C# Comment puis-je valider un Root-CA-Cert certificat x509) de la chaîne?

Disons que j'ai trois certificats (au format Base64)

Root
 |
 --- CA
     |
     --- Cert (client/signing/whatever)

Comment puis-je valider les certificats et chemin d'accès du certificat/chaîne en C#?
(Tous les trois certificats ne peuvent pas être dans mon ordinateur cert magasin)

Modifier: BouncyCastle a pour fonction de vérifier. Mais je vais essayer de ne pas utiliser toute la troisième partie de la bibliothèque.

    byte[] b1 = Convert.FromBase64String(x509Str1);
    byte[] b2 = Convert.FromBase64String(x509Str2);
    X509Certificate cer1 = 
        new X509CertificateParser().ReadCertificate(b1);
    X509Certificate cer2 =
        new X509CertificateParser().ReadCertificate(b2);
    cer1.Verify(cer2.GetPublicKey());

Si le cer1 n'est pas signé par cert2 (CA ou de la racine), il n'y aura d'exception. C'est exactement ce que je veux.

OriginalL'auteur Jacob | 2011-09-07