* argon2id support
* make it all rust now
* set a threadpool number
* address comments
* set threadpool to max(available, current)
* review comments
* a few more improvements
* Update docs/hazmat/primitives/key-derivation-functions.rst
Co-authored-by: Alex Gaynor <alex.gaynor@gmail.com>
---------
Co-authored-by: Alex Gaynor <alex.gaynor@gmail.com>
Right now our deps are basically wrong, and impossible to use with lowest version resolution. Let's start trying to specify minimums so our deps are properly accurate.
* feat: implement parsing of admissions extension
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: add tests for admissions extension parsing
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: use cryptography result return type
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: apply fixes done by cargo fmt and clippy
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* add gematik company name and the gmbh abbreviations to known words
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix: regenerate the synthetic certificate with additional admission covering the case of naming authority with no data
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix: parse none for profession_oids if profession_oids is none
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: apply formatting to changes in rust codebase
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* refactor: switch return type of parse_profession_infos from PyObject to Bound<PyAny>
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* refactor: switch return type of parse_naming_authority from PyObject to Bound<PyAny>
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* refactor: switch return type of parse_admissions from PyObject to Bound<PyAny>
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* chore: remove gematik certs from repo
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* chore: remove gematik certs from this pr
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* chore: extend parser tests with an additional synthetic certificate to complete rust coverage
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* chore: add description for the additional certificate without authority
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* use into_bound(py) as shortcut, refrain from using to_object() in all added functions
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* add better description for the admissions synthetic cert
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* adjust description to avoid using misspelled words
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
---------
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* Speedup rsa_recover_prime_factors() by using random value
* Comply with ruff codingstyle
* Reject invalid combinations of n, d, e early to avoid excessive runtime
* Add second failure test case for rsa_recover_prime_factors to hit early error path
* Remove leftover debug code
* Reduce _MAX_RECOVERY_ATTEMPTS and remove obsolete comment
Previously, the code would increase a in steps of 2, therefore,
_MAX_RECOVERY_ATTEMPTS was twice the number of tries. With the new
code, this is no longer the case.
* feat: implement encoding of admissions extension
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: add encoding tests
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* refactor: split encoding of inner objects into separate functions
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix: simplify code comment to pass the line length checks
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: add test to check encoding of none values
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: extend none values test to also check encoding of naming authority with none values
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix: use none checks when converting python data
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix: raise a valueerror if the url can not be encoded to an ia5string
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: revert to truthness check for py_oids for now, will be amended in a separate pr
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix: raise a valueerror if the registration_number can not be encoded to a printablestring
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix: encode none for profession_oids if profession_oids is none
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
---------
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
In PBKDF2 structs generally there is no Algorithm Parameter
associated with the PRF, but without marking the parameter optional
the parser expect a an actual parameter with a null value.
Signed-off-by: Simo Sorce <simo@redhat.com>
* feat(admissions): add profession info python type for the admissions extension
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* feat(admissions): add profession info rust type for the admissions extension
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* feat(admissions): add test for profession info hash implementation
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix(admissions): minor fixes
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* remove the asn1 traits from the profession info rust type
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* remove the explicit mark from the naming authority field
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: add commented out annotation for the naming authority field
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* fix: use correct type for add_profeccion_info field
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* refactor: explicitly convert profession items and oids to tuples for hash calculation
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* refactor: add asn1 trait derives to naming authority and profession info types, commented out
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
---------
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
Signed-off-by: Oleg Hoefling <oleg.hoefling@gmail.com>
* feat(admissions): add naming authority python type for the admissions extension
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* feat(admissions): user short names for naming authority fields
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* feat(admissions): add naming authority rust type for the admissions extension
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: use assert_eq macro for value comparison in naming authority test
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* chore: drop useless test for naming authority rust type
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
* fix: correct the naming authority text type
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>
---------
Signed-off-by: oleg.hoefling <oleg.hoefling@gmail.com>