Commit graph

59 commits

Author SHA1 Message Date
Carson McManus
166b7a908c
setup: add support for different link confirmation types, and verify that the authenticator was actually set up (#348)
fixes #345
2023-12-03 16:36:35 +00:00
Carson McManus
94a3210f09
import: add support for importing winauth exports (#331)
closes #295
2023-10-08 11:10:46 -04:00
Carson McManus
f952ed5b1b
remove normalize_comments rustfmt rule (#316) 2023-09-10 21:22:23 +00:00
Carson McManus
4348529ffd
import: add support for importing steam mobile app v2 format, remove --sda argument (#307)
- add account schema for steam app v2
- make it possible to import steam v2 accounts
- import: remove the `--sda` flag, the format should be detected
automatically
- add unit tests
- make it actually work

closes #305
2023-08-23 17:59:14 +00:00
Carson McManus
9c6d10dc1f
import: improve error messages (#287) 2023-07-10 13:43:02 +00:00
Carson McManus
8f4ec79144
parallelize account loading and saving (#273)
- parallelize account loading
- parallelize account saving
2023-07-03 16:25:43 +00:00
Carson McManus
d5218d770e
add a new, faster encryption scheme (Argon2idAes256) and make it the default (#270)
- move legacy scheme to new module
- add argon2 crate
- mvoe test
- add argon2id aes encryption scheme
- refactor encryption to be less shit
- fix all the errors
- fix lints
2023-07-03 10:23:56 -04:00
Carson McManus
7e94f76653
Add support for storing encryption passkey in system keyring (#265)
- add keyring package
- add keyring id field to manifest
- automatically attempt to load encryption passkey from keyring
- have decrypt delete the passkey on decrypt
- have encrypt command ask if it should store the passkey in the keyring
- fix lints

closes #117
2023-07-02 14:44:18 +00:00
Carson McManus
f8ae7d4e0e
fix SDA encryption compatibility (#236)
fixes #233
2023-06-26 23:02:48 +00:00
Carson McManus
da44f49c56
add some unit tests (#234)
- add unit test for migrating single accounts
- add manifest v1 loading tests
- disable a test
- update comment
- update vscode runners
- add a unit test to make sure migrated maFiles can still be read
2023-06-26 16:44:14 +00:00
Carson McManus
a062e718d7
fix passkey cli argument being printed in plaintext with debug logging (#229)
fixes #228
2023-06-26 00:23:26 +00:00
Carson McManus
2dc6376533
print better errors when deserializing json (#218)
- print stripped json whenever there is a type mismatch when
deserializing
- Revert "print stripped json whenever there is a type mismatch when
deserializing"
- print better errors when deserializing json
2023-06-24 16:06:12 +00:00
Carson McManus
cbc46ad8eb
Dead code cleanup, subcommand refactor (#206)
- clean up dead code
- fix lints
- move Session type to legacy module
- refactor service names into constants
- refactor build_url to be less restrictive for service names
- refactor most commands into their own modules
2023-06-23 17:36:23 +00:00
Carson McManus
bfd0667f3a
Use IAuthenticationService for login, account migrations, other major refactors (#194)
fixes #193
fixes #192  
fixes #107

- [x] Implement the new login process
    - [x] Tested
- [x] Update the authenticator setup process
    - [x] Tested
- [x] Update the authenticator remove process
    - [x] Tested
- [x] Manifest format migrator
    - [x] Tested
- [x] Make it possible to import SDA accounts
- [x] Make sure confirmations still work
    - [x] Fetching
    - [x] Responding
- [x] Make it so that the login process doesn't prompt for which method
to use
- [x] Make it so that device confirmation and email confirmation auth
session guards work
2023-06-22 20:20:15 +00:00
Carson McManus
3457f9cb43
disallow blank encryption passkeys (#186)
fixes #185
2023-03-18 10:08:57 -04:00
Carson McManus
8366173eb1 fix a couple of lints 2022-12-06 10:07:25 -05:00
Carson McManus
cae60f6ed6 fix using uppercase letters in username during setup causing panic
fixes #171
2022-12-05 10:55:45 -05:00
Carson McManus
1a6ad62a2e cargo fmt 2022-06-19 14:52:17 -04:00
Carson McManus
eeded86641 protect Session memory, values are zeroized when dropped 2022-06-19 14:52:17 -04:00
Carson McManus
deabfc299d protect top level secrets in SteamGuardAccount
except for session
2022-06-19 14:52:17 -04:00
Carson McManus
73281ef069 move import subcommand impl 2022-06-19 11:52:26 -04:00
Carson McManus
ae2049abe8 make auto-upgrades more explicit 2022-02-22 09:19:56 -05:00
Carson McManus
10d97efe16 refactor: make loading single account not borrow manifest mutably 2022-02-22 09:08:39 -05:00
Carson McManus
0bdaa60bbf add test for manifest with 2 accounts 2022-02-21 13:23:59 -05:00
Carson McManus
00ea8dca71 refactor: account manager no longer needs to have all accounts loaded in order to function 2022-02-21 12:50:50 -05:00
Carson McManus
d21ceef797 add sda compat unit test for no web cookie 2022-01-15 09:36:10 -05:00
Carson McManus
1ffe464ed8 cargo fmt 2021-09-06 16:57:36 -04:00
Carson McManus
e4cf29e852 don't allow setup or import for account_names already in the manifest, fixes #109 2021-09-06 16:51:44 -04:00
Carson McManus
376b7b8870 add a little bit of logging 2021-09-01 08:52:23 -04:00
Carson McManus
4e09b98d07 add TwoFactorSecret type, which zeros out memory when deallocated 2021-08-24 22:56:25 -04:00
Carson McManus
49a264ba3f move incorrect passkey error 2021-08-20 10:49:43 -04:00
Carson McManus
8722e9f294 move around fixtures 2021-08-19 17:45:20 -04:00
Carson McManus
e611e31ad3 move encryption stuff into new module 2021-08-19 16:55:57 -04:00
Carson McManus
58a13d8bab update comment 2021-08-19 14:29:59 -04:00
Carson McManus
aa1fa6a318 fix not being able to encrypt file contents if it was longer than a certain amount of bytes 2021-08-19 14:15:38 -04:00
Carson McManus
49aea80080 decryption makes slightly more sense now 2021-08-19 09:55:52 -04:00
Carson McManus
531e69ea88 prompt for passkey if not provided 2021-08-17 18:24:26 -04:00
Carson McManus
1b1f12f423 implement saving encrypted maFiles 2021-08-17 18:24:26 -04:00
Carson McManus
02d8cade2a correctly implement SDA compatible decryption 2021-08-17 18:24:26 -04:00
Carson McManus
8f6a1d8345 add encryption key tests to verify compatibility 2021-08-17 18:24:26 -04:00
Carson McManus
7d7dd6701e add broken encrypted maFiles test 2021-08-17 18:24:26 -04:00
Carson McManus
c98ff1c914 allow load_accounts to take encryption passkey 2021-08-17 18:24:26 -04:00
Carson McManus
cee428b708 move fixtures to the right spot 2021-08-14 22:51:03 -04:00
Carson McManus
1b213841e9 fixes SDA manifest parsing compatibility 2021-08-14 20:54:25 -04:00
Carson McManus
5da5d32976 add some unit tests for saving and loading the manifest 2021-08-14 13:46:09 -04:00
Carson McManus
5689431f8c add import subcommand 2021-08-13 19:04:03 -04:00
Carson McManus
a5f9f7671b better logic for determining where the user's maFiles are located 2021-08-12 18:06:18 -04:00
Carson McManus
357d04f34b add account removal, closes #10 2021-08-11 19:39:29 -04:00
Carson McManus
b57bc38341 add rustfmt.toml and run cargo fmt 2021-08-08 12:54:46 -04:00
Carson McManus
b5ed878659 change accounts to type Vec<Arc<Mutex<SteamGuardAccount>>> to make sure state stays in one place in memory 2021-08-01 12:34:13 -04:00