JWT
Signs the provided byte array with the private key.
Implements by returning the supplied while ignoring parameters.
Creates an instance of with supplied delegate to an algorithm with a context.
Creates an instance of with supplied delegate to an algorithm.
Creates an instance of with supplied algorithm factory.
Creates an instance of with supplied algorithm.
HMAC using SHA-256
HMAC using SHA-384
HMAC using SHA-512
Provides IJwtAlgorithms.
Creates an AlgorithmFactory using the provided algorithm enum.
The captured context during validation of JWT inside
Represents an asymmetric algorithm to generate or validate JWT signature.
Verifies provided byte array with provided signature.
The data to verify
The signature to verify with
Represents an algorithm to generate JWT signature.
Signs provided byte array with provided key.
The key used to sign the data
The data to sign
Gets algorithm name.
Gets name of the hashing algorithm (e.g. SHA-256/SHA-384/SHA-512).
Extension methods for
Returns whether or not the algorithm is asymmetric.
The algorithm instance.
Enum representing the various Jwt Hash Algorithms.
HMAC using SHA-256
HMAC using SHA-384
HMAC using SHA-512
RSASSA-PKCS1-v1_5 using SHA-256
RSASSA-PKCS1-v1_5 using SHA-384
RSASSA-PKCS1-v1_5 using SHA-512
RSASSA-PKCS1-v1_5 using SHA-1024
RSASSA-PKCS1-v1_5 using SHA-2048
RSASSA-PKCS1-v1_5 using SHA-4096
ECDSA using SHA-256
ECDSA using SHA-384
ECDSA using SHA-512
Algorithm used when no signing is wanted
Implements the "None" algorithm.
RFC-7519
RSASSA-PKCS1-v1_5 using SHA-1024
Creates an instance of using the provided pair of public and private keys.
The public key for verifying the data.
The private key for signing the data.
Creates an instance of using the provided public key only.
An instance created using this constructor can only be used for verifying the data, not for signing it.
The public key for verifying the data.
Creates an instance using the provided certificate.
The certificate having a public key and an optional private key.
RSASSA-PKCS1-v1_5 using SHA-2048
Creates an instance of using the provided pair of public and private keys.
The public key for verifying the data.
The private key for signing the data.
Creates an instance of using the provided public key only.
An instance created using this constructor can only be used for verifying the data, not for signing it.
The public key for verifying the data.
Creates an instance using the provided certificate.
The certificate having a public key and an optional private key.
RSASSA-PKCS1-v1_5 using SHA-256
Creates an instance of using the provided pair of public and private keys.
The public key for verifying the data.
The private key for signing the data.
Creates an instance of using the provided public key only.
An instance created using this constructor can only be used for verifying the data, not for signing it.
The public key for verifying the data.
Creates an instance using the provided certificate.
The certificate having a public key and an optional private key.
RSASSA-PKCS1-v1_5 using SHA-384
Creates an instance of using the provided pair of public and private keys.
The public key for verifying the data.
The private key for signing the data.
Creates an instance of using the provided public key only.
An instance created using this constructor can only be used for verifying the data, not for signing it.
The public key for verifying the data.
Creates an instance using the provided certificate.
The certificate having a public key and an optional private key.
RSASSA-PKCS1-v1_5 using SHA-4096
Creates an instance of using the provided pair of public and private keys.
The public key for verifying the data.
The private key for signing the data.
Creates an instance of using the provided public key only.
An instance created using this constructor can only be used for verifying the data, not for signing it.
The public key for verifying the data.
Creates an instance using the provided certificate.
The certificate having a public key and an optional private key.
RSASSA-PKCS1-v1_5 using SHA-512
Creates an instance of using the provided pair of public and private keys.
The public key for verifying the data.
The private key for signing the data.
Creates an instance of using the provided public key only.
An instance created using this constructor can only be used for verifying the data, not for signing it.
The public key for verifying the data.
Creates an instance using the provided certificate.
The certificate having a public key and an optional private key.
RSASSA-PKCS1-v1_5 using SHA-256
Creates an instance of using the provided pair of public and private keys.
The public key for verifying the data.
The private key for signing the data.
Creates an instance of using the provided public key only.
An instance created using this constructor can only be used for verifying the data, not for signing it.
The public key for verifying the data.
Creates an instance using the provided certificate.
The certificate having a public key and an optional private key.
Creates an instance of the class using the provided .
Func that returns which will be used to instantiate
Creates an instance of using the provided public key only.
The public key for verifying the data.
Creates an instance of using the provided pair of public and private keys.
The public key for verifying the data.
The private key for signing the data.
All public claims of a JWT specified by IANA, see https://www.iana.org/assignments/jwt/jwt.xhtml
Gets the string representation of a well-known header name enum
Gets the string representation of a well-known claim name enum
Gets the value of the from the object.
All predefined parameter names specified by RFC 7515, see https://tools.ietf.org/html/rfc7515
Encode and decode JWT with Fluent API.
Creates a new instance of instance
Add header to the JWT.
Well-known header name
The value you want give to the header
Current builder instance
Add header to the JWT.
This adds a non-standard header value.
Header name
The value you want give to the header
Current builder instance
Adds claim to the JWT.
Claim name
Claim value
Current builder instance
Sets JWT serializer.
Current builder instance
Sets JWT serializer.
Current builder instance
Sets JWT serializer factory.
Current builder instance
Sets custom datetime provider.
If not set then default will be used.
Current builder instance
Sets JWT encoder.
Current builder instance
Sets JWT decoder.
Current builder instance
Sets JWT validator.
Required to decode with verification.
Current builder instance
Sets custom URL encoder.
If not set then default will be used.
Current builder instance
Sets JWT algorithm factory.
Current builder instance.
Sets JWT algorithm.
Current builder instance.
Sets secrets.
Required to create a new token that uses an symmetric algorithm such as
Current builder instance
Sets secrets.
Required to create a new token that uses an symmetric algorithm such as
Current builder instance
Instructs to verify the JWT signature.
Current builder instance
Instructs to do not verify the JWT signature.
Current builder instance
Instructs whether to verify the JWT signature.
Current builder instance
Sets the JWT signature validation parameters.
Parameters to be used for validation
Current builder instance
Sets the JWT signature validation parameters.
Delegate to produce parameters to be used for validation
Current builder instance
Encodes a token using the supplied dependencies.
The generated JWT
Current builder instance
Decodes a token using the supplied dependencies.
The JWT
The JSON payload
Given a JWT, decodes it and return the header.
The JWT
Given a JWT, decodes it and return the header.
The JWT
Decodes a token using the supplied dependencies.
The JWT
Checks whether enough dependencies were supplied to encode a new token.
Checks whether enough dependencies were supplied to decode a token.
Adds well-known claim to the JWT.
Adds well-known claim to the JWT.
Adds well-known claim to the JWT.
Adds several claims to the JWT
Represents the Data that will store in a JWT.
Creates a new instance of with empty Header and Payload.
Creates a new instance of
Dictionary that contains the payload
Creates a new instance of
Dictionary that contains the headers
Dictionary that contains the payload
Creates a new instance of
The JWT token
The header information as a key-value store of the JWT
The payload of the JWT as a key-value store
JSON header model with predefined parameter names specified by RFC 7515, see https://tools.ietf.org/html/rfc7515
Represents an exception thrown when a token doesn't consist of 3 delimited by dot parts.
Creates an instance of
The name of the parameter that caused the exception
Represents an exception thrown when a signature validation fails.
Creates an instance of
The error message
Expected key.
Received key.
Retrieves the value for the provided key, or default.
The key
Represents an exception thrown when when a token is expired.
Creates an instance of
The error message
The payload.
The expiration DateTime of the token.
Represents an exception thrown when a token is not yet valid.
Creates an instance of
The error message
The payload.
The not before DateTime of the token.
Represents a base64 encoder/decoder.
Encodes the byte array to a base64 string.
Decodes the base64 string to a byte array.
Represents a DateTime provider.
Gets the current DateTime.
Provides JSON Serialize and Deserialize. Allows custom serializers used.
Serializes an object to a JSON string.
The object to serialize.
JSON string
Deserializes a JSON string to an object of specified type.
The type of the object to deserialize to.
The JSON string deserialize.
Strongly-typed object.
Extension methods for
Deserializes a JSON string to an object of specified type.
The type of the object to deserialize to.
The JSON serializer instance.
JSON string
Strongly-typed object.
Represents a JWT decoder.
Given a JWT, decodes it and return the header.
The JWT
Given a JWT, decodes it and return the header as an object.
The JWT
Given a JWT, decodes it and return the payload.
The JWT
Whether to verify the signature (default is true)
A string containing the JSON payload
Given a JWT, decodes it and return the payload.
The JWT
The key that were used to sign the JWT
Whether to verify the signature (default is true)
A string containing the JSON payload
Given a JWT, decodes it and return the payload.
The JWT
The keys provided which one of them was used to sign the JWT
Whether to verify the signature (default is true)
A string containing the JSON payload
Given a JWT, decodes it and return the payload as an object.
The type to deserialize to.
The JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to deserialize to.
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to deserialize to.
The JWT
The keys which one of them was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Extension methods for >
Given a JWT, decodes it and return the payload.
The decoder instance
The JWT
Whether to verify the signature (default is true)
A string containing the JSON payload
Given a JWT, decodes it, and return the payload.
The decoder instance
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
A string containing the JSON payload
Given a JWT, decodes it, and return the payload.
The decoder instance
The JWT
The keys that were used to sign the JWT
Whether to verify the signature (default is true)
A string containing the JSON payload
Given a JWT, decodes it, and return the payload as an dictionary.
The decoder instance
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it, and return the payload as an dictionary.
The decoder instance
The JWT
The key which one of them was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as a dictionary.
The decoder instance
The JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as a dictionary.
The decoder instance
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as a dictionary.
The decoder instance
The JWT
The keys provided which one of them was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as a dictionary.
The decoder instance
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as a dictionary.
The decoder instance
The JWT
The keys that were used to sign the JWT
Whether to verify the signature (default is true)
A string containing the JSON payload
Given a JWT, decodes it and return the payload as a dictionary.
The decoder instance
The type to deserialize to.
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as a dictionary.
The decoder instance
The type to deserialize to.
The JWT
The keys that were used to sign the JWT
Whether to verify the signature (default is true)
A string containing the JSON payload
Given a JWT, decodes it and return the payload as an dictionary.
The decoder instance
The type to deserialize to.
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an dictionary.
The decoder instance
The type to deserialize to.
The JWT
The key which one of them was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to deserialize to.
The decoder instance
The JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to deserialize to.
The decoder instance
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to deserialize to.
The decoder instance
The JWT
The keys which one of them was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to return
The decoder instance
The JWT
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to return
The decoder instance
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to return
The decoder instance
The JWT
The key that was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to return
The decoder instance
The JWT
The keys provided which one of them was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Given a JWT, decodes it and return the payload as an object.
The type to return
The decoder instance
The JWT
The keys provided which one of them was used to sign the JWT
Whether to verify the signature (default is true)
An object representing the payload
Represents a JWT encoder.
Creates a JWT given a header, a payload, the signing key, and the algorithm to use.
An arbitrary set of extra headers. Will be augmented with the standard "typ" and "alg" headers
An arbitrary payload (must be serializable to JSON)
The key bytes used to sign the token
The generated JWT
Extension methods for
Creates a JWT given a payload, the signing key, and the algorithm to use.
The encoder instance
An arbitrary payload (must be serializable to JSON)
The key used to sign the token
The generated JWT
Creates a JWT given a payload, the signing key, and the algorithm to use.
The encoder instance
An arbitrary payload (must be serializable to JSON)
The key used to sign the token
The generated JWT
Creates a JWT given a set of arbitrary extra headers, a payload, the signing key, and the algorithm to use.
The encoder instance
An arbitrary set of extra headers. Will be augmented with the standard "typ" and "alg" headers
An arbitrary payload (must be serializable to JSON)
The key bytes used to sign the token
The generated JWT
Represents a JWT validator.
Given the JWT, verifies its signature correctness.
>An arbitrary payload (already serialized to JSON)
Decoded body
The signatures to validate with
Given the JWT, verifies its signature correctness.
Used by the asymmetric algorithms only.
>An arbitrary payload (already serialized to JSON)
The asymmetric algorithm to validate with
The header and payload bytes to validate
The signature to validate with
Given the JWT, verifies its signature correctness without throwing an exception but returning it instead.
>An arbitrary payload (already serialized to JSON)
Decoded body
The signature to validate with
The resulting validation exception, if any
Returns true if exception is JWT is valid and exception is null, otherwise false
Given the JWT, verifies its signature correctness without throwing an exception but returning it instead.
>An arbitrary payload (already serialized to JSON)
Decoded body
The signatures to validate with
The resulting validation exception, if any
Returns true if exception is JWT is valid and exception is null, otherwise false
Given the JWT, verifies its signatures correctness without throwing an exception but returning it instead.
>An arbitrary payload (already serialized to JSON)
The asymmetric algorithm to validate with
The header and payload bytes to validate
The decodedSignatures to validate with
Validation exception, if any
True if exception is JWT is valid and exception is null, otherwise false
base64 encoding/decoding implementation according to the JWT spec
Decodes JWT.
Creates an instance of
This overload supplies no and no so the resulting decoder cannot be used for signature validation.
The JSON serializer
The base64 URL encoder
Creates an instance of
The JSON serializer
The JWT validator
The base64 URL encoder
The JWT algorithm Factory
Creates an instance of
The JSON serializer
The JWT validator
The base64 URL encoder
The JWT algorithm
Prepares data before calling
The array representation of a JWT
The key that was used to sign the JWT
Prepares data before calling
The array representation of a JWT
The keys provided which one of them was used to sign the JWT
Prepares data before calling
The JWT parts
The keys provided which one of them was used to sign the JWT
Unmodified JWT.
Deserialized JWT header.
Decoded JWT payload.
Encodes Jwt.
Creates an instance of
The JWT algorithm factory
The JSON serializer
The base64 URL encoder
Creates an instance of
The JWT algorithm
The JSON serializer
The base64 URL encoder
Represent the parts of a JWT
Creates a new instance of from the string representation of a JWT
The string representation of a JWT
Creates a new instance of from the array representation of a JWT
The array representation of a JWT
Gets the Header part of a JWT
Gets the Payload part of a JWT
Gets the Signature part of a JWT
Gets the parts of a JWT
Helper enum to get the correct part from the array representation of a JWT parts
Jwt validator.
Creates an instance of
The JSON serializer
The DateTime provider
Creates an instance of with time margin
The JSON serializer
The DateTime provider
Validation parameters that are passed on to
Creates an instance of with time margin
The JSON serializer
The DateTime provider
Validation parameters that are passed on to
The base64 URL Encoder
In the future this method can be opened for extension hence made protected virtual
Verifies the 'exp' claim.
See https://tools.ietf.org/html/rfc7519#section-4.1.4
Verifies the 'nbf' claim.
See https://tools.ietf.org/html/rfc7519#section-4.1.5
Creates an instance of with supplied JSON serializer.
Creates an instance of with supplied serializer JSON serializer factory.
Creates an instance of with supplied delegate to a JSON serializer.
JSON serializer using Newtonsoft.Json implementation.
Creates a new instance of
Uses as internal serializer
Creates a new instance of
Internal to use for serialization
Describes a point in time, defined as the number of seconds that have elapsed since 00:00:00 UTC, Thursday, 1 January 1970, not counting leap seconds.
See https://en.wikipedia.org/wiki/Unix_time />
Provider for UTC DateTime.
Retuns the current time (UTC).
Contains a set of parameters that are used by a when validating a token.
By default, all peroperties are set to true to ensure validation is enabled.
Use if you'd like to set all properties set to
or use if you'd like to set all properties set to .
>
Gets or sets whether to validate the validity of the token's signature.
Gets or sets whether to validate the validity of the token's expiration time.
Gets or sets whether to validate the validity of the token's issued time.
Gets or sets the time margin in seconds for exp and nbf during token validation.
Returns a with all properties set to .
Returns a with all properties set to .