xref: /aosp_15_r20/external/mbedtls/scripts/data_files/version_features.fmt (revision 62c56f9862f102b96d72393aff6076c951fb8148)
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