Py-avdu
An unofficial incomplete port of Sammy-T's avdu. It was re-written in Python by Claude (and the hundreds of thousands of coders whose work it was trained on), The main function was added and it was packaged for PyPI by James Parrott (who should be held responsible).
I use this myself, simply for peace of mind before factory resetting my phone, by exporting my encrypted vault from Aegis, simply as a check to make sure I can generate TOTP codes without a phone, to access all my accounts in case of a problem reinstalling Aegis.
Before deleting any credentials or factory resetting any devices, please verify that you really can generate the same correct codes from your own backup vault, as from the original authenticator app the backup was taken from.
Overview
What's worse than rolling your own Crypto?
Rolling your own Crypto with an LLM.
Py-Avdu is a little bit better than both of those cases for two reasons:
- Instead of rolling my own crypto completely from scratch I gave Claude, Sammy-T's avdu, and asked it to port it.
- This decrypts encrypted vaults only. Encryption of the vaults in the first place should be done by Aegis. Py-avdu should only be used locally.
Aegis is a fantastic app. But its developers currently have no intention to support any other platform than Android.
I have no reason to be suspicious of Avdu in the slightest - I'm personally just far more comfortable security-auditting Python code than Go code.
If you do discover a bug, please raise an issue, and I'll do my best to fix it. If a bug that's a major security concern can't be fixed or worked around, then ultimately I will sunset this project.
Py-Avdu does generate TOTP codes correctly from a password-encrypted Aegis backup vault (from my own one at least).
However at the time of writing, no further functionality is implemented - Py-Avdu is definitely an incomplete port of Avdu.
Beware ye, would be Vibe Coders.
Claude's code to decrypt my vault worked great. Unfortunately ChatGPT's port of Avdu's TOTP generator produced incorrect TOTP codes. Luckily there is a trustworthy library from PyAuth (PyOTP) to use instead which fits the bill precisely.
Alternatives
- Obviously the original Avdu and Sammy-T's more user friendly Avda based on it.
- https://github.com/Granddave/aegis-rs
- https://github.com/scollovati/Aegis-decrypt
Metadata
Release files for py-avdu 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| py_avdu-0.0.3.tar.gz | 17.0 kB | Without provenance | Details for py_avdu-0.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| py_avdu-0.0.3-py3-none-any.whl | Python 3 | none | any | Details for py_avdu-0.0.3-py3-none-any.whl |
Total release size: 34.5 kB
Release files / py_avdu-0.0.3.tar.gz
| Download URL | py_avdu-0.0.3.tar.gz |
|---|---|
| Size | 17.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
995cec168edf87c3bdf5748050e4bfd332066c6c461cd0190cb35796515ae9f3
|
|
BLAKE2b-256 checksum How to use checksums |
3b1ab9e90aa2e72eda29905bb312edda4ce2f24c1daacb0f80de693e631060f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.6.13
|
Release files / py_avdu-0.0.3-py3-none-any.whl
| Download URL | py_avdu-0.0.3-py3-none-any.whl |
|---|---|
| Size | 17.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3c90379b6c0859ab8a7b517443bfc45962c3d388224893236bc0c9d80b5c09ff
|
|
BLAKE2b-256 checksum How to use checksums |
17202d4d7f4c2a2399a3492983eb32e8303b887c98c8479cad80e46b26e00b71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.6.13
|
Security for py-avdu 0.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.