Windows-native DPAPI encryption with a clean Python interface.
Project description
muerte32crypt
Windows-native DPAPI encryption using ctypes.
Encrypt and decrypt strings, bytes, or files with optional entropy and descriptions.
Includes TPM utilities, certificate handling, RSA, EC & Ed keys, symmetric ciphers, Twofish, and key management.
Features
-
DPAPI encryption/decryption:
encrypt,decrypt,encrypt_str,decrypt_str,encrypt_file,decrypt_file -
TPM utilities:
is_tpm_available,generate_tpm_key,seal_data_to_tpm,unseal_data_from_tpm -
Hashing & HMAC:
sha256,sha512,hmac_sha256,hmac_sha512 -
AES: Key wrap/unwrap:
aes_key_wrap,aes_key_unwrapAES-GCM encrypt/decrypt:aes_gcm_encrypt,aes_gcm_decrypt,aes_gcm_encrypt_with_nonce,aes_gcm_decrypt_with_nonceAES-CBC encrypt/decrypt:aes_cbc_encrypt,aes_cbc_decrypt -
RSA: Generate keys:
generate_rsa_keypairEncrypt/decrypt:rsa_encrypt,rsa_decryptSign/verify:rsa_sign,rsa_verifySerialize/load keys:serialize_private_key,serialize_public_key,load_private_key,load_public_keyGet fingerprint:get_public_key_fingerprint -
Twofish symmetric cipher:
twofish_encrypt_raw,twofish_decrypt_raw -
Certificates: Load/save certs and CSRs:
load_cert,save_cert,load_csr,save_csrGenerate self-signed certs and CSRs:generate_self_signed_cert,generate_csrGet cert info:get_cert_fingerprint,get_cert_subject,get_cert_issuer,get_cert_sansVerify cert chain:verify_cert_chain -
Elliptic and EdDSA curves:
generate_ec_key,generate_ed_key,list_all_curves,get_curve_name -
Key Management (class
KeyManager):- Symmetric key generate/get/delete/rotate
- RSA keypair generate/import/export/get/delete
- Derive keys from passwords with PBKDF2
- Salt generation
Usage example
from muerte32crypt.dpapi import encrypt_str, decrypt_str
encrypted = encrypt_str("my_secret_password", entropy="somesalt")
print(decrypt_str(encrypted, entropy="somesalt"))
from muerte32crypt.keymanagement import KeyManager
km = KeyManager()
km.generate_key("my_sym_key", 32)
key = km.get_key("my_sym_key")
print(key.hex())
priv, pub = km.generate_rsa_keypair("my_rsa_key")
pem = km.export_private_key_pem("my_rsa_key", passphrase=b"mypass")
print(pem.decode())
from muerte32crypt.certs import generate_self_signed_cert, get_cert_subject
cert, key = generate_self_signed_cert("example.com")
print(get_cert_subject(cert))
Installation
pip install muerte32crypt
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file muerte32crypt-1.0.5.tar.gz.
File metadata
- Download URL: muerte32crypt-1.0.5.tar.gz
- Upload date:
- Size: 16.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4922ca7d518a4a14489ecb01ae8885fc5c1b103d630b302a26e1902ad92aa97
|
|
| MD5 |
d36a3a17d4e056dadf1dc493b1d253c7
|
|
| BLAKE2b-256 |
4cc4b862ef1176411cc978bddbb17b2d7885688ad4e7048bf4309bf9706537f7
|
File details
Details for the file muerte32crypt-1.0.5-py3-none-any.whl.
File metadata
- Download URL: muerte32crypt-1.0.5-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
514311c2eed88bf5bce8f5cc5a7b0f3658406a756dd19e575ab20cb7bb1a7e94
|
|
| MD5 |
3d9928da90c10d1b4017bab4f77b6b47
|
|
| BLAKE2b-256 |
4a346d8cc975bfd2792e3f7c6e8578f31fd5c8e213c1e114d59c75a3faf6a3e4
|