55using System . Security . Cryptography . X509Certificates ;
66using System . Threading . Tasks ;
77using Clients ;
8- using IdentityModel ;
8+ using Duende . IdentityModel ;
99using IdentityModel . Client ;
1010using Newtonsoft . Json . Linq ;
1111
@@ -14,18 +14,18 @@ namespace ConsoleEphemeralMtlsClient
1414 class Program
1515 {
1616 private static X509Certificate2 ClientCertificate ;
17-
17+
1818 static async Task Main ( string [ ] args )
1919 {
2020 ClientCertificate = CreateClientCertificate ( "client" ) ;
21-
21+
2222 var response = await RequestTokenAsync ( ) ;
2323 response . Show ( ) ;
2424
2525 Console . ReadLine ( ) ;
2626 await CallServiceAsync ( response . AccessToken ) ;
2727 }
28-
28+
2929 static async Task < TokenResponse > RequestTokenAsync ( )
3030 {
3131 var client = new HttpClient ( GetHandler ( ClientCertificate ) ) ;
@@ -37,7 +37,7 @@ static async Task<TokenResponse> RequestTokenAsync()
3737 . TryGetValue ( OidcConstants . Discovery . MtlsEndpointAliases )
3838 . Value < string > ( OidcConstants . Discovery . TokenEndpoint )
3939 . ToString ( ) ;
40-
40+
4141 var response = await client . RequestClientCredentialsTokenAsync ( new ClientCredentialsTokenRequest
4242 {
4343 Address = endpoint ,
@@ -64,17 +64,17 @@ static async Task CallServiceAsync(string token)
6464 "\n \n Service claims:" . ConsoleGreen ( ) ;
6565 Console . WriteLine ( JArray . Parse ( response ) ) ;
6666 }
67-
67+
6868 static X509Certificate2 CreateClientCertificate ( string name )
6969 {
7070 X500DistinguishedName distinguishedName = new X500DistinguishedName ( $ "CN={ name } ") ;
7171
7272 using ( var rsa = RSA . Create ( 2048 ) )
7373 {
74- var request = new CertificateRequest ( distinguishedName , rsa , HashAlgorithmName . SHA256 , RSASignaturePadding . Pkcs1 ) ;
74+ var request = new CertificateRequest ( distinguishedName , rsa , HashAlgorithmName . SHA256 , RSASignaturePadding . Pkcs1 ) ;
7575
7676 request . CertificateExtensions . Add (
77- new X509KeyUsageExtension ( X509KeyUsageFlags . DataEncipherment | X509KeyUsageFlags . KeyEncipherment | X509KeyUsageFlags . DigitalSignature , false ) ) ;
77+ new X509KeyUsageExtension ( X509KeyUsageFlags . DataEncipherment | X509KeyUsageFlags . KeyEncipherment | X509KeyUsageFlags . DigitalSignature , false ) ) ;
7878
7979 request . CertificateExtensions . Add (
8080 new X509EnhancedKeyUsageExtension (
@@ -83,7 +83,7 @@ static X509Certificate2 CreateClientCertificate(string name)
8383 return request . CreateSelfSigned ( new DateTimeOffset ( DateTime . UtcNow . AddDays ( - 1 ) ) , new DateTimeOffset ( DateTime . UtcNow . AddDays ( 3650 ) ) ) ;
8484 }
8585 }
86-
86+
8787 static SocketsHttpHandler GetHandler ( X509Certificate2 certificate )
8888 {
8989 var handler = new SocketsHttpHandler
0 commit comments