aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Rename "potency" to "power", the English term.Andreas Grois2022-10-234-51/+51
| | | | | It seems English doesn't use the word potency in this context, but rather uses power.
* Precompute power+exponent for iterative conversionAndreas Grois2022-10-234-75/+191
| | | | | | | | | | | The maximum power of the base that can fit into a given data type is constant. There's no point in computing it at runtime, if we can just store it in a compile-time constants array. The code isn't the most beautiful, but that's mostly because Rust const functions are still a bit limited. One function was duplicated, because it was easy to get a slow version to compile in const context, and const context doesn't really care...
* Merge branch 'main' into feature/heap-allocation-free-base-conversionAndreas Grois2022-10-221-3/+8
|\
| * Pre-Allocate resulting password.Andreas Grois2022-10-221-3/+8
| | | | | | | | It's not perfect, but a much better guess than previously.
* | Merge branch 'main' into feature/heap-allocation-free-base-conversionAndreas Grois2022-10-223-6/+19
|\|
| * Increase duration and sample count for benchmarks.Andreas Grois2022-10-223-6/+19
| |
* | Add more unit tests to iterative_conversion.Andreas Grois2022-10-221-23/+206
| |
* | Make n-digit division performing.Andreas Grois2022-10-221-24/+18
| | | | | | | | | | | | The handling of overflows was non-performing before. Now it's performing and correcting. This lets us skip a less-than check for N-digit numbers, causing a slight performance improvement.
* | Minor code cleanup. No performance impact.Andreas Grois2022-10-221-28/+37
| |
* | Code cleanup and addition of unit tests.Andreas Grois2022-10-221-78/+124
| |
* | Fix trait visibility.Andreas Grois2022-10-212-2/+2
| |
* | Exponential search for largest potency.Andreas Grois2022-10-213-8/+110
| | | | | | | | | | Speeds up the 20 and 32 byte cases. Has slightly negative impact for 16 byte case.
* | Macro for single-digit-division.Andreas Grois2022-10-201-37/+37
| | | | | | | | Just to remove code duplication.
* | Merge branch 'main' into feature/heap-allocation-free-base-conversionAndreas Grois2022-10-208-205/+332
|\|
| * Group Benchmarks, and make parameters more sane.Andreas Grois2022-10-208-205/+332
| | | | | | | | | | | | | | | | The previous parameters for benchmarks were based on gut-feeling. Now each hash-length has 3 benchmarks: - Typical is a typical user input - Max Divisions is a full generate_password_part run - Worst Case is the worst user input possible: Base 2.
* | Minor: Shift Operation optimization.Andreas Grois2022-10-201-10/+4
| |
* | Merge branch 'main' into feature/heap-allocation-free-base-conversionAndreas Grois2022-10-191-5/+70
|\|
| * Make some asserts debug_asserts. Add more benches.Andreas Grois2022-10-192-9/+74
| | | | | | | | | | Now that work on performance has started, accurate readings are important.
* | Change normalization of Knuth division to shift.Andreas Grois2022-10-191-6/+38
| | | | | | | | That's a lot faster than division.
* | Add many-numbers test for long division.Andreas Grois2022-10-192-6/+69
| |
* | Draft of iterative_conversion.Andreas Grois2022-10-187-225/+129
| |
* | First draft of (untested) iterative conversion.Andreas Grois2022-10-186-36/+628
| |
* | Minor: Add warning that 16bit might not workAndreas Grois2022-10-181-0/+3
|/
* Add simple benchmarks.Andreas Grois2022-10-132-1/+143
| | | | As preparation for an eventual rewrite of the base conversion code.
* Minor: rename a functionAndreas Grois2022-10-121-2/+2
| | | | to better match the names of similar functions.
* Add more password generation integration tests.Andreas Grois2022-10-121-0/+251
| | | | | A single test for each generation algorithm, and tests for prefix/suffix handling if there isn't enough space.
* Fix Rust 1.52 compat.Andreas Grois2022-10-111-3/+2
|
* Refactor base_conversion. Fix hmac byte bug.Andreas Grois2022-10-115-85/+208
| | | | | | | Moved the basis conversion into a submodule, to ease the upcoming rewrite. Add a couple of new integration tests. Fix a bug caused by misreading the PasswordMaker Pro HMAC code.
* Update Readme with the now final name of PassFish.Andreas Grois2022-10-101-2/+2
|
* Add first integration test.Andreas Grois2022-10-092-1/+83
|
* Add License and Readme files.Andreas Grois2022-10-092-0/+178
|
* First draft of docs.Andreas Grois2022-10-094-87/+103
|
* Also add url_parsing to this crate.Andreas Grois2022-10-094-67/+711
|
* Initial Commit: PasswordMaker itself.Andreas Grois2022-10-099-0/+881
It's compiling, and the public interface is semi-OK now. The internals are still a bit gory, but they'll likely see an iteartion later on anyhow.