aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix missing HTTPS in repo urlHEADv0.2.3mainAndreas Grois2025-08-311-2/+2
|
* Version 0.2.2: Update Repository URLv0.2.2Andreas Grois2025-08-311-2/+2
|
* Make strum an optional dependency.Andreas Grois2024-06-012-6/+11
| | | | To enable it, enable the "strum" feature flag.
* Merge pull request #2 from tsadowski/mainAndreas Grois2024-05-222-5/+6
|\ | | | | | | | | This adds some strum derive macro invocations above the enums in the public interface, for converting to/from string representation of the parameters. Long term plan is to put the strum dependency behind a feature-gate.
| * Added Enum macros for GUITorsten Sadowski2024-05-212-5/+6
|/
* Minor: Restore compatibility with Rust 1.52v0.2.1Andreas Grois2023-01-212-2/+2
|
* Simplify HMAC function.v0.2.0Andreas Grois2023-01-202-17/+14
| | | | It's quite a bit faster, and easier to understand.
* Change HMAC benchmark.Andreas Grois2023-01-201-29/+9
| | | | | This version gives more attention to the relevant details, namely how HMAC performs under different key lengths.
* Add benchmark for HMAC code.Andreas Grois2023-01-203-37/+82
| | | | | Also, simplify the function a bit. It's faster this way, even though there's an additional unconditional collect() call now.
* Add unit tests for prefix-password-suffix combineAndreas Grois2023-01-191-0/+25
|
* Fix doc error.Andreas Grois2022-11-041-1/+1
|
* Merge pull request #1 from ↵Andreas Grois2022-11-0411-204/+1523
|\ | | | | | | | | | | | | soulsource/feature/heap-allocation-free-base-conversion Feature/heap allocation free base conversion While skipping the heap allocation is nice, the real gain is the option to early-out of password generation once the desired length has been reached.
| * Remove obsolete comment about base conversion.Andreas Grois2022-11-041-3/+0
| | | | | | | | It's done, so no point in keeping the TODO around :D
| * More Clippy lints.Andreas Grois2022-11-044-16/+27
| | | | | | | | Now Clippy is happy.
| * Some clippy lints.Andreas Grois2022-11-042-33/+41
| | | | | | | | | | Some were fixed, some were ignored because they seem to make a (negative) performance impact.
| * Test that compare iterative conversion with div.Andreas Grois2022-11-031-1/+52
| | | | | | | | | | These tests compare the code for iterative base conversion with the alternative formula that spits out digits in reverse order.
| * Base Conv: Combine shifting and padding.Andreas Grois2022-10-272-21/+64
| | | | | | | | | | | | Having one function that does both seems to be measurably faster, though I would have expected the compiler to inline and generate comparable assembly. Well, seems it didn't.
| * Minor: Remove an unnecessary clone.Andreas Grois2022-10-261-1/+1
| |
| * Minor, remove a pointless type conversion.Andreas Grois2022-10-261-3/+3
| | | | | | | | Seems not to have any performance impact, but still, cleaner this way.
| * Use MulAssign in BaseConversion.Andreas Grois2022-10-262-8/+46
| | | | | | | | | | | | | | | | | | | | Benchmarks show that MulAssign is quite a bit faster than Mul, especially since in this case it's mathematically proven that the multiplication cannot overflow. Also, removed skipping of leading zeros in long division. With the switch to multiplication after the first iteration, the chance that there actually are any leading zeros is on the order of 2^-26. I think at least. In any case, it's small.
| * Increment version to 0.2.0Andreas Grois2022-10-261-1/+1
| |
| * Merge branch 'main' into feature/heap-allocation-free-base-conversionAndreas Grois2022-10-261-0/+27
| |\ | |/ |/|
* | Set up rust.yaml for GitHub ActionsAndreas Grois2022-10-261-0/+27
| | | | | | This is just a bare-bone default setup.
| * Merge branch 'main' into feature/heap-allocation-free-base-conversionAndreas Grois2022-10-251-1/+2
| |\ | |/ |/|
* | Minor: Update description in Cargo.tomlv0.1.0Andreas Grois2022-10-251-1/+2
| |
| * Base Conv: Mul dividend instead of div divisor.Andreas Grois2022-10-251-2/+17
| | | | | | | | | | | | As it turns out, the speed gained by lowering the number of digits in divisor using repeated division is much less than the speed gained by using multiplication of the dividend instead of division of divisor.
| * Merge branch 'main' into feature/heap-allocation-free-base-conversionAndreas Grois2022-10-241-1/+1
| |\ | |/ |/|
* | Improve long division performance.Andreas Grois2022-10-241-1/+1
| | | | | | | | | | | | In PasswordMaker, the numbers that are fed into long division can only decrease. Therefore, skipping leading zeros is a rather reasonable improvement.
| * Add precomputed constants for common cases.Andreas Grois2022-10-238-12/+130
| | | | | | | | | | | | There are now 2 features that control the amount of precomputed constants. They can either be 0, 12, or 256. Most users will likely want to go with the 12, so this is the default feature.
| * Merge branch 'main' into feature/heap-allocation-free-base-conversionAndreas Grois2022-10-233-6/+7
| |\ | |/ |/|
* | Fix benchmark errors.Andreas Grois2022-10-233-6/+7
| | | | | | | | | | 20 bytes worst case was using 16 bytes. 32 bytes full division was producing a leading zero.
| * 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.