- Fixes #140, updates dependencies.
- Fixes #146 ks.get_key(None) raises correct error.
- Adds
pathlib.Path
support toKeyStore
#148. - Adds Windows CI support #144.
- Updates pyo3 to
0.20.0
. - Updates time to
0.3.30
. - Adds API for changing primary key expiry date via rjce #151.
- Adds API for changing subkeys expiry date via rjce #152.
- Updates sequoia dependency to 1.21.2.
- Updates pyo3 dependency to 0.22.2.
- Updates sequoia-openpgp to 1.16.0
- Updates buffered-reader to 1.2.0
- Fixes #135, adds
get_key_cipher_details
in rjce. - Updates Rust dependencies.
- CI uses stable Rust toolchain.
- Fixed #132 available_subkeys() method.
- Updated PyO3 dependency to 0.18.1.
- We can now disable OTP for both YubiKey4/5 #130.
- Adds
enable_otp_usb
in rjce. - Adds
disable_otp_usb
in rjce. - Changed license to LGPL-3.0-or-later
- Trying to fix the wheels for Mac.
- Type annotation for the rust part of the codebase.
can_primary_expire
new argument tocreate_key
function call.- Updated
pyo3
dependency to0.17.2
. - Adds
get_card_version
in rjce. - Adds
TouchMode
enum in rjce. - Adds
get_card_touch_policies
function to find available options. - Adds
KeySlot
enum in rjce - Adds
get_keyslot_touch_policy
function to set touch policy. - Adds
set_keyslot_touch_policy
function to set touch policy. - Updates pyo3 to
0.17.3
- Fixes #111 to verify compressed signed message.
verify_and_extract_bytes
function to extract the verified bytes.verify_and_extract_file
function to extract the verified file.get_ssh_pubkey
to get ssh style key for authentication subkey in rjce #114.- Adds https://docs.rs/sshkeys/0.3.2/sshkeys/index.html as dependency.
- Adds
setuptools-rust
as build system. - Key.uids now contains the certification details of each user id.
merge_keys
in rjce now takes a force boolean argument.certify_key
can sign/certify another key by both card and on disk primary key.
- #96
create_key
can now have signing capability for primary key. - #97
sync_smartcard
can identify if the primary key is on card. upload_primary_to_smartcard
function in rjce.- Renamed internal function
parse_and_move_a_subkey
toparse_and_move_a_key
get_card_details
now also tells Pin retries left in the card.sign_file_on_card
function in rjce.sign_bytes_on_card
function in rjce.verify_file
&verify_file_detached
are two different functions in KeyStore (breaking change).verify
takes optional detached signature to verify the given bytes.sign_detached
will do detached signature,sign
is for the other usecase.- renamed
create_newkey
tocreate_key
(breaking change). - renamed
import_cert
toimport_key
(breaking change). - Updates all dependencies.
- Now can fail gracefully with CryptoError exception in Python
- #80 also fails gracefully
update_expiry_in_subkeys
method for the keystrore.update_subkeys_expiry_in_cert
function in rjce.revoke_userid
method for keystore.add_userid
method for keystore.update_password
method for keystore.- ECDH decryption on smartcard for Curve25519 only.
- Adds
decrypt_file_on_card
function. - Adds
decrypt_bytes_on_card
function. - Upgrades dependencies, including pyo3 to 0.15.1 and sequoia-openpgp to 1.6.0.
- Adds
is_smartcard_connected
function in rjce.
get_key
method will returnNone
in case no fingerprint is provided.- Spelling mistake in API & docs about
expiary
->expiry
.
move_subkey_to_card
function to move all 3 subkeys to the card.- We can also decrypt based on RSA keys on a smartcard.
sign_bytes_detached_on_card
andsign_file_detached_on_card
to sign using smartcard.set_name
to set the card holder's name in the card.set_url
to set the URL to the public key of the card.get_card_details
function in rjce to get smartcard details.bytes_encrypted_for
andfile_encrypted_for
functions were added (these are costly function calls).get_keys_by_keyid
to get keys for a given keyidfetch_key_by_email
can fetch key from keys.openpgp.org for a given email id.fetch_key_by_fingerprint
can fetch key from keys.openpgp.org for a given fingerprint.encrypt_file
anddecrypt_file
can take an opened binary file handler in Python as input.
create_newkey
can take multiple uids as string or None for no uid #40.
- #44
pip install johnnycanencrypt
will now work
encrypt_bytes_to_file
can encrypt data for multiple recipients and saves to a file.- Function signature to the
create_newkey
function. - Uses sequoia-pgp 0.20.0 as dependency #31
- Can not use sha1 based keys with this library #29
- SQLite3 based KeyStore
jce.db
- Python ENUMs key type and cipher type #33
- #14 decrypt when the data was encrypted for multiple recipients.
- Fixes documentation for
create_newkey
function name.
- This changelog :)
- If the public/secret key file is missing, while trying to create a
Johnny
object will raiseFileNotFound
error. - If one tries to decrypt using a public key file, it will throw
AttributeError
. encrypt_bytes
now returns bytes (instead of string).encrypt_bytes
takes a third argument,armor
as boolean, to return ascii-armored bytes or not.encrypt_file
takes a third argument,armor
as boolean, writes the output file ascii armored if true.
- Initial release