В моем сообщении в блоге (ссылка passcuriosity.com в ответе Джона Бокера) используется алгоритм симметричного шифрования AES с использованием библиотеки M2Crypto. M2Crypto - это оболочка Python для OpenSSL. API в значительной степени является прямым переводом OpenSSL на Python, так что несколько отрывочная документация не должна быть слишком большой проблемой. Если алгоритм шифрования с открытым ключом, который вам нужно использовать, поддерживается M2Crypto, то вы вполне можете использовать его для криптографии с открытым ключом.
Я нашел набор тестов M2Crypto как полезный пример использования его API. В частности, тесты RSA (в test_rsa.py), PGP (в test_pgp.py) и EVP (в test_evp.py) помогут вам понять, как настроить и использовать библиотеку. Имейте в виду, что они являются юнит-тестами, поэтому может быть немного сложно выяснить, какой именно код необходим и что является артефактом теста.
PS: Поскольку я новичок, мои сообщения могут содержать только одну ссылку, поэтому мне пришлось удалить большинство из них. К сожалению.
Пример
from M2Crypto import RSA
rsa = RSA.load_pub_key('rsa.pub.pem')
encrypted = rsa.public_encrypt('your message', RSA.pkcs1_oaep_padding)
print encrypted.encode('base64')
Выход
X3iTasRwRdW0qPRQBXiKN5zvPa3LBiCDnA3HLH172wXTEr4LNq2Kl32PCcXpIMxh7j9CmysLyWu5
GLQ18rUNqi9ydG4ihwz3v3xeNMG9O3/Oc1XsHqqIRI8MrCWTTEbAWaXFX1YVulVLaVy0elODECKV
4e9gCN+5dx/aG9LtPOE=