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)); }
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)); }