Commit graph

22 commits

Author SHA1 Message Date
Alexander Bakker
5f12eae678 Add tests for scanning QR codes 2022-08-04 21:47:51 +02:00
Alexander Bakker
5db365a999 Add instrumented tests for backup and export 2022-06-06 13:19:46 +02:00
Alexander Bakker
a492bcbde3 Add an option to set a separate password for backups and exports 2022-06-05 23:03:11 +02:00
CristianAUnisa
8d4a687817 Add Bitwarden importer
Added license notice for Simple Flat Mapper

Added Steam secret support to Bitwarden importer

https://bitwarden.com/help/authenticator-keys/#steam-guard-totps

Added tests
2022-04-24 16:55:38 +02:00
Alexander Bakker
0f3e5c537c Allow customization of password reminder frequency
Close #769
2022-02-17 18:14:08 +01:00
Alexander Bakker
fcb7bf032b Add support for importing 2FAS schema v2 backups 2022-02-10 20:58:06 +01:00
Alexander Bakker
acfb70c267 Move Yandex secret validation tests to a different folder 2022-02-06 12:55:02 +01:00
Alexander Bakker
3d13117752 Refactor Yandex support a bit and fix some style issues 2022-02-02 17:55:09 +01:00
Mikhail Prokofev
af2bf6f683 Add Yandex OTP support 2022-01-26 18:43:55 +03:00
Alexander Bakker
aec639cc53 Add a test for the Duo importer 2021-12-04 11:42:28 +01:00
Alexander Bakker
fddc29880a Add support from importing from 2FAS Authenticator 2021-05-05 10:58:22 +02:00
Alexander Bakker
2c8a64f943 Disable some fields if Steam OTP type is selected
Also, move some magic default OTP parameters to constants
2021-01-30 16:41:25 +01:00
Alexander Bakker
4f8a0b9020 Add some more tests
This adds tests for all of the importers, a new scrypt test and some more OTP tests. More to come.
2021-01-10 14:47:27 +01:00
Alexander Bakker
4c86e154c1 Add tests for the Slot classes 2020-08-15 18:07:34 +02:00
Alexander Bakker
10ac1af6b0 Replace implementations of Base16, Base32 and Base64 with Guava
I kept the classes in the encoding package and turned them into wrappers for
Guava. I also changed the functions in the Base32 class to take and return
strings insteads if character arrays.
2020-02-01 14:11:55 +01:00
Alexander Bakker
2323d89938 Introduce UUIDMap for storing objects that are keyed by a UUID
This patch introduces the new ``UUIDMap`` type, reducing code duplication and
making UUID lookups faster. We currently already use UUIDs as the identifier for
the ``DatabaseEntry`` and ``Slot`` types, but the way lookups by UUID work are
kind of ugly, as we simply iterate over the list until we find a match. As we're
probably going to have more types like this soon (groups and icons, for
example), I figured it'd be good to abstract this away into a separate type and
make it a map instead of a list.

The only thing that has gotten slower is the ``swap`` method. The internal
``LinkedHashMap`` retains insertion order with a linked list, but does not know
about the position of the values, so we basically have to copy the entire map to
simply swap two values. I don't think it's too big of a deal, because swap
operations still take less than a millisecond even with large vaults, but
suggestions for improving this are welcome.

I had to update gradle and JUnit to be able to use the new ``assertThrows``
assertion method, so this patch includes that as well.
2019-08-03 17:50:25 +02:00
Alexander Bakker
8c658ac930 Use the old encode method for passwords over 64 bytes and repair the slot (#98)
Commit afb9e59711 fixed a bug where the password
encode function would add null bytes to the end of the output. Luckily (I
thought), PBKDF2 produces collisions for inputs with trailing null bytes and
thus scrypt does this as well, so we could safely change that function to remove
the null bytes without any impact. Unfortunately, that doesn't hold up if the
password is over 64 bytes in size. So after that change, the KDF started
producing different keys than before for such passwords and thus some users
could no longer unlock their vault.

This patch addresses the issue by using the old password encode function for
passwords over 64 bytes and repairing the affected password slot.
2019-05-26 23:52:20 +02:00
Alexander Bakker
afb9e59711 Fix a bug where the password encode function added trailing null bytes
Funny story. Instead of	obtaining the actual bytes from the ByteBuffer in the
password encode function, we obtained the entire buffer. This caused some
trailing null bytes to be added to the encoded password. Luckily (and
strangely), PBKDF2 produces collisions for inputs with trailing null bytes and
thus scrypt does this as well. As such, this bug doesn't affect us right now,
but it would if we were to use that encode function for other purposes in the
future.

This also adds a test that checks for the expected collision behavior of scrypt.
2019-04-24 13:43:46 +02:00
Alexander Bakker
36e3dd559c Normalize formatting and 'optimize' imports 2019-04-04 14:07:36 +02:00
Alexander Bakker
1dd5f893da Add support for Steam OTP 2019-04-01 22:37:52 +02:00
Alexander Bakker
29aa81765b Rewrite the HOTP/TOTP code to be more compact and support more digits 2019-03-26 00:59:57 +01:00
Alexander Bakker
62425511a1 Rename package to com.beemdevelopment.aegis 2019-02-07 22:39:33 +01:00