├── .devcontainer ├── Dockerfile └── devcontainer.json ├── .editorconfig ├── .envrc ├── .flake8 ├── .gitattributes ├── .github ├── copilot-instructions.md ├── dependabot.yml └── workflows │ ├── ci.yml │ ├── ci_docker.yml │ ├── ci_release.yml │ └── codeql-analysis.yml ├── .gitignore ├── .vscode ├── extensions.json ├── launch.json └── settings.json ├── LICENSE ├── Pipfile ├── Pipfile.lock ├── README.md ├── devbox.json ├── devenv.lock ├── devenv.nix ├── devenv.yaml ├── docker ├── .alias ├── Dockerfile └── Dockerfile_only_txt ├── docs ├── Export-account-option-in-the-Google-Authenticator.webp ├── Export-account-option-in-the-Google-Authenticator_300px.webp ├── Exported-QR-codes.webp ├── Exported-QR-codes_300px.webp ├── README_TOC.md ├── Transfer-accounts-option-in-the-Google-Authenticator.webp ├── Transfer-accounts-option-in-the-Google-Authenticator_300px.webp ├── cv2_capture_screenshot.png └── meta.md ├── example_export.png ├── example_export.txt ├── example_keepass_output.hotp.csv ├── example_keepass_output.totp.csv ├── example_output.csv ├── example_output.json ├── extract_otp_secrets.code-workspace ├── installer ├── build_dmg.sh ├── extract_otp_secrets_macos_template.spec └── win_file_version_info_template.txt ├── mypy.ini ├── pyproject.toml ├── pytest.ini ├── requirements-dev.txt ├── requirements.txt ├── run_pytest.sh ├── setup.cfg ├── setup.py ├── src ├── extract_otp_secrets.py ├── google_auth.proto └── protobuf_generated_python │ ├── google_auth_pb2.py │ └── google_auth_pb2.pyi └── tests ├── conftest.py ├── data ├── empty_file.txt ├── example_export_only_totp.txt ├── lena_std.tif ├── only_comments.txt ├── print_verbose_output-n-v.txt ├── print_verbose_output-n-vv.txt ├── print_verbose_output-n-vvv.txt ├── print_verbose_output-n.txt ├── print_verbose_output-v.txt ├── print_verbose_output-vv.txt ├── print_verbose_output-vvv.txt ├── print_verbose_output.txt ├── printqr_output.txt ├── qr_but_without_otp.png ├── test_export_wrong_content.txt ├── test_export_wrong_data.txt ├── test_export_wrong_prefix.txt ├── test_googleauth_export.png ├── test_plus_problem_export.txt ├── text_masquerading_as_image.jpeg └── url_list_output.txt ├── extract_otp_secrets_img_unit_test.py ├── extract_otp_secrets_test.py ├── extract_otp_secrets_txt_unit_test.py └── utils.py /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.devcontainer/Dockerfile -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.devcontainer/devcontainer.json -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.editorconfig -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.envrc -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.flake8 -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/copilot-instructions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.github/copilot-instructions.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/ci_docker.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.github/workflows/ci_docker.yml -------------------------------------------------------------------------------- /.github/workflows/ci_release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.github/workflows/ci_release.yml -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.github/workflows/codeql-analysis.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/LICENSE -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/Pipfile -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/Pipfile.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/README.md -------------------------------------------------------------------------------- /devbox.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/devbox.json -------------------------------------------------------------------------------- /devenv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/devenv.lock -------------------------------------------------------------------------------- /devenv.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/devenv.nix -------------------------------------------------------------------------------- /devenv.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/devenv.yaml -------------------------------------------------------------------------------- /docker/.alias: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docker/.alias -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docker/Dockerfile -------------------------------------------------------------------------------- /docker/Dockerfile_only_txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docker/Dockerfile_only_txt -------------------------------------------------------------------------------- /docs/Export-account-option-in-the-Google-Authenticator.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/Export-account-option-in-the-Google-Authenticator.webp -------------------------------------------------------------------------------- /docs/Export-account-option-in-the-Google-Authenticator_300px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/Export-account-option-in-the-Google-Authenticator_300px.webp -------------------------------------------------------------------------------- /docs/Exported-QR-codes.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/Exported-QR-codes.webp -------------------------------------------------------------------------------- /docs/Exported-QR-codes_300px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/Exported-QR-codes_300px.webp -------------------------------------------------------------------------------- /docs/README_TOC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/README_TOC.md -------------------------------------------------------------------------------- /docs/Transfer-accounts-option-in-the-Google-Authenticator.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/Transfer-accounts-option-in-the-Google-Authenticator.webp -------------------------------------------------------------------------------- /docs/Transfer-accounts-option-in-the-Google-Authenticator_300px.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/Transfer-accounts-option-in-the-Google-Authenticator_300px.webp -------------------------------------------------------------------------------- /docs/cv2_capture_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/cv2_capture_screenshot.png -------------------------------------------------------------------------------- /docs/meta.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/docs/meta.md -------------------------------------------------------------------------------- /example_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/example_export.png -------------------------------------------------------------------------------- /example_export.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/example_export.txt -------------------------------------------------------------------------------- /example_keepass_output.hotp.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/example_keepass_output.hotp.csv -------------------------------------------------------------------------------- /example_keepass_output.totp.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/example_keepass_output.totp.csv -------------------------------------------------------------------------------- /example_output.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/example_output.csv -------------------------------------------------------------------------------- /example_output.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/example_output.json -------------------------------------------------------------------------------- /extract_otp_secrets.code-workspace: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/extract_otp_secrets.code-workspace -------------------------------------------------------------------------------- /installer/build_dmg.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/installer/build_dmg.sh -------------------------------------------------------------------------------- /installer/extract_otp_secrets_macos_template.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/installer/extract_otp_secrets_macos_template.spec -------------------------------------------------------------------------------- /installer/win_file_version_info_template.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/installer/win_file_version_info_template.txt -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- 1 | [mypy] 2 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/pyproject.toml -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/pytest.ini -------------------------------------------------------------------------------- /requirements-dev.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/requirements-dev.txt -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/requirements.txt -------------------------------------------------------------------------------- /run_pytest.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/run_pytest.sh -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/setup.cfg -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/setup.py -------------------------------------------------------------------------------- /src/extract_otp_secrets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/src/extract_otp_secrets.py -------------------------------------------------------------------------------- /src/google_auth.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/src/google_auth.proto -------------------------------------------------------------------------------- /src/protobuf_generated_python/google_auth_pb2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/src/protobuf_generated_python/google_auth_pb2.py -------------------------------------------------------------------------------- /src/protobuf_generated_python/google_auth_pb2.pyi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/src/protobuf_generated_python/google_auth_pb2.pyi -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/data/empty_file.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/data/example_export_only_totp.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/example_export_only_totp.txt -------------------------------------------------------------------------------- /tests/data/lena_std.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/lena_std.tif -------------------------------------------------------------------------------- /tests/data/only_comments.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/only_comments.txt -------------------------------------------------------------------------------- /tests/data/print_verbose_output-n-v.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/print_verbose_output-n-v.txt -------------------------------------------------------------------------------- /tests/data/print_verbose_output-n-vv.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/print_verbose_output-n-vv.txt -------------------------------------------------------------------------------- /tests/data/print_verbose_output-n-vvv.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/print_verbose_output-n-vvv.txt -------------------------------------------------------------------------------- /tests/data/print_verbose_output-n.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/print_verbose_output-n.txt -------------------------------------------------------------------------------- /tests/data/print_verbose_output-v.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/print_verbose_output-v.txt -------------------------------------------------------------------------------- /tests/data/print_verbose_output-vv.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/print_verbose_output-vv.txt -------------------------------------------------------------------------------- /tests/data/print_verbose_output-vvv.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/print_verbose_output-vvv.txt -------------------------------------------------------------------------------- /tests/data/print_verbose_output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/print_verbose_output.txt -------------------------------------------------------------------------------- /tests/data/printqr_output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/printqr_output.txt -------------------------------------------------------------------------------- /tests/data/qr_but_without_otp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/qr_but_without_otp.png -------------------------------------------------------------------------------- /tests/data/test_export_wrong_content.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/test_export_wrong_content.txt -------------------------------------------------------------------------------- /tests/data/test_export_wrong_data.txt: -------------------------------------------------------------------------------- 1 | otpauth-migration://offline?data=XXXX 2 | -------------------------------------------------------------------------------- /tests/data/test_export_wrong_prefix.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/test_export_wrong_prefix.txt -------------------------------------------------------------------------------- /tests/data/test_googleauth_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/test_googleauth_export.png -------------------------------------------------------------------------------- /tests/data/test_plus_problem_export.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/test_plus_problem_export.txt -------------------------------------------------------------------------------- /tests/data/text_masquerading_as_image.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/text_masquerading_as_image.jpeg -------------------------------------------------------------------------------- /tests/data/url_list_output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/data/url_list_output.txt -------------------------------------------------------------------------------- /tests/extract_otp_secrets_img_unit_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/extract_otp_secrets_img_unit_test.py -------------------------------------------------------------------------------- /tests/extract_otp_secrets_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/extract_otp_secrets_test.py -------------------------------------------------------------------------------- /tests/extract_otp_secrets_txt_unit_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/extract_otp_secrets_txt_unit_test.py -------------------------------------------------------------------------------- /tests/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scito/extract_otp_secrets/HEAD/tests/utils.py --------------------------------------------------------------------------------