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

## SigningAlgorithms Class

JWS signing algorithm identifiers \("alg" header values\) defined in RFC 7518 Section 3\.
Used to indicate how a JWT was signed and to look up the matching signer or verifier\.

```csharp
public static class SigningAlgorithms
```

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

## SigningAlgorithms\.ES256 Field {#Abblix.Jwt.SigningAlgorithms.ES256}

ECDSA on curve P\-256 with SHA\-256 \(RFC 7518 Section 3\.4\)\. Backed by \.NET `ECDsa`
using `DSASignatureFormat.IeeeP1363FixedFieldConcatenation`\.
Produces 64\-byte signatures and is significantly smaller than RSA equivalents\.

```csharp
public const string ES256 = "ES256";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.ES384 Field {#Abblix.Jwt.SigningAlgorithms.ES384}

ECDSA on curve P\-384 with SHA\-384 \(RFC 7518 Section 3\.4\)\. Backed by \.NET `ECDsa`
in IEEE P1363 format; produces 96\-byte signatures\.

```csharp
public const string ES384 = "ES384";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.ES512 Field {#Abblix.Jwt.SigningAlgorithms.ES512}

ECDSA on curve P\-521 with SHA\-512 \(RFC 7518 Section 3\.4\)\. Backed by \.NET `ECDsa`
in IEEE P1363 format; produces 132\-byte signatures\.
Note that the curve is P\-521 \(521 bits\) although the algorithm name is "ES512"\.

```csharp
public const string ES512 = "ES512";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.HS256 Field {#Abblix.Jwt.SigningAlgorithms.HS256}

HMAC with SHA\-256 \(RFC 7518 Section 3\.2\)\. Backed by \.NET `HMACSHA256` with
constant\-time signature comparison\. Requires a shared symmetric key of at least 256 bits\.
Suitable only when issuer and verifier can both be trusted with the secret\.

```csharp
public const string HS256 = "HS256";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.HS384 Field {#Abblix.Jwt.SigningAlgorithms.HS384}

HMAC with SHA\-384 \(RFC 7518 Section 3\.2\)\. Backed by \.NET `HMACSHA384`;
requires a shared symmetric key of at least 384 bits\.

```csharp
public const string HS384 = "HS384";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.HS512 Field {#Abblix.Jwt.SigningAlgorithms.HS512}

HMAC with SHA\-512 \(RFC 7518 Section 3\.2\)\. Backed by \.NET `HMACSHA512`;
requires a shared symmetric key of at least 512 bits\.

```csharp
public const string HS512 = "HS512";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.Known Field {#Abblix.Jwt.SigningAlgorithms.Known}

The set of every `alg` identifier this library recognises\. Per RFC 7515 §5\.3 and
§10\.13 the comparison is byte\-exact, so case\-variants like `None`/`NONE` are
not members of this set and must be rejected as unknown algorithms — not silently
stream into the signature\-verification path where they would surface as the
\(semantically incorrect\) "invalid signature" failure\.

```csharp
public static readonly IReadOnlySet<string> Known;
```

#### Field Value
[System\.Collections\.Generic\.IReadOnlySet&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlyset-1 'System\.Collections\.Generic\.IReadOnlySet\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlyset-1 'System\.Collections\.Generic\.IReadOnlySet\`1')

## SigningAlgorithms\.None Field {#Abblix.Jwt.SigningAlgorithms.None}

Unsecured JWS \("none"\) per RFC 7515 Section 6: no digital signature or MAC is applied\.
The token's integrity is therefore not protected; callers must reject unsigned tokens
unless integrity is guaranteed by another channel\.

```csharp
public const string None = "none";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.PS256 Field {#Abblix.Jwt.SigningAlgorithms.PS256}

RSASSA\-PSS with SHA\-256 and MGF1 \(RFC 7518 Section 3\.5\)\. Backed by \.NET `RSA`
with `RSASignaturePadding.Pss`\. Preferred over RS256 when both sides support PSS,
because PSS has a tighter security reduction\.

```csharp
public const string PS256 = "PS256";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.PS384 Field {#Abblix.Jwt.SigningAlgorithms.PS384}

RSASSA\-PSS with SHA\-384 and MGF1 \(RFC 7518 Section 3\.5\)\. Backed by \.NET `RSA`
with `RSASignaturePadding.Pss`\.

```csharp
public const string PS384 = "PS384";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.PS512 Field {#Abblix.Jwt.SigningAlgorithms.PS512}

RSASSA\-PSS with SHA\-512 and MGF1 \(RFC 7518 Section 3\.5\)\. Backed by \.NET `RSA`
with `RSASignaturePadding.Pss`\.

```csharp
public const string PS512 = "PS512";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.RS256 Field {#Abblix.Jwt.SigningAlgorithms.RS256}

RSASSA\-PKCS1\-v1\_5 with SHA\-256 \(RFC 7518 Section 3\.3\)\. Backed by \.NET `RSA`
with `RSASignaturePadding.Pkcs1`\. Widely deployed default for OIDC ID tokens\.

```csharp
public const string RS256 = "RS256";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.RS384 Field {#Abblix.Jwt.SigningAlgorithms.RS384}

RSASSA\-PKCS1\-v1\_5 with SHA\-384 \(RFC 7518 Section 3\.3\)\. Same construction as RS256
with a stronger hash; backed by \.NET `RSA` with `RSASignaturePadding.Pkcs1`\.

```csharp
public const string RS384 = "RS384";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## SigningAlgorithms\.RS512 Field {#Abblix.Jwt.SigningAlgorithms.RS512}

RSASSA\-PKCS1\-v1\_5 with SHA\-512 \(RFC 7518 Section 3\.3\)\. Same construction as RS256
with SHA\-512; backed by \.NET `RSA` with `RSASignaturePadding.Pkcs1`\.

```csharp
public const string RS512 = "RS512";
```

#### Field Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
