1 /***************************************************************************
2  * Copyright (c) 2024 Microsoft Corporation
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the MIT License which is available at
6  * https://opensource.org/licenses/MIT.
7  *
8  * SPDX-License-Identifier: MIT
9  **************************************************************************/
10 
11 
12 /**************************************************************************/
13 /**************************************************************************/
14 /**                                                                       */
15 /** NetX Crypto Component                                                 */
16 /**                                                                       */
17 /**   Module Self Test                                                    */
18 /**                                                                       */
19 /**************************************************************************/
20 /**************************************************************************/
21 
22 #ifndef NX_CRYPTO_METHOD_SELF_TEST_H
23 #define NX_CRYPTO_METHOD_SELF_TEST_H
24 
25 /* Determine if a C++ compiler is being used.  If so, ensure that standard
26    C is used to process the API information.  */
27 #ifdef __cplusplus
28 
29 /* Yes, C++ compiler is present.  Use standard C.  */
30 extern   "C" {
31 
32 #endif
33 
34 #include "nx_crypto.h"
35 
36 #ifdef NX_CRYPTO_SELF_TEST
37 
38 UINT _nx_crypto_method_self_test_aes(NX_CRYPTO_METHOD *crypto_method_aes,
39                                             VOID *metadata, UINT metadata_size);
40 UINT _nx_crypto_method_self_test_des(NX_CRYPTO_METHOD *crypto_method_des,
41                                             VOID *metadata, UINT metadata_size);
42 UINT _nx_crypto_method_self_test_3des(NX_CRYPTO_METHOD *crypto_method_3des,
43                                              VOID *metadata, UINT metadata_size);
44 UINT _nx_crypto_method_self_test_sha(NX_CRYPTO_METHOD *crypto_method_sha,
45                                             VOID *metadata, UINT metadata_size);
46 UINT _nx_crypto_method_self_test_md5(NX_CRYPTO_METHOD *crypto_method_md5,
47                                             VOID *metadata, UINT metadata_size);
48 UINT _nx_crypto_method_self_test_rsa(NX_CRYPTO_METHOD *crypto_method,
49                                             VOID *metadata, UINT metadata_size);
50 UINT _nx_crypto_method_self_test_hmac_sha(NX_CRYPTO_METHOD *crypto_method_hmac_sha,
51                                                  VOID *metadata, UINT metadata_size);
52 UINT _nx_crypto_method_self_test_hmac_md5(NX_CRYPTO_METHOD *crypto_method_hmac_md5,
53                                                  VOID *metadata, UINT metadata_size);
54 UINT _nx_crypto_method_self_test_prf(NX_CRYPTO_METHOD *crypto_method_prf,
55                                             VOID *metadata, UINT metadata_size);
56 UINT _nx_crypto_method_self_test_drbg(NX_CRYPTO_METHOD *crypto_method_drbg,
57                                       VOID *metadata, UINT metadata_size);
58 UINT _nx_crypto_method_self_test_ecdsa(NX_CRYPTO_METHOD *crypto_method_ecdsa,
59                                        VOID *metadata, UINT metadata_size);
60 UINT _nx_crypto_method_self_test_pkcs1(NX_CRYPTO_METHOD *crypto_method_pkcs1,
61                                        VOID *metadata, UINT metadata_size);
62 UINT _nx_crypto_method_self_test_ecdh(NX_CRYPTO_METHOD *crypto_method_ecdh,
63                                       VOID *metadata, UINT metadata_size);
64 
65 #endif
66 #endif /* NX_CRYPTO_METHOD_SELF_TEST_H  */
67 
68