# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

syscfg.vals:
  MBEDTLS_ECP_DP_SECP192R1: 1
  MBEDTLS_ECP_DP_SECP224R1: 1
  MBEDTLS_ECP_DP_SECP256R1: 1
  MBEDTLS_ECP_DP_SECP384R1: 1
  MBEDTLS_ECP_DP_SECP521R1: 1
  MBEDTLS_ECP_DP_SECP192K1: 1
  MBEDTLS_ECP_DP_SECP224K1: 1
  MBEDTLS_ECP_DP_SECP256K1: 1
  MBEDTLS_ECP_DP_BP256R1: 1
  MBEDTLS_ECP_DP_BP384R1: 1
  MBEDTLS_ECP_DP_BP512R1: 1
  MBEDTLS_ECP_DP_CURVE25519: 1

  # Ciphers
  MBEDTLS_AES_C: 1
  MBEDTLS_ARC4_C: 1
  MBEDTLS_BLOWFISH_C: 1
  MBEDTLS_CAMELLIA_C: 1
  MBEDTLS_DES_C: 1

  # NIST AES key-wrapping
  MBEDTLS_NIST_KW_C: 1

  # RNG
  MBEDTLS_CTR_DRBG_C: 1

  # Utils
  MBEDTLS_BASE64_C: 1
  MBEDTLS_TIMING_C: 1
  MBEDTLS_ENTROPY_C: 0

  # Cipher modes
  MBEDTLS_CIPHER_MODE_CBC: 1
  MBEDTLS_CIPHER_MODE_CFB: 1
  MBEDTLS_CIPHER_MODE_CTR: 1
  MBEDTLS_CCM_C: 1

  # Hash functions
  MBEDTLS_MD5_C: 1
  MBEDTLS_SHA1_C: 1
  MBEDTLS_SHA512_C: 1
  MBEDTLS_RIPEMD160_C: 1

  # Message Authentication Code
  MBEDTLS_POLY1305_C: 1

  # Stream ciphers
  MBEDTLS_CHACHA20_C: 1
  MBEDTLS_CHACHAPOLY_C: 1
