RSA public key cryptography implementation.

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

`(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`

.