#### [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')

## IClientKeysProvider Interface

Provides access to cryptographic keys for OpenID Connect clients, supporting token encryption and signature validation\.

```csharp
public interface IClientKeysProvider
```

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

### Remarks
This interface serves as a bridge between OAuth 2\.0/OpenID Connect clients and the cryptographic keys necessary
for securing JWT tokens\. It enables dynamic retrieval of encryption and signing keys which can be used for
token encryption, signature, and validation processes\. This approach supports scenarios where keys are rotated
or updated without requiring service restarts or manual intervention\.
### Methods

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

Retrieves the set of encryption keys associated with a given client, allowing the service to encrypt
JWT tokens or other sensitive information intended for that client\.

```csharp
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.IClientKeysProvider.GetEncryptionKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).clientInfo}

The client's information, used to identify the correct set of encryption keys\.

#### 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')  
An asynchronous stream \([System\.Collections\.Generic\.IAsyncEnumerable&lt;&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.iasyncenumerable-1 'System\.Collections\.Generic\.IAsyncEnumerable\`1')\) of [JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey'), providing access to each key\.

### Remarks
This method is essential for services that issue encrypted tokens or need to securely communicate with clients,
ensuring that only the intended recipient can decrypt and access the transmitted information\.

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

Retrieves the set of signing keys associated with a given client, enabling the service to validate
signatures on JWT tokens or other signed payloads originating from that client\.

```csharp
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.IClientKeysProvider.GetSigningKeys(Abblix.Oidc.Server.Features.ClientInformation.ClientInfo).clientInfo}

The client's information, used to identify the correct set of signing keys\.

#### 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')  
An asynchronous stream \([System\.Collections\.Generic\.IAsyncEnumerable&lt;&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.iasyncenumerable-1 'System\.Collections\.Generic\.IAsyncEnumerable\`1')\) of [JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey'), providing access to each key\.

### Remarks
This method supports secure client\-server interactions by enabling the service to verify the authenticity
of incoming signed data, ensuring it was not tampered with and was indeed issued by the claiming client\.
