RSA public key cryptography implementation.

`(rsa-key-gen-from-primes bit-length p q . o)`

`(rsa-key-gen [bit-length])`

Returns a copy of the given key with the private key, if any,
removed.

`(rsa-encrypt pub-key msg)`

Encrypts `msg`

for the given public key `pub-key`

.
`msg`

may be an integer or bytevector, in which case the
result is of the same type, or a string, in which case the string
is first coerced to a utf8 encoded bytevector.

`(rsa-decrypt priv-key cipher)`

Decrypts `cipher`

using the given private key `priv-key`

.
`cipher`

may be an integer or bytevector, in which case the
result is of the same type, or a string, in which case the string
is first coerced to a utf8 encoded bytevector.

Signs `msg`

using the given private key `priv-key`

.

Returns the verified (decrypted) message for the signature `sig`

.

`(rsa-verify? pub-key msg sig)`

Returns true iff `sig`

is a valid signature of `msg`

for
the given public key `pub-key`

.