@@ -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@
@@ -655,30 +659,65 @@ LIBEXPAT_HEADERS= \
655659##########################################################################
656660# hashlib's HACL* library
657661
662+ LIBHACL_MD5_OBJS= \
663+ Modules/_hacl/Hacl_Hash_MD5.o
664+
665+ LIBHACL_SHA1_OBJS= \
666+ Modules/_hacl/Hacl_Hash_SHA1.o
667+
658668LIBHACL_SHA2_OBJS= \
659- Modules/_hacl/Hacl_Hash_SHA2.o
669+ Modules/_hacl/Hacl_Hash_SHA2.o
670+
671+ LIBHACL_SHA3_OBJS= \
672+ Modules/_hacl/Hacl_Hash_SHA3.o
660673
661674LIBHACL_BLAKE2_OBJS= \
662- Modules/_hacl/Hacl_Hash_Blake2s.o \
663- Modules/_hacl/Hacl_Hash_Blake2b.o \
664- Modules/_hacl/Lib_Memzero0.o \
675+ Modules/_hacl/Hacl_Hash_Blake2s.o \
676+ Modules/_hacl/Hacl_Hash_Blake2b.o \
677+ Modules/_hacl/Lib_Memzero0.o \
665678 $(LIBHACL_SIMD128_OBJS) \
666679 $(LIBHACL_SIMD256_OBJS)
667680
681+ LIBHACL_HMAC_OBJS= \
682+ Modules/_hacl/Hacl_HMAC.o \
683+ Modules/_hacl/Hacl_Streaming_HMAC.o \
684+ $(LIBHACL_MD5_OBJS) \
685+ $(LIBHACL_SHA1_OBJS) \
686+ $(LIBHACL_SHA2_OBJS) \
687+ $(LIBHACL_SHA3_OBJS) \
688+ $(LIBHACL_BLAKE2_OBJS)
689+
668690LIBHACL_HEADERS= \
669- Modules/_hacl/include/krml/FStar_UInt128_Verified.h \
670- Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h \
671- Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h \
672- Modules/_hacl/include/krml/internal/compat.h \
673- Modules/_hacl/include/krml/internal/target.h \
674- Modules/_hacl/include/krml/internal/types.h \
675- Modules/_hacl/include/krml/lowstar_endianness.h \
691+ Modules/_hacl/include/krml/FStar_UInt128_Verified.h \
692+ Modules/_hacl/include/krml/FStar_UInt_8_16_32_64.h \
693+ Modules/_hacl/include/krml/fstar_uint128_struct_endianness.h \
694+ Modules/_hacl/include/krml/internal/compat.h \
695+ Modules/_hacl/include/krml/internal/target.h \
696+ Modules/_hacl/include/krml/internal/types.h \
697+ Modules/_hacl/include/krml/lowstar_endianness.h \
676698 Modules/_hacl/Hacl_Streaming_Types.h \
677- Modules/_hacl/python_hacl_namespaces.h
699+ Modules/_hacl/internal/Hacl_Streaming_Types.h \
700+ Modules/_hacl/libintvector.h \
701+ Modules/_hacl/python_hacl_namespaces.h
702+
703+ LIBHACL_MD5_HEADERS= \
704+ Modules/_hacl/Hacl_Hash_MD5.h \
705+ Modules/_hacl/internal/Hacl_Hash_MD5.h \
706+ $(LIBHACL_HEADERS)
707+
708+ LIBHACL_SHA1_HEADERS= \
709+ Modules/_hacl/Hacl_Hash_SHA1.h \
710+ Modules/_hacl/internal/Hacl_Hash_SHA1.h \
711+ $(LIBHACL_HEADERS)
678712
679713LIBHACL_SHA2_HEADERS= \
680- Modules/_hacl/Hacl_Hash_SHA2.h \
681- Modules/_hacl/internal/Hacl_Hash_SHA2.h \
714+ Modules/_hacl/Hacl_Hash_SHA2.h \
715+ Modules/_hacl/internal/Hacl_Hash_SHA2.h \
716+ $(LIBHACL_HEADERS)
717+
718+ LIBHACL_SHA3_HEADERS= \
719+ Modules/_hacl/Hacl_Hash_SHA3.h \
720+ Modules/_hacl/internal/Hacl_Hash_SHA3.h \
682721 $(LIBHACL_HEADERS)
683722
684723LIBHACL_BLAKE2_HEADERS= \
@@ -694,6 +733,19 @@ LIBHACL_BLAKE2_HEADERS= \
694733 Modules/_hacl/internal/Hacl_Streaming_Types.h \
695734 $(LIBHACL_HEADERS)
696735
736+ LIBHACL_HMAC_HEADERS= \
737+ Modules/_hacl/Hacl_HMAC.h \
738+ Modules/_hacl/Hacl_Streaming_HMAC.h \
739+ Modules/_hacl/internal/Hacl_HMAC.h \
740+ Modules/_hacl/internal/Hacl_Streaming_HMAC.h \
741+ Modules/_hacl/libintvector-shim.h \
742+ $(LIBHACL_MD5_HEADERS) \
743+ $(LIBHACL_SHA1_HEADERS) \
744+ $(LIBHACL_SHA2_HEADERS) \
745+ $(LIBHACL_SHA3_HEADERS) \
746+ $(LIBHACL_BLAKE2_HEADERS) \
747+ $(LIBHACL_HEADERS)
748+
697749#########################################################################
698750# Rules
699751
@@ -1400,17 +1452,39 @@ $(LIBEXPAT_A): $(LIBEXPAT_OBJS)
14001452 $(AR) $(ARFLAGS) $@ $(LIBEXPAT_OBJS)
14011453
14021454##########################################################################
1403- # Build HACL* static libraries for hashlib: libHacl_Hash_SHA2.a, and
1404- # libHacl_Blake2.a -- the contents of the latter vary depending on whether we
1455+ # Build HACL* static libraries for hashlib and HACL* HMAC.
1456+ #
1457+ # The contents of libHacl_Blake2.a vary depending on whether we
14051458# have the ability to compile vectorized versions
14061459
1460+ Modules/_hacl/Hacl_Hash_MD5.o: $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c $(LIBHACL_MD5_HEADERS)
1461+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c
1462+
1463+ $(LIBHACL_MD5_A): $(LIBHACL_MD5_OBJS)
1464+ -rm -f $@
1465+ $(AR) $(ARFLAGS) $@ $(LIBHACL_MD5_OBJS)
1466+
1467+ Modules/_hacl/Hacl_Hash_SHA1.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c $(LIBHACL_SHA1_HEADERS)
1468+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c
1469+
1470+ $(LIBHACL_SHA1_A): $(LIBHACL_SHA1_OBJS)
1471+ -rm -f $@
1472+ $(AR) $(ARFLAGS) $@ $(LIBHACL_SHA1_OBJS)
1473+
14071474Modules/_hacl/Hacl_Hash_SHA2.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c $(LIBHACL_SHA2_HEADERS)
14081475 $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c
14091476
14101477$(LIBHACL_SHA2_A): $(LIBHACL_SHA2_OBJS)
14111478 -rm -f $@
14121479 $(AR) $(ARFLAGS) $@ $(LIBHACL_SHA2_OBJS)
14131480
1481+ Modules/_hacl/Hacl_Hash_SHA3.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c $(LIBHACL_SHA3_HEADERS)
1482+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c
1483+
1484+ $(LIBHACL_SHA3_A): $(LIBHACL_SHA3_OBJS)
1485+ -rm -f $@
1486+ $(AR) $(ARFLAGS) $@ $(LIBHACL_SHA3_OBJS)
1487+
14141488Modules/_hacl/Hacl_Hash_Blake2s.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s.c $(LIBHACL_BLAKE2_HEADERS)
14151489 $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s.c
14161490
@@ -1436,6 +1510,16 @@ $(LIBHACL_BLAKE2_A): $(LIBHACL_BLAKE2_OBJS)
14361510 -rm -f $@
14371511 $(AR) $(ARFLAGS) $@ $(LIBHACL_BLAKE2_OBJS)
14381512
1513+ Modules/_hacl/Hacl_HMAC.o: $(srcdir)/Modules/_hacl/Hacl_HMAC.c $(LIBHACL_HMAC_HEADERS)
1514+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_HMAC.c
1515+
1516+ Modules/_hacl/Hacl_Streaming_HMAC.o: $(srcdir)/Modules/_hacl/Hacl_Streaming_HMAC.c $(LIBHACL_HMAC_HEADERS)
1517+ $(CC) -Wno-unused-variable -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Streaming_HMAC.c
1518+
1519+ $(LIBHACL_HMAC_A): $(LIBHACL_HMAC_OBJS)
1520+ -rm -f $@
1521+ $(AR) $(ARFLAGS) $@ $(LIBHACL_HMAC_OBJS)
1522+
14391523# create relative links from build/lib.platform/egg.so to Modules/egg.so
14401524# pybuilddir.txt is created too late. We cannot use it in Makefile
14411525# targets. ln --relative is not portable.
@@ -3208,11 +3292,12 @@ MODULE__DECIMAL_DEPS=$(srcdir)/Modules/_decimal/docstrings.h @LIBMPDEC_INTERNAL@
32083292MODULE__ELEMENTTREE_DEPS=$(srcdir)/Modules/pyexpat.c @LIBEXPAT_INTERNAL@
32093293MODULE__HASHLIB_DEPS=$(srcdir)/Modules/hashlib.h
32103294MODULE__IO_DEPS=$(srcdir)/Modules/_io/_iomodule.h
3211- 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
3212- 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
3295+ MODULE__MD5_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_MD5_HEADERS) $(LIBHACL_MD5_A)
3296+ MODULE__SHA1_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA1_HEADERS) $(LIBHACL_SHA1_A)
32133297MODULE__SHA2_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA2_HEADERS) $(LIBHACL_SHA2_A)
3214- 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
3298+ MODULE__SHA3_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA3_HEADERS) $(LIBHACL_SHA3_A)
32153299MODULE__BLAKE2_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_BLAKE2_HEADERS) $(LIBHACL_BLAKE2_A)
3300+ MODULE__HMAC_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_HMAC_HEADERS) $(LIBHACL_HMAC_A)
32163301MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h $(srcdir)/Modules/addrinfo.h $(srcdir)/Modules/getaddrinfo.c $(srcdir)/Modules/getnameinfo.c
32173302MODULE__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
32183303MODULE__TESTCAPI_DEPS=$(srcdir)/Modules/_testcapi/parts.h $(srcdir)/Modules/_testcapi/util.h
0 commit comments