You can check out here for an explanation of how we handle RSA in general.
| Input | Type |
modulus | ProvableBigint2048 |
signature | ProvableBigint2048 |
exponent | Field |
| Poseidon-digest of SHA-digest of message | Field |
| Fields | Type |
result | ProvableBigint2048 |
modulus | ProvableBigint2048 |
signature | ProvableBigint2048 |
exponent | Field |
| Poseidon-digest of SHA-digest of message | Field |
| Left | Right |
| Poseidon-digest of SHA-digest of message | Poseidon-digest of Exp2048_Output |
| Input | Type |
expOut | Exp2048_Output |
messageShaDigest | Bytes |
encodedMessage | Bytes |
encodedModulus | Bytes |
| Left | Right |
Poseidon-digest of Exp2048_Output | Poseidon-digest of uncompressed Pubkey and Contains.init |
| pss | pkcs |
| sha-224 | | |
| sha-256 | ✔️ | |
| sha-384 | | |
| sha-512 | | |
Covering all of the variants is trivial.