Skip to main content

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

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)

Source distribution for py-avdu 0.0.3
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)

Table of built distributions (wheels) for py-avdu 0.0.3
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page