#### [Abblix\.Utils](https://www.abblix.com/en/docs/api/abblix-utils 'index')

## Abblix\.Utils Namespace

| Classes | |
| :--- | :--- |
| [AddressValidatingHttpMessageHandler](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.AddressValidatingHttpMessageHandler 'Abblix\.Utils\.AddressValidatingHttpMessageHandler') | The message\-handler half of protecting a server\-initiated request whose address came from outside: it refuses redirects and re\-checks the address immediately before every send, leaving only the policy \- which addresses are refused \- to the derived handler\. |
| [ArrayExtensions](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.ArrayExtensions 'Abblix\.Utils\.ArrayExtensions') | Allocation\-explicit array helpers: each operation returns a freshly allocated array sized to the result\. Prefer these over LINQ when the caller needs a concrete `T[]` without an extra `ToArray()` step, or when copying byte buffers via [System\.Buffer\.BlockCopy\(System\.Array,System\.Int32,System\.Array,System\.Int32,System\.Int32\)](https://learn.microsoft.com/en-us/dotnet/api/system.buffer.blockcopy#system-buffer-blockcopy(system-array-system-int32-system-array-system-int32-system-int32) 'System\.Buffer\.BlockCopy\(System\.Array,System\.Int32,System\.Array,System\.Int32,System\.Int32\)') matters\. |
| [Base32](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Base32 'Abblix\.Utils\.Base32') | Provides methods for encoding and decoding data using Base32 and Base32hex formats as defined in RFC 4648\. Supports optional padding and ignores padding characters during decoding\. |
| [CertificateId](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.CertificateId 'Abblix\.Utils\.CertificateId') | Represents the identifiers for a certificate, including paths to certificate and key files, and an optional password\. |
| [CryptoRandom](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.CryptoRandom 'Abblix\.Utils\.CryptoRandom') | Provides cryptographic random number generation\. |
| [DistributedCacheExtensions](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.DistributedCacheExtensions 'Abblix\.Utils\.DistributedCacheExtensions') | Extension methods for [Microsoft\.Extensions\.Caching\.Distributed\.IDistributedCache](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.caching.distributed.idistributedcache 'Microsoft\.Extensions\.Caching\.Distributed\.IDistributedCache') providing atomic operations\. |
| [EnumerableExtensions](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.EnumerableExtensions 'Abblix\.Utils\.EnumerableExtensions') | Provides extension methods for IEnumerable\<T\> for common operations\. |
| [EnumFlagExtensions](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.EnumFlagExtensions 'Abblix\.Utils\.EnumFlagExtensions') | Extension methods for `[Flags]` enum values that complement the BCL surface\. Named with the `Flag` qualifier so it does not collide with the very common `EnumExtensions` class name used by other libraries \(e\.g\. `Fido2NetLib.EnumExtensions`\), which would surface as `CS0104` in any consumer that imports both namespaces\. |
| [HexConverter](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.HexConverter 'Abblix\.Utils\.HexConverter') | Provides a static method for converting a byte array to its hexadecimal string representation\. |
| [HttpServerUtility](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.HttpServerUtility 'Abblix\.Utils\.HttpServerUtility') | Provides utility methods for encoding and decoding URL tokens\. |
| [ObjectExtensions](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.ObjectExtensions 'Abblix\.Utils\.ObjectExtensions') | Provides extension methods for objects to ensure non\-null values\. |
| [ParametersBuilder](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.ParametersBuilder 'Abblix\.Utils\.ParametersBuilder') | Provides a builder for constructing and manipulating query strings or URI fragment parts\. |
| [PrivateNetworks](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.PrivateNetworks 'Abblix\.Utils\.PrivateNetworks') | Tells an address inside the deployment's own network from one on the public internet\. |
| [Result&lt;TSuccess,TFailure&gt;](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Result_TSuccess_TFailure_ 'Abblix\.Utils\.Result\<TSuccess,TFailure\>') | Represents a result of an operation that can either succeed with a value of type [TSuccess](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Result_TSuccess_TFailure_#Abblix.Utils.Result_TSuccess,TFailure_.TSuccess 'Abblix\.Utils\.Result\<TSuccess,TFailure\>\.TSuccess') or fail with a value of type [TFailure](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Result_TSuccess_TFailure_#Abblix.Utils.Result_TSuccess,TFailure_.TFailure 'Abblix\.Utils\.Result\<TSuccess,TFailure\>\.TFailure')\. |
| [ResultExtensions](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.ResultExtensions 'Abblix\.Utils\.ResultExtensions') | Provides extension methods for working with [Result&lt;TSuccess,TFailure&gt;](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Result_TSuccess_TFailure_ 'Abblix\.Utils\.Result\<TSuccess,TFailure\>') types\. |
| [StringExtensions](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.StringExtensions 'Abblix\.Utils\.StringExtensions') | The class provides extension methods for enhancing the functionality and ease of use of strings\. |
| [UriBuilder](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.UriBuilder 'Abblix\.Utils\.UriBuilder') | A wrapper around System\.UriBuilder, providing enhanced functionality for URI manipulation, specifically for handling query strings and fragments\. |
| [UriExtensions](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.UriExtensions 'Abblix\.Utils\.UriExtensions') | Helpers for adding parameters to a URI's query or fragment and for extracting standard parts \(origin, trailing slash\)\. Empty or null parameter values are dropped rather than serialized as bare keys, matching the OAuth 2\.0 / OpenID Connect convention for absent parameters\. |
| [WwwAuthenticate](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.WwwAuthenticate 'Abblix\.Utils\.WwwAuthenticate') | Builds `WWW-Authenticate` challenge values: the HTTP grammar, not any one protocol's vocabulary of errors\. |

| Structs | |
| :--- | :--- |
| [Sanitized](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Sanitized 'Abblix\.Utils\.Sanitized') | A type that sanitizes a given string by removing control characters and escaping special characters to prevent log injection attacks\. |

| Interfaces | |
| :--- | :--- |
| [ICertificateProvider](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.ICertificateProvider 'Abblix\.Utils\.ICertificateProvider') | Resolves an [System\.Security\.Cryptography\.X509Certificates\.X509Certificate2](https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.x509certificate2 'System\.Security\.Cryptography\.X509Certificates\.X509Certificate2') from a logical [CertificateId](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.CertificateId 'Abblix\.Utils\.CertificateId'), abstracting away the physical source \(file system, certificate store, secret manager, etc\.\)\. Implementations are expected to be thread\-safe and to surface format or access errors as [System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')\. |
