Skip to content

jam.jwt.algorithms

__algorithms__

Classes:

Name Description
BaseAlgorithm

Base class for JWT signing algorithms.

ESAlgorithm

ECDSA algorithms (ES256, ES384, ES512).

HSAlgorithm

HMAC-based algorithms (HS256, HS384, HS512).

PSAlgorithm

RSA PSS algorithms (PS256, PS384, PS512).

RSAlgorithm

RSA PKCS1v15 algorithms (RS256, RS384, RS512).

Functions:

Name Description
create_algorithm

Create algorithm instance based on algorithm name.

BaseAlgorithm

BaseAlgorithm(
    alg: str,
    secret: KeyLike,
    password: bytes | None,
    logger: BaseLogger,
)

Bases: ABC

Base class for JWT signing algorithms.

Parameters:

Name Type Description Default
alg str

Algorithm name

required
secret KeyLike

Secret key

required
password bytes | None

Password for private key

required
logger BaseLogger

Logger instance

required

Methods:

Name Description
sign

Sign data.

verify

Verify signature.

sign abstractmethod

sign(data: bytes) -> str

Sign data.

Parameters:

Name Type Description Default
data bytes

Data to sign

required

Returns:

Name Type Description
str str

Base64url encoded signature

verify abstractmethod

verify(sig: bytes, data: bytes, key: KeyLike) -> None

Verify signature.

Parameters:

Name Type Description Default
sig bytes

Signature to verify

required
data bytes

Data that was signed

required
key KeyLike

Key for verification

required

Raises:

Type Description
ValueError

If signature is invalid

ESAlgorithm

ESAlgorithm(
    alg: str,
    secret: KeyLike,
    password: bytes | None,
    logger: BaseLogger,
)

Bases: BaseAlgorithm

ECDSA algorithms (ES256, ES384, ES512).

Methods:

Name Description
sign

Sign data using ECDSA.

verify

Verify ECDSA signature.

sign

sign(data: bytes) -> str

Sign data using ECDSA.

Parameters:

Name Type Description Default
data bytes

Data to sign

required

Returns:

Name Type Description
str str

Base64url encoded signature

verify

verify(sig: bytes, data: bytes, key: KeyLike) -> None

Verify ECDSA signature.

Parameters:

Name Type Description Default
sig bytes

Signature to verify

required
data bytes

Data that was signed

required
key KeyLike

Key for verification

required

Raises:

Type Description
ValueError

If signature is invalid

HSAlgorithm

HSAlgorithm(
    alg: str,
    secret: KeyLike,
    password: bytes | None,
    logger: BaseLogger,
)

Bases: BaseAlgorithm

HMAC-based algorithms (HS256, HS384, HS512).

Methods:

Name Description
sign

Sign data using HMAC.

verify

Verify HMAC signature.

sign

sign(data: bytes) -> str

Sign data using HMAC.

Parameters:

Name Type Description Default
data bytes

Data to sign

required

Returns:

Name Type Description
str str

Base64url encoded signature

verify

verify(sig: bytes, data: bytes, key: KeyLike) -> None

Verify HMAC signature.

Parameters:

Name Type Description Default
sig bytes

Signature to verify

required
data bytes

Data that was signed

required
key KeyLike

Key for verification

required

Raises:

Type Description
ValueError

If signature is invalid

PSAlgorithm

PSAlgorithm(
    alg: str,
    secret: KeyLike,
    password: bytes | None,
    logger: BaseLogger,
)

Bases: BaseAlgorithm

RSA PSS algorithms (PS256, PS384, PS512).

Methods:

Name Description
sign

Sign data using RSA PSS.

verify

Verify RSA PSS signature.

sign

sign(data: bytes) -> str

Sign data using RSA PSS.

Parameters:

Name Type Description Default
data bytes

Data to sign

required

Returns:

Name Type Description
str str

Base64url encoded signature

verify

verify(sig: bytes, data: bytes, key: KeyLike) -> None

Verify RSA PSS signature.

Parameters:

Name Type Description Default
sig bytes

Signature to verify

required
data bytes

Data that was signed

required
key KeyLike

Key for verification

required

Raises:

Type Description
ValueError

If signature is invalid

RSAlgorithm

RSAlgorithm(
    alg: str,
    secret: KeyLike,
    password: bytes | None,
    logger: BaseLogger,
)

Bases: BaseAlgorithm

RSA PKCS1v15 algorithms (RS256, RS384, RS512).

Methods:

Name Description
sign

Sign data using RSA PKCS1v15.

verify

Verify RSA PKCS1v15 signature.

sign

sign(data: bytes) -> str

Sign data using RSA PKCS1v15.

Parameters:

Name Type Description Default
data bytes

Data to sign

required

Returns:

Name Type Description
str str

Base64url encoded signature

verify

verify(sig: bytes, data: bytes, key: KeyLike) -> None

Verify RSA PKCS1v15 signature.

Parameters:

Name Type Description Default
sig bytes

Signature to verify

required
data bytes

Data that was signed

required
key KeyLike

Key for verification

required

Raises:

Type Description
ValueError

If signature is invalid

create_algorithm

create_algorithm(
    alg: str,
    secret: KeyLike,
    password: bytes | None,
    logger: BaseLogger,
) -> BaseAlgorithm

Create algorithm instance based on algorithm name.

Parameters:

Name Type Description Default
alg str

Algorithm name

required
secret KeyLike

Secret key

required
password bytes | None

Password for private key

required
logger BaseLogger

Logger instance

required

Returns:

Name Type Description
BaseAlgorithm BaseAlgorithm

Algorithm instance

Raises:

Type Description
ValueError

If algorithm is not supported