Do not try to encrypt unless the public key of the recipient is present

* Let encrypt throw exceptions and handle them in its caller

* Add a docstring about the exceptions that can be thrown