mirror of
https://github.com/openpgpjs/openpgpjs.git
synced 2025-06-13 17:56:39 +00:00

Also, when generating RSA keys in JS, generate them with p < q, as per the spec. Also, when generating RSA keys using Web Crypto or Node crypto, swap the generated p and q around, so that will satisfy p < q in most browsers (but not old Microsoft Edge, 50% of the time) and so that we can use the generated u coefficient (p^-1 mod q in OpenPGP, q^-1 mod p in RFC3447). Then, when signing and verifying, swap p and q again, so that the key hopefully satisfies Safari's requirement that p > q, and so that we can keep using u again.