1*62c56f98SSadaf Ebrahimi/* 2*62c56f98SSadaf Ebrahimi * Version feature information 3*62c56f98SSadaf Ebrahimi * 4*62c56f98SSadaf Ebrahimi * Copyright The Mbed TLS Contributors 5*62c56f98SSadaf Ebrahimi * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 6*62c56f98SSadaf Ebrahimi */ 7*62c56f98SSadaf Ebrahimi 8*62c56f98SSadaf Ebrahimi#include "common.h" 9*62c56f98SSadaf Ebrahimi 10*62c56f98SSadaf Ebrahimi#if defined(MBEDTLS_VERSION_C) 11*62c56f98SSadaf Ebrahimi 12*62c56f98SSadaf Ebrahimi#include "mbedtls/version.h" 13*62c56f98SSadaf Ebrahimi 14*62c56f98SSadaf Ebrahimi#include <string.h> 15*62c56f98SSadaf Ebrahimi 16*62c56f98SSadaf Ebrahimistatic const char * const features[] = { 17*62c56f98SSadaf Ebrahimi#if defined(MBEDTLS_VERSION_FEATURES) 18*62c56f98SSadaf Ebrahimi FEATURE_DEFINES 19*62c56f98SSadaf Ebrahimi#endif /* MBEDTLS_VERSION_FEATURES */ 20*62c56f98SSadaf Ebrahimi NULL 21*62c56f98SSadaf Ebrahimi}; 22*62c56f98SSadaf Ebrahimi 23*62c56f98SSadaf Ebrahimiint mbedtls_version_check_feature(const char *feature) 24*62c56f98SSadaf Ebrahimi{ 25*62c56f98SSadaf Ebrahimi const char * const *idx = features; 26*62c56f98SSadaf Ebrahimi 27*62c56f98SSadaf Ebrahimi if (*idx == NULL) { 28*62c56f98SSadaf Ebrahimi return -2; 29*62c56f98SSadaf Ebrahimi } 30*62c56f98SSadaf Ebrahimi 31*62c56f98SSadaf Ebrahimi if (feature == NULL) { 32*62c56f98SSadaf Ebrahimi return -1; 33*62c56f98SSadaf Ebrahimi } 34*62c56f98SSadaf Ebrahimi 35*62c56f98SSadaf Ebrahimi if (strncmp(feature, "MBEDTLS_", 8)) { 36*62c56f98SSadaf Ebrahimi return -1; 37*62c56f98SSadaf Ebrahimi } 38*62c56f98SSadaf Ebrahimi 39*62c56f98SSadaf Ebrahimi feature += 8; 40*62c56f98SSadaf Ebrahimi 41*62c56f98SSadaf Ebrahimi while (*idx != NULL) { 42*62c56f98SSadaf Ebrahimi if (!strcmp(*idx, feature)) { 43*62c56f98SSadaf Ebrahimi return 0; 44*62c56f98SSadaf Ebrahimi } 45*62c56f98SSadaf Ebrahimi idx++; 46*62c56f98SSadaf Ebrahimi } 47*62c56f98SSadaf Ebrahimi return -1; 48*62c56f98SSadaf Ebrahimi} 49*62c56f98SSadaf Ebrahimi 50*62c56f98SSadaf Ebrahimi#endif /* MBEDTLS_VERSION_C */ 51