8000 gh-99108: Implement HACL* HMAC by picnixz · Pull Request #130157 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

gh-99108: Implement HACL* HMAC #130157

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 55 commits into from
Apr 4, 2025
Merged
Changes from 1 commit
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
20ce770
Merge branch 'main' into feat/hmac/hacl-99108
picnixz Feb 15, 2025
713fe1b
Merge remote-tracking branch 'upstream/main' into feat/hmac/hacl-99108
picnixz Mar 11, 2025
bc2a2f8
Merge remote-tracking branch 'upstream/main' into feat/hmac/hacl-99108
picnixz Mar 12, 2025
9fc5a71
Merge remote-tracking branch 'upstream/main' into feat/hmac/hacl-99108
picnixz Mar 16, 2025
e88b113
Merge remote-tracking branch 'upstream/main' into feat/hmac/hacl-99108
picnixz Mar 17, 2025
d2e72aa
update vendored HACL* project
picnixz Dec 12, 2024
9fa2b0b
prepare build configurations
picnixz Dec 12, 2024
1f33995
add HMAC module
picnixz Dec 13, 2024
8162616
add HMAC module state
picnixz Dec 13, 2024
02988f0
add HMAC-HASH static information
picnixz Dec 13, 2024
8df0fbf
implement HMAC-HASH known hashes table
picnixz Dec 13, 2024
f541600
add HMAC unknown hash exception type
picnixz Dec 13, 2024
88d2b96
intern `"lower"` for `str.lower` calls
picnixz Dec 13, 2024
77e51d4
implement hash information lookup
picnixz Dec 13, 2024
264e43c
add one-shot HMAC HACL* minimal API
picnixz Dec 13, 2024
c791feb
implement one-shot HMAC
picnixz Dec 13, 2024
6b77844
implement minimal HMAC object interface
picnixz Dec 13, 2024
0770202
implement HMAC simple getters
picnixz Dec 13, 2024
af443c2
implement `HMAC.__repr__()` method
picnixz Dec 12, 2024
4a0e9cd
implement streaming `HMAC.update()` macros
picnixz Dec 12, 2024
2d02577
implement streaming `HMAC.update()` interface
picnixz Dec 12, 2024
2b010ef
implement `HMAC.{digest,hexdigest}()` methods
picnixz Dec 12, 2024
6227892
implement `HMAC.copy()` interface
picnixz Dec 12, 2024
5c13316
add vectorized blake2s/2b kinds
picnixz Dec 12, 2024
617b793
implement `HMAC.new()` interface
picnixz Dec 12, 2024
cc28e3e
update HMAC python interface
picnixz Dec 12, 2024
166e7e8
add blurb & CHANGELOG entries
picnixz Feb 15, 2025
f2817ae
add `hashlib_helper.requires_builtin_hmac`
picnixz Mar 11, 2025
2b544e5
add various tests for the HACL* HMAC implementation
picnixz Mar 11, 2025
b4bfe5e
update comments concerning `int` return values
picnixz Mar 17, 2025
3aae0a8
handle error code returned by `Hacl_Streaming_HMAC_digest`
picnixz Mar 17, 2025
59b365a
Merge remote-tracking branch 'upstream/main' into feat/hmac/hacl-99108
picnixz Mar 18, 2025
c86d51e
summarize HMAC changes in "Improved Modules" as well
picnixz Mar 18, 2025
5fd72f0
force safe downcast to `uint32_t` in `hmac_new_initial_state`
picnixz Mar 18, 2025
da71ef8
`make clinic`
picnixz Mar 18, 2025
5baa874
fix HMAC max block size
picnixz Mar 18, 2025
10e1189
Merge remote-tracking branch 'upstream/main' into feat/hmac/hacl-99108
picnixz Mar 18, 2025
aab2b0b
align naming of one-shot HMAC with OpenSSL
picnixz Mar 18, 2025
da3a3e3
test one-shot HMAC functions
picnixz Mar 18, 2025
b2540ef
remove dubious `eval`
picnixz Mar 19, 2025
e90f685
Merge remote-tracking branch 'upstream/main' into feat/hmac/hacl-99108
picnixz Mar 23, 2025
0b18234
fixup test docstring
picnixz Mar 28, 2025
218015a
remove un-necessary guards
picnixz Mar 28, 2025
d0ca0e5
Merge remote-tracking branch 'upstream/main' into feat/hmac/hacl-99108
picnixz Mar 28, 2025
0ae4a9d
make clinic
picnixz Mar 28, 2025
47a15d6
make regen-sbom
picnixz Mar 28, 2025
f203c6d
fix obvious typo
picnixz Mar 28, 2025
a5fc810
narrow `except` guard
picnixz Mar 29, 2025
b58073d
put `hmac` section before `http` section
picnixz Mar 29, 2025
6f84a82
cosmetic changes in hmac.py
picnixz Apr 1, 2025
de7ad74
group cryptographic primitives modules
picnixz Apr 1, 2025
674af07
better group cryptographic primitives
picnixz Apr 1, 2025
26cfeb0
update naming
picnixz Apr 1, 2025
258aa20
update naming
picnixz Apr 1, 2025
629cbce
Merge branch 'main' into feat/hmac/hacl-99108
picnixz Apr 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
better group cryptographic primitives
  • Loading branch information
picnixz committed Apr 1, 2025
commit 674af0793cb2020800aedca2df6039f1e54b2135
27 changes: 15 additions & 12 deletions PC/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,22 @@ extern PyObject* PyInit_faulthandler(void);
extern PyObject* PyInit__tracemalloc(void);
extern PyObject* PyInit_gc(void);
extern PyObject* PyInit_math(void);
extern PyObject* PyInit__md5(void);
extern PyObject* PyInit_nt(void);
extern PyObject* PyInit__operator(void);
extern PyObject* PyInit__signal(void);
extern PyObject* PyInit__sha1(void);
extern PyObject* PyInit__sha2(void);
extern PyObject* PyInit__sha3(void);
extern PyObject* PyInit__statistics(void);
extern PyObject* PyInit__sysconfig(void);
extern PyObject* PyInit__typing(void);
extern PyObject* PyInit__blake2(void);
extern PyObject* PyInit__hmac(void);
extern PyObject* PyInit_time(void);
extern PyObject* PyInit__thread(void);
/* cryptographic primitives */
extern PyObject* PyInit__blake2(void);
extern PyObject* PyInit__md5(void);
extern PyObject* PyInit__sha1(void);
extern PyObject* PyInit__sha2(void);
extern PyObject* PyInit__sha3(void);
extern PyObject* PyInit__hmac(void);
/* ------------------------ */
#ifdef WIN32
extern PyObject* PyInit_msvcrt(void);
extern PyObject* PyInit__locale(void);
Expand Down Expand Up @@ -99,6 +101,13 @@ struct _inittab _PyImport_Inittab[] = {
{"nt", PyInit_nt}, /* Use the NT os functions, not posix */
{"_operator", PyInit__operator},
{"_signal", PyInit__signal},
{"_sysconfig", PyInit__sysconfig},
{"time", PyInit_time},
{"_thread", PyInit__thread},
{"_tokenize", PyInit__tokenize},
{"_typing", PyInit__typing},
{"_statistics", PyInit__statistics},

/* cryptographic hash functions */
{"_blake2", PyInit__blake2},
{"_md5", PyInit__md5},
Expand All @@ -108,12 +117,6 @@ struct _inittab _PyImport_Inittab[] = {
/* other cryptographic primitives */
{"_hmac", PyInit__hmac},

{"_sysconfig", PyInit__sysconfig},
{"time", PyInit_time},
{"_thread", PyInit__thread},
{"_tokenize", PyInit__tokenize},
{"_typing", PyInit__typing},
{"_statistics", PyInit__statistics},
#ifdef WIN32
{"msvcrt", PyInit_msvcrt},
{"_locale", PyInit__locale},
Expand Down
Loading
0