#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.ClientInformation](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation 'Abblix\.Oidc\.Server\.Features\.ClientInformation')

## ClientKeysProvider Class

Facilitates the retrieval of JSON Web Keys \(JWKs\) for cryptographic operations, including encryption and signing\.
This provider supports fetching keys from a client's JSON Web Key Set \(JWKS\) URL or directly from the client configuration\.

```csharp
public class ClientKeysProvider : Abblix.Oidc.Server.Features.ClientInformation.IClientKeysProvider
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → ClientKeysProvider

Implements [IClientKeysProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.IClientKeysProvider 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.IClientKeysProvider')
### Constructors

## ClientKeysProvider\(ILogger\<ClientKeysProvider\>, IServiceProvider\) Constructor {#Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider.ClientKeysProvider(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider_,System.IServiceProvider)}

Facilitates the retrieval of JSON Web Keys \(JWKs\) for cryptographic operations, including encryption and signing\.
This provider supports fetching keys from a client's JSON Web Key Set \(JWKS\) URL or directly from the client configuration\.

```csharp
public ClientKeysProvider(Microsoft.Extensions.Logging.ILogger<Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider> logger, System.IServiceProvider serviceProvider);
```
#### Parameters

###### `logger` [Microsoft\.Extensions\.Logging\.ILogger&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1')[ClientKeysProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientKeysProvider')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1') {#Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider.ClientKeysProvider(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider_,System.IServiceProvider).logger}

Logger for capturing any operational logs\.

###### `serviceProvider` [System\.IServiceProvider](https://learn.microsoft.com/en-us/dotnet/api/system.iserviceprovider 'System\.IServiceProvider') {#Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider.ClientKeysProvider(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider_,System.IServiceProvider).serviceProvider}

Service provider used to resolve scoped dependencies like ISecureHttpFetcher\.
### Methods

## ClientKeysProvider\.GetEncryptionKeys\(ClientInfo\) Method {#Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider.GetEncryptionKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo)}

Retrieves the encryption keys associated with a specific client\.

```csharp
public System.Collections.Generic.IAsyncEnumerable<Abblix.Jwt.JsonWebKey> GetEncryptionKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo clientInfo);
```
#### Parameters

###### `clientInfo` [ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo') {#Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider.GetEncryptionKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).clientInfo}

Client information containing either JWKS or a JWKS URI\.

Implements [GetEncryptionKeys\(ClientInfo\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.IClientKeysProvider#Abblix.Oidc.Server.Features.ClientInformation.IClientKeysProvider.GetEncryptionKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo) 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.IClientKeysProvider\.GetEncryptionKeys\(Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\)')

#### Returns
[System\.Collections\.Generic\.IAsyncEnumerable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.iasyncenumerable-1 'System\.Collections\.Generic\.IAsyncEnumerable\`1')[JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.iasyncenumerable-1 'System\.Collections\.Generic\.IAsyncEnumerable\`1')  
A collection of encryption keys as an asynchronous enumerable\.

## ClientKeysProvider\.GetSigningKeys\(ClientInfo\) Method {#Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider.GetSigningKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo)}

Retrieves the signing keys associated with a specific client\.

```csharp
public System.Collections.Generic.IAsyncEnumerable<Abblix.Jwt.JsonWebKey> GetSigningKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo clientInfo);
```
#### Parameters

###### `clientInfo` [ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo') {#Abblix.Oidc.Server.Features.ClientInformation.ClientKeysProvider.GetSigningKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).clientInfo}

Client information containing either JWKS or a JWKS URI\.

Implements [GetSigningKeys\(ClientInfo\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.IClientKeysProvider#Abblix.Oidc.Server.Features.ClientInformation.IClientKeysProvider.GetSigningKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo) 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.IClientKeysProvider\.GetSigningKeys\(Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo\)')

#### Returns
[System\.Collections\.Generic\.IAsyncEnumerable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.iasyncenumerable-1 'System\.Collections\.Generic\.IAsyncEnumerable\`1')[JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.iasyncenumerable-1 'System\.Collections\.Generic\.IAsyncEnumerable\`1')  
A collection of signing keys as an asynchronous enumerable\.
