aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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.
| * Make some asserts debug_asserts. Add more benches.Andreas Grois2022-10-191-4/+4
| | | | | | | | | | Now that work on performance has started, accurate readings are important.
* | 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.
* | Minor: Shift Operation optimization.Andreas Grois2022-10-201-10/+4
| |
* | 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-191-6/+67
| |
* | 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
|/
* Minor: rename a functionAndreas Grois2022-10-121-2/+2
| | | | to better match the names of similar functions.
* Fix Rust 1.52 compat.Andreas Grois2022-10-111-3/+2
|
* Refactor base_conversion. Fix hmac byte bug.Andreas Grois2022-10-114-84/+110
| | | | | | | 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.
* First draft of docs.Andreas Grois2022-10-093-87/+102
|
* Also add url_parsing to this crate.Andreas Grois2022-10-094-67/+711
|
* Initial Commit: PasswordMaker itself.Andreas Grois2022-10-096-0/+858
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.