Überprüfen Sie die Signatur für x509-Zertifikat

Habe ich:

  1. x509 certificate (Base64);
  2. String Daten;
  3. Signatur von string-Daten (Base64).

Ist es möglich zu überprüfen, Signatur?

Mein code:

  bool valid = false;

  var signature = Convert.FromBase64String(base64Signature);
  var data = Encoding.UTF8.GetBytes(stringData);

  var x509 = new X509Certificate2(Convert.FromBase64String(certificate));
  var dsa = x509.PublicKey.Key as DSACryptoServiceProvider;
  if (dsa!=null)
    valid = dsa.VerifySignature(data, signature);
  else {
    var rsa = x509.PublicKey.Key as RSACryptoServiceProvider;
    if (rsa!=null)
      valid = rsa.VerifyHash(data, ???, signature);
  }

Ich weiß nicht, was soll ich stattdessen verwenden ???. Es ist möglich, hash-Algorithmus aus dem Zertifikat?

Können Sie klären, ob Sie möchten, um zu überprüfen, die Signatur des Zertifikats (der Emittent) oder die Signatur von Daten mit dem privaten Schlüssel, das Zertifikat?
Ich möchte, um zu überprüfen, signatue einige Daten (stringData).

InformationsquelleAutor Marat Faskhiev | 2010-07-16

Schreibe einen Kommentar