@@ -227,8 +227,12 @@ ENSUREPIP= @ENSUREPIP@
227227# Internal static libraries
228228LIBMPDEC_A= Modules/_decimal/libmpdec/libmpdec.a
229229LIBEXPAT_A= Modules/expat/libexpat.a
230+ LIBHACL_MD5_A= Modules/_hacl/libHacl_Hash_MD5.a
231+ LIBHACL_SHA1_A= Modules/_hacl/libHacl_Hash_SHA1.a
230232LIBHACL_SHA2_A= Modules/_hacl/libHacl_Hash_SHA2.a
233+ LIBHACL_SHA3_A= Modules/_hacl/libHacl_Hash_SHA3.a
231234LIBHACL_BLAKE2_A= Modules/_hacl/libHacl_Hash_Blake2.a
235+ LIBHACL_HMAC_A= Modules/_hacl/libHacl_HMAC.a
232236LIBHACL_CFLAGS=@LIBHACL_CFLAGS@
233237LIBHACL_SIMD128_FLAGS=@LIBHACL_SIMD128_FLAGS@
234238LIBHACL_SIMD256_FLAGS=@LIBHACL_SIMD256_FLAGS@
@@ -657,29 +661,61 @@ LIBEXPAT_HEADERS= \
657661##########################################################################
658662# hashlib's HACL* library
659663
664+ LIBHACL_MD5_OBJS= \
665+ Modules/_hacl/Hacl_Hash_MD5.o
666+
667+ LIBHACL_SHA1_OBJS= \
668+ Modules/_hacl/Hacl_Hash_SHA1.o
669+
660670LIBHACL_SHA2_OBJS= \
661- Modules/_hacl/Hacl_Hash_SHA2.o
671+ Modules/_hacl/Hacl_Hash_SHA2.o
672+
673+ LIBHACL_SHA3_OBJS= \
674+ Modules/_hacl/Hacl_Hash_SHA3.o
662675
663676LIBHACL_BLAKE2_OBJS= \
664- Modules/_hacl/Hacl_Hash_Blake2s.o \
665- Modules/_hacl/Hacl_Hash_Blake2b.o \
666- Modules/_hacl/Lib_Memzero0.o \
677+ Modules/_hacl/Hacl_Hash_Blake2s.o \
678+ Modules/_hacl/Hacl_Hash_Blake2b.o \
679+ Modules/_hacl/Lib_Memzero0.o \
667680 $(LIBHACL_SIMD128_OBJS) \
668681 $(LIBHACL_SIMD256_OBJS)
669682
683+ LIBHACL_HMAC_OBJS= \
684+ Modules/_hacl/Hacl_HMAC.o \
685+ $(LIBHACL_MD5_OBJS) \
686+ $(LIBHACL_SHA1_OBJS) \
687+ $(LIBHACL_SHA2_OBJS) \
688+ $(LIBHACL_SHA3_OBJS) \
689+ $(LIBHACL_BLAKE2_OBJS)
690+
670691LIBHACL_HEADERS= \
671- Modules/_hacl/include/krml/FStar_UInt128_Verified.h \
672- Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h \
673- Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h \
674- Modules/_hacl/include/krml/internal/target.h \
675- Modules/_hacl/include/krml/lowstar_endianness.h \
676- Modules/_hacl/include/krml/types.h \
692+ Modules/_hacl/include/krml/FStar_UInt128_Verified.h \
693+ Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h \
694+ Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h \
695+ Modules/_hacl/include/krml/internal/target.h \
696+ Modules/_hacl/include/krml/lowstar_endianness.h \
697+ Modules/_hacl/include/krml/types.h \
677698 Modules/_hacl/Hacl_Streaming_Types.h \
678- Modules/_hacl/python_hacl_namespaces.h
699+ Modules/_hacl/python_hacl_namespaces.h
700+
701+ LIBHACL_MD5_HEADERS= \
702+ Modules/_hacl/Hacl_Hash_MD5.h \
703+ Modules/_hacl/internal/Hacl_Hash_MD5.h \
704+ $(LIBHACL_HEADERS)
705+
706+ LIBHACL_SHA1_HEADERS= \
707+ Modules/_hacl/Hacl_Hash_SHA1.h \
708+ Modules/_hacl/internal/Hacl_Hash_SHA1.h \
709+ $(LIBHACL_HEADERS)
679710
680711LIBHACL_SHA2_HEADERS= \
681- Modules/_hacl/Hacl_Hash_SHA2.h \
682- Modules/_hacl/internal/Hacl_Hash_SHA2.h \
712+ Modules/_hacl/Hacl_Hash_SHA2.h \
713+ Modules/_hacl/internal/Hacl_Hash_SHA2.h \
714+ $(LIBHACL_HEADERS)
715+
716+ LIBHACL_SHA3_HEADERS= \
717+ Modules/_hacl/Hacl_Hash_SHA3.h \
718+ Modules/_hacl/internal/Hacl_Hash_SHA3.h \
683719 $(LIBHACL_HEADERS)
684720
685721LIBHACL_BLAKE2_HEADERS= \
@@ -694,6 +730,16 @@ LIBHACL_BLAKE2_HEADERS= \
694730 Modules/_hacl/internal/Hacl_Hash_Blake2b_Simd256.h \
695731 $(LIBHACL_HEADERS)
696732
733+ LIBHACL_HMAC_HEADERS= \
734+ Modules/_hacl/Hacl_HMAC.h \
735+ Modules/_hacl/internal/Hacl_HMAC.h \
736+ $(LIBHACL_MD5_HEADERS) \
737+ $(LIBHACL_SHA1_HEADERS) \
738+ $(LIBHACL_SHA2_HEADERS) \
739+ $(LIBHACL_SHA3_HEADERS) \
740+ $(LIBHACL_BLAKE2_HEADERS) \
741+ $(LIBHACL_HEADERS)
742+
697743#########################################################################
698744# Rules
699745
@@ -1377,17 +1423,39 @@ $(LIBEXPAT_A): $(LIBEXPAT_OBJS)
13771423 $(AR) $(ARFLAGS) $@ $(LIBEXPAT_OBJS)
13781424
13791425##########################################################################
1380- # Build HACL* static libraries for hashlib: libHacl_Hash_SHA2.a, and
1381- # libHacl_Blake2.a -- the contents of the latter vary depending on whether we
1426+ # Build HACL* static libraries for hashlib and HACL* HMAC.
1427+ #
1428+ # The contents of libHacl_Blake2.a vary depending on whether we
13821429# have the ability to compile vectorized versions
13831430
1431+ Modules/_hacl/Hacl_Hash_MD5.o: $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c $(LIBHACL_MD5_HEADERS)
1432+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c
1433+
1434+ $(LIBHACL_MD5_A): $(LIBHACL_MD5_OBJS)
1435+ -rm -f $@
1436+ $(AR) $(ARFLAGS) $@ $(LIBHACL_MD5_OBJS)
1437+
1438+ Modules/_hacl/Hacl_Hash_SHA1.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c $(LIBHACL_SHA1_HEADERS)
1439+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c
1440+
1441+ $(LIBHACL_SHA1_A): $(LIBHACL_SHA1_OBJS)
1442+ -rm -f $@
1443+ $(AR) $(ARFLAGS) $@ $(LIBHACL_SHA1_OBJS)
1444+
13841445Modules/_hacl/Hacl_Hash_SHA2.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c $(LIBHACL_SHA2_HEADERS)
13851446 $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c
13861447
13871448$(LIBHACL_SHA2_A): $(LIBHACL_SHA2_OBJS)
13881449 -rm -f $@
13891450 $(AR) $(ARFLAGS) $@ $(LIBHACL_SHA2_OBJS)
13901451
1452+ Modules/_hacl/Hacl_Hash_SHA3.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c $(LIBHACL_SHA3_HEADERS)
1453+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c
1454+
1455+ $(LIBHACL_SHA3_A): $(LIBHACL_SHA3_OBJS)
1456+ -rm -f $@
1457+ $(AR) $(ARFLAGS) $@ $(LIBHACL_SHA3_OBJS)
1458+
13911459Modules/_hacl/Hacl_Hash_Blake2s.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s.c $(LIBHACL_BLAKE2_HEADERS)
13921460 $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s.c
13931461
@@ -1413,6 +1481,13 @@ $(LIBHACL_BLAKE2_A): $(LIBHACL_BLAKE2_OBJS)
14131481 -rm -f $@
14141482 $(AR) $(ARFLAGS) $@ $(LIBHACL_BLAKE2_OBJS)
14151483
1484+ Modules/_hacl/Hacl_HMAC.o: $(srcdir)/Modules/_hacl/Hacl_HMAC.c $(LIBHACL_HMAC_HEADERS)
1485+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_HMAC.c
1486+
1487+ $(LIBHACL_HMAC_A): $(LIBHACL_HMAC_OBJS)
1488+ -rm -f $@
1489+ $(AR) $(ARFLAGS) $@ $(LIBHACL_HMAC_OBJS)
1490+
14161491# create relative links from build/lib.platform/egg.so to Modules/egg.so
14171492# pybuilddir.txt is created too late. We cannot use it in Makefile
14181493# targets. ln --relative is not portable.
@@ -3198,11 +3273,12 @@ MODULE__DECIMAL_DEPS=$(srcdir)/Modules/_decimal/docstrings.h @LIBMPDEC_INTERNAL@
31983273MODULE__ELEMENTTREE_DEPS=$(srcdir)/Modules/pyexpat.c @LIBEXPAT_INTERNAL@
31993274MODULE__HASHLIB_DEPS=$(srcdir)/Modules/hashlib.h
32003275MODULE__IO_DEPS=$(srcdir)/Modules/_io/_iomodule.h
3201- MODULE__MD5_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_HEADERS) Modules/_hacl/Hacl_Hash_MD5.h Modules/_hacl/internal/Hacl_Hash_MD5.h Modules/_hacl/Hacl_Hash_MD5.c
3202- MODULE__SHA1_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_HEADERS) Modules/_hacl/Hacl_Hash_SHA1.h Modules/_hacl/internal/Hacl_Hash_SHA1.h Modules/_hacl/Hacl_Hash_SHA1.c
3276+ MODULE__MD5_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_MD5_HEADERS) $(LIBHACL_MD5_A)
3277+ MODULE__SHA1_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA1_HEADERS) $(LIBHACL_SHA1_A)
32033278MODULE__SHA2_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA2_HEADERS) $(LIBHACL_SHA2_A)
3204- MODULE__SHA3_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_HEADERS) Modules/_hacl/Hacl_Hash_SHA3.h Modules/_hacl/internal/Hacl_Hash_SHA3.h Modules/_hacl/Hacl_Hash_SHA3.c
3279+ MODULE__SHA3_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA3_HEADERS) $(LIBHACL_SHA3_A)
32053280MODULE__BLAKE2_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_BLAKE2_HEADERS) $(LIBHACL_BLAKE2_A)
3281+ MODULE__HMAC_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_HMAC_HEADERS) $(LIBHACL_HMAC_A)
32063282MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h $(srcdir)/Modules/addrinfo.h $(srcdir)/Modules/getaddrinfo.c $(srcdir)/Modules/getnameinfo.c
32073283MODULE__SSL_DEPS=$(srcdir)/Modules/_ssl.h $(srcdir)/Modules/_ssl/cert.c $(srcdir)/Modules/_ssl/debughelpers.c $(srcdir)/Modules/_ssl/misc.c $(srcdir)/Modules/_ssl_data_111.h $(srcdir)/Modules/_ssl_data_300.h $(srcdir)/Modules/socketmodule.h
32083284MODULE__TESTCAPI_DEPS=$(srcdir)/Modules/_testcapi/parts.h $(srcdir)/Modules/_testcapi/util.h
0 commit comments