1#         $NetBSD: Makefile,v 1.24 2024/07/26 18:25:03 riastradh Exp $
2#
3
4S=${.CURDIR}/../../../..
5SODIUM_IMPORTDIR=${S}/external/isc/libsodium
6SODIUM_DIR=${SODIUM_IMPORTDIR}/dist/src/libsodium
7
8.PATH:    ${S}/crypto/adiantum                                                            \
9          ${S}/crypto/aes                                                                 \
10          ${S}/crypto/blowfish                                                            \
11          ${S}/crypto/camellia                                                            \
12          ${S}/crypto/cast128                                                   \
13          ${S}/crypto/des                                                                 \
14          ${S}/crypto/skipjack                                                            \
15          ${SODIUM_DIR}/crypto_scalarmult/curve25519/ref10            \
16          ${SODIUM_DIR}/crypto_scalarmult/curve25519                            \
17          ${SODIUM_DIR}/crypto_scalarmult                                                 \
18          ${SODIUM_DIR}/crypto_onetimeauth/poly1305/donna                       \
19          ${SODIUM_DIR}/crypto_onetimeauth/poly1305                             \
20          ${SODIUM_DIR}/crypto_onetimeauth                                      \
21          ${SODIUM_DIR}/crypto_stream/chacha20/ref                              \
22          ${SODIUM_DIR}/crypto_stream/chacha20                                  \
23          ${SODIUM_DIR}/crypto_aead/xchacha20poly1305/sodium                    \
24          ${SODIUM_DIR}/crypto_aead/chacha20poly1305/sodium           \
25          ${SODIUM_DIR}/crypto_core/hchacha20                                   \
26          ${SODIUM_DIR}/crypto_core/ed25519/ref10                               \
27          ${SODIUM_IMPORTDIR}/src
28
29LIB=      rumpkern_crypto
30COMMENT=Cryptographic routines
31
32# Adiantum
33SRCS+=    adiantum.c
34SRCS+=    adiantum_selftest.c
35
36# AES
37SRCS+=    aes_bear.c
38SRCS+=    aes_ccm.c
39SRCS+=    aes_ccm_mbuf.c
40SRCS+=    aes_ct.c
41SRCS+=    aes_ct_dec.c
42SRCS+=    aes_ct_enc.c
43SRCS+=    aes_impl.c
44SRCS+=    aes_selftest.c
45
46# blowfish
47SRCS+=    bf_ecb.c bf_enc.c bf_cbc.c bf_skey.c bf_module.c
48
49# camellia
50SRCS+=  camellia.c camellia-api.c
51
52# cast128
53SRCS+=    cast128.c
54
55# DES
56SRCS+=    des_ecb.c des_setkey.c des_enc.c des_cbc.c des_module.c
57
58# skipjack
59SRCS+=    skipjack.c
60
61# libsodium
62SODIUM_CPPFLAGS+=   -I${SODIUM_IMPORTDIR}/include
63SODIUM_CPPFLAGS+=   -I${SODIUM_IMPORTDIR}/dist/src/libsodium/include/sodium
64
65#SODIUM_CPPFLAGS+=  -DHAVE_TI_MODE
66
67SODIUM_CWARNFLAGS+= -Wno-shadow
68SODIUM_CWARNFLAGS+= -Wno-unused-function
69SODIUM_CWARNFLAGS+= -Wno-unused-variable
70
71SODIUM_SRCS+=       x25519_ref10.c
72SODIUM_SRCS+=       scalarmult_curve25519.c
73SODIUM_SRCS+=       crypto_scalarmult.c
74SODIUM_SRCS+=       poly1305_donna.c
75SODIUM_SRCS+=       onetimeauth_poly1305.c
76SODIUM_SRCS+=       crypto_onetimeauth.c
77SODIUM_SRCS+=       chacha20_ref.c
78SODIUM_SRCS+=       stream_chacha20.c
79SODIUM_SRCS+=       aead_xchacha20poly1305.c
80SODIUM_SRCS+=       aead_chacha20poly1305.c
81SODIUM_SRCS+=       core_hchacha20.c
82SODIUM_SRCS+=       ed25519_ref10.c
83SODIUM_SRCS+=       sodium_module.c
84SODIUM_SRCS+=       sodium_selftest.c
85
86SRCS+=    ${SODIUM_SRCS}
87
88.for _s_ in ${SODIUM_SRCS}
89CPPFLAGS.${_s_}+=   ${SODIUM_CPPFLAGS}
90COPTS.${_s_}+=                ${SODIUM_CWARNFLAGS}
91.endfor
92
93.include <bsd.lib.mk>
94.include <bsd.klinks.mk>
95