# Performances

# Methodology

Benchmarks are located in the /benchmarks directory and achieved with the PHPBench library (opens new window).

They are run on GitHub Actions runners (opens new window). Since all servers have different hardware, the values provided are only indicative.

For each benchmark, we configured the runner to iterate 100 times on the tested feature excluding 10 "warmup interations".

# JWT Signature

Median duration for a simple payload signature. All results are expressed in microseconds.

# ECDSA (Elliptic Curves Cryptography)

Algorithm / Curve P-256 P-384 P-521
ES256 388.3 2,046.0 847.1
ES384 388.3 2,041.0 862.2
ES512 379.5 2,073.6 866.3

# EDDSA (Edward's Curve Cryptography)

Algorithm / Curve Ed25519
EdDSA 235.6

# HMAC

Algorithm / Key size in bits 256 384 512
HS256 187.7 n/a n/a
HS384 n/a 189.7 n/a
HS512 n/a n/a 191.4

# RSA

Algorithm / Key size in bits 2048 3072 4096
RS256 46,114.9 n/a n/a
RS384 n/a 69,223.0 n/a
RS512 n/a n/a 97,678.6
PS256 1,858.1 n/a n/a
PS384 n/a 4,961.5 n/a
PS512 n/a n/a 10,154.6