
Uma biblioteca criptográfica autocontida para Python
.. image:: https://github.com/Legrandin/pycryptodome/workflows/Integration%20test/badge.svg :target: https://github.com/Legrandin/pycryptodome/actions
.. image:: https://badge.fury.io/py/pycryptodome.svg :target: https://pypi.org/project/pycryptodome
.. image:: https://badge.fury.io/py/pycryptodomex.svg :target: https://pypi.org/project/pycryptodomex
PyCryptodome é um pacote Python autocontido de primitivas criptográficas de baixo nível.
Ele suporta Python 2.7, Python 3.7 e versões mais recentes, e PyPy.
O procedimento de instalação depende do pacote no qual você deseja que a biblioteca fique. PyCryptodome pode ser usado como:
#. uma substituição quase drop-in para a antiga biblioteca PyCrypto. Você instala com::
pip install pycryptodome
Nesse caso, todos os módulos são instalados no pacote Crypto.
Deve-se evitar ter PyCrypto e PyCryptodome instalados ao mesmo tempo, pois eles interferirão entre si.
Portanto, essa opção é recomendada somente quando você tiver
certeza de que todo o aplicativo está implantado em um virtualenv.
#. uma biblioteca independente da antiga PyCrypto. Você instala com::
pip install pycryptodomex
Nesse caso, todos os módulos são instalados no pacote Cryptodome.
PyCrypto e PyCryptodome podem coexistir.
Para operações de chave pública mais rápidas no Unix, você deve instalar o GMP_ em seu sistema.
PyCryptodome é um fork do PyCrypto. Ele traz os seguintes aprimoramentos em relação à última versão oficial do PyCrypto (2.6.1):
Modos de criptografia autenticada (GCM, CCM, EAX, SIV, OCB, KW, KWP)
Criptografia Híbrida de Chave Pública (HPKE)
AES acelerado em plataformas Intel via AES-NI
Suporte de primeira classe para PyPy
Criptografia de curvas elípticas (curvas P do NIST; Ed25519, Ed448, Curve25519, Curve448)
API melhor e mais compacta (atributos nonce e iv para cifras,
geração automática de nonces e IVs aleatórios, modo de cifra CTR simplificado
e mais)
Algoritmos de hash SHA-3 (FIPS 202) e funções derivadas (NIST SP-800 185):
KangarooTwelve, TurboSHAKE128 e TurboSHAKE256 XOFs
Algoritmos de hash truncados SHA-512/224 e SHA-512/256 (FIPS 180-4)
Algoritmos de hash BLAKE2b e BLAKE2s
Cifras de fluxo Salsa20 e ChaCha20/XChaCha20
MAC Poly1305
Cifras autenticadas ChaCha20-Poly1305 e XChaCha20-Poly1305
Funções de derivação de chave scrypt, bcrypt, HKDF e NIST SP 800 108r1 em modo contador
(EC)DSA determinístico e EdDSA
Contêineres de chave PKCS#8 protegidos por senha
Esquema de compartilhamento de segredo de Shamir
Números aleatórios são obtidos diretamente do SO (e não de um CSPRNG no espaço do usuário)
Processo de instalação simplificado, incluindo melhor suporte para Windows
Geração de chaves RSA e DSA mais limpa (amplamente baseada no FIPS 186-4)
Grandes limpezas e simplificação da base de código
PyCryptodome não é um wrapper para uma biblioteca C separada como OpenSSL. Na maior medida possível, os algoritmos são implementados em Python puro. Somente as partes extremamente críticas para o desempenho (por exemplo, cifras de bloco) são implementadas como extensões C.
Para obter mais informações, consulte a homepage_.
Para problemas de segurança, envie um e-mail para [email protected].
Todo o código pode ser baixado do GitHub_.
.. _homepage: https://www.pycryptodome.org
.. _GMP: https://gmplib.org
.. _GitHub: https://github.com/Legrandin/pycryptodome