Esempio n. 1
0
        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"));
        }
Esempio n. 2
0
        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));
        }