• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 *  Version feature information
3 *
4 *  Copyright The Mbed TLS Contributors
5 *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6 *
7 *  This file is provided under the Apache License 2.0, or the
8 *  GNU General Public License v2.0 or later.
9 *
10 *  **********
11 *  Apache License 2.0:
12 *
13 *  Licensed under the Apache License, Version 2.0 (the "License"); you may
14 *  not use this file except in compliance with the License.
15 *  You may obtain a copy of the License at
16 *
17 *  http://www.apache.org/licenses/LICENSE-2.0
18 *
19 *  Unless required by applicable law or agreed to in writing, software
20 *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
21 *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 *  See the License for the specific language governing permissions and
23 *  limitations under the License.
24 *
25 *  **********
26 *
27 *  **********
28 *  GNU General Public License v2.0 or later:
29 *
30 *  This program is free software; you can redistribute it and/or modify
31 *  it under the terms of the GNU General Public License as published by
32 *  the Free Software Foundation; either version 2 of the License, or
33 *  (at your option) any later version.
34 *
35 *  This program is distributed in the hope that it will be useful,
36 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
37 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
38 *  GNU General Public License for more details.
39 *
40 *  You should have received a copy of the GNU General Public License along
41 *  with this program; if not, write to the Free Software Foundation, Inc.,
42 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
43 *
44 *  **********
45 */
46
47#if !defined(MBEDTLS_CONFIG_FILE)
48#include "mbedtls/config.h"
49#else
50#include MBEDTLS_CONFIG_FILE
51#endif
52
53#if defined(MBEDTLS_VERSION_C)
54
55#include "mbedtls/version.h"
56
57#include <string.h>
58
59static const char *features[] = {
60#if defined(MBEDTLS_VERSION_FEATURES)
61FEATURE_DEFINES
62#endif /* MBEDTLS_VERSION_FEATURES */
63    NULL
64};
65
66int mbedtls_version_check_feature( const char *feature )
67{
68    const char **idx = features;
69
70    if( *idx == NULL )
71        return( -2 );
72
73    if( feature == NULL )
74        return( -1 );
75
76    while( *idx != NULL )
77    {
78        if( !strcmp( *idx, feature ) )
79            return( 0 );
80        idx++;
81    }
82    return( -1 );
83}
84
85#endif /* MBEDTLS_VERSION_C */
86