public void Algorithm_is_set_to_RS256() { var certficateFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Certificates\\TestCertificate.pfx"); var certificate = new X509Certificate2(certficateFilePath, "Test", X509KeyStorageFlags.Exportable); var signer = new Sha256JsonWebTokenSigner(certificate); Assert.That(signer.AlgorithmName, Is.EqualTo("RS256")); }
public void Sign_produces_expected_results() { // To generate certificate: // makecert -pe TestCertificate.cer -sv TestCertificate.pvk // Provide password "Test" in dialogs // pvk2pfx -pvk TestCertificate.pvk -pi Test -spc TestCertificate.cer -pfx TestCertificate.pfx var certficateFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Certificates\\TestCertificate.pfx"); var certificate = new X509Certificate2(certficateFilePath, "Test", X509KeyStorageFlags.Exportable); var signer = new Sha256JsonWebTokenSigner(certificate); var testSignData = Encoding.UTF8.GetBytes("Test sign me"); var cspBlob = ((RSACryptoServiceProvider)certificate.PrivateKey).ExportCspBlob(true); byte[] expectedResults; using (var cryptoServiceProvider = new RSACryptoServiceProvider()) { cryptoServiceProvider.ImportCspBlob(cspBlob); expectedResults = cryptoServiceProvider.SignData(testSignData, "SHA256"); } var actualResults = signer.Sign(testSignData); Assert.That(actualResults, Is.EqualTo(expectedResults)); }