Example #1
0
        public IActionResult Get()
        {
            var exponentSignAsString    = string.Empty;
            var modulusSignAsString     = string.Empty;
            var exponentEncryptAsString = string.Empty;
            var modulusEncryptAsString  = string.Empty;

            // get Kid, Exponent and Modulus
            var exportedSigningCertificateThumbprint = _signingCertificate.Thumbprint;

            using (var publicSigningKey = _signingCertificate.GetRSAPublicKey())
            {
                var rsaSigningKeyParameters = publicSigningKey.ExportParameters(false);
                exponentSignAsString = Base64Url.Encode(rsaSigningKeyParameters.Exponent);
                modulusSignAsString  = Base64Url.Encode(rsaSigningKeyParameters.Modulus);
            }

            // signing keypair
            var signingKeyPair = new JwkKeyPair()
            {
                Alg = "RS256",
                E   = exponentSignAsString,
                Use = "sig",
                Kid = exportedSigningCertificateThumbprint,
                Kty = "RSA",
                N   = modulusSignAsString
            };

            // get Kid, Exponent and Modulus
            var exportedEncryptionCertificateThumbprint = _encryptionCertificate.Thumbprint;

            using (var publicEncryptionKey = _encryptionCertificate.GetRSAPublicKey())
            {
                var rsaEncryptionKeyParameters = publicEncryptionKey.ExportParameters(false);
                exponentEncryptAsString = Base64Url.Encode(rsaEncryptionKeyParameters.Exponent);
                modulusEncryptAsString  = Base64Url.Encode(rsaEncryptionKeyParameters.Modulus);
            }

            // encryption keypair
            var encryptionKeyPair = new JwkKeyPair()
            {
                Alg = "RS256",
                E   = exponentEncryptAsString,
                Use = "enc",
                Kid = exportedEncryptionCertificateThumbprint,
                Kty = "RSA",
                N   = modulusEncryptAsString
            };

            var jwkKeyPairSet = new JwkKeyPairSet();

            jwkKeyPairSet.Keys.Add(signingKeyPair);
            jwkKeyPairSet.Keys.Add(encryptionKeyPair);

            return(Json(jwkKeyPairSet));
        }
Example #2
0
        public IActionResult Get()
        {
            // get Kid, Exponent and Modulus
            var exportedSigningCertificateThumbprint = _signingCertificate.Thumbprint;
            var rsaSigningKeyParameters = (_signingCertificate.PublicKey.Key as RSACryptoServiceProvider)
                                          .ExportParameters(false);

            var exponentSignAsString = Base64Url.Encode(rsaSigningKeyParameters.Exponent);
            var modulusSignAsString  = Base64Url.Encode(rsaSigningKeyParameters.Modulus);

            // signing keypair
            var signingKeyPair = new JwkKeyPair()
            {
                Alg = "RS256",
                E   = exponentSignAsString,
                Use = "sig",
                Kid = exportedSigningCertificateThumbprint,
                Kty = "RSA",
                N   = modulusSignAsString
            };

            // get Kid, Exponent and Modulus
            var exportedEncryptionCertificateThumbprint = _encryptionCertificate.Thumbprint;
            var rsaEncryptionKeyParameters = (_encryptionCertificate.PublicKey.Key as RSACryptoServiceProvider)
                                             .ExportParameters(false);

            var exponentEncryptAsString = Base64Url.Encode(rsaEncryptionKeyParameters.Exponent);
            var modulusEncryptAsString  = Base64Url.Encode(rsaEncryptionKeyParameters.Modulus);

            // encryption keypair
            var encryptionKeyPair = new JwkKeyPair()
            {
                Alg = "RS256",
                E   = exponentEncryptAsString,
                Use = "enc",
                Kid = exportedEncryptionCertificateThumbprint,
                Kty = "RSA",
                N   = modulusEncryptAsString
            };

            var jwkKeyPairSet = new JwkKeyPairSet();

            jwkKeyPairSet.Keys.Add(signingKeyPair);
            jwkKeyPairSet.Keys.Add(encryptionKeyPair);

            return(Json(jwkKeyPairSet));
        }