# We make separate GOAL variables for each algorithm, to make it easy to
# switch each to the Legacy provider when needed.

$DH_GOAL=../../libdefault.a ../../libfips.a
$DSA_GOAL=../../libdefault.a ../../libfips.a
$EC_GOAL=../../libdefault.a ../../libfips.a
$ECX_GOAL=../../libdefault.a ../../libfips.a
$KDF_GOAL=../../libdefault.a ../../libfips.a
$MAC_GOAL=../../libdefault.a ../../libfips.a
$RSA_GOAL=../../libdefault.a ../../libfips.a
$LMS_GOAL=../../libdefault.a ../../libfips.a
$TEMPLATE_GOAL=../../libtemplate.a
$ML_DSA_GOAL=../../libdefault.a ../../libfips.a
$ML_KEM_GOAL=../../libdefault.a ../../libfips.a
$TLS_ML_KEM_HYBRID_GOAL=../../libdefault.a ../../libfips.a
$SLH_DSA_GOAL=../../libdefault.a ../../libfips.a

IF[{- !$disabled{dh} -}]
  SOURCE[$DH_GOAL]=dh_kmgmt.c
ENDIF
IF[{- !$disabled{dsa} -}]
  SOURCE[$DSA_GOAL]=dsa_kmgmt.c
ENDIF
IF[{- !$disabled{ec} -}]
  SOURCE[$EC_GOAL]=ec_kmgmt.c
ENDIF

IF[{- !$disabled{asm} -}]
  $ECDEF_s390x=S390X_EC_ASM

  # Now that we have defined all the arch specific variables, use the
  # appropriate one, and define the appropriate macros
  IF[$ECASM_{- $target{asm_arch} -}]
    $ECDEF=$ECDEF_{- $target{asm_arch} -}
  ENDIF
ENDIF

IF[{- !$disabled{ec} -}]
  IF[{- !$disabled{ecx} -}]
    SOURCE[$ECX_GOAL]=ecx_kmgmt.c
    DEFINE[$ECX_GOAL]=$ECDEF
  ENDIF
ENDIF

IF[{- !$disabled{'ml-kem'} -}]
  IF[{- !$disabled{ec} -}]
    SOURCE[$TLS_ML_KEM_HYBRID_GOAL]=mlx_kmgmt.c
  ENDIF
  SOURCE[$ML_KEM_GOAL]=ml_kem_kmgmt.c
  DEPEND[ml_kem_kmgmt.o]=../../common/include/prov/der_hkdf.h
ENDIF

SOURCE[$RSA_GOAL]=rsa_kmgmt.c

SOURCE[$KDF_GOAL]=kdf_legacy_kmgmt.c

SOURCE[$MAC_GOAL]=mac_legacy_kmgmt.c

IF[{- !$disabled{lms} -}]
  SOURCE[$LMS_GOAL]=lms_kmgmt.c
ENDIF

SOURCE[$TEMPLATE_GOAL]=template_kmgmt.c

IF[{- !$disabled{'ml-dsa'} -}]
  SOURCE[$ML_DSA_GOAL]=ml_dsa_kmgmt.c
ENDIF

IF[{- !$disabled{'slh-dsa'} -}]
  SOURCE[$SLH_DSA_GOAL]=slh_dsa_kmgmt.c
ENDIF
