1 /* 2 Copyright (c) 2021 Fraunhofer AISEC. See the COPYRIGHT 3 file at the top-level directory of this distribution. 4 5 Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or 6 http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 7 <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your 8 option. This file may not be copied, modified, or distributed 9 except according to those terms. 10 */ 11 #ifndef EDHOC_TESTS_H 12 #define EDHOC_TESTS_H 13 14 #include <stdint.h> 15 //#include "../../samples/common/test_vec_parser.h" 16 17 struct messages { 18 uint8_t *m1; 19 uint32_t m1_len; 20 uint8_t *m2; 21 uint32_t m2_len; 22 uint8_t *m3; 23 uint32_t m3_len; 24 uint8_t *m4; 25 uint32_t m4_len; 26 }; 27 28 //extern struct messages_bufs m_bufs; 29 extern struct messages m; 30 31 enum role { INITIATOR, RESPONDER }; 32 33 /** 34 * @brief Runs an initiator/responder and compares the results with the * official test vectors. 35 * @param p is INITIATOR or RESPONDER 36 * @param vec_num the test vector number 37 */ 38 int test_edhoc(enum role p, uint8_t vec_num); 39 40 /** 41 * @brief Tests the functions of the exporter interface 42 */ 43 void test_exporter(void); 44 45 /** 46 * @brief Executes an instance of a responder and a initiator in 47 * parallel and checks if the results are the same. This test is 48 * especially relevant for ECC suites, e.g. P256 since signatures 49 * created with such suites are non-deterministic and therefore it 50 * is not possible to run only one of the party and to compare the 51 * results with pre computed values. 52 * @param vec_num the test vector number 53 */ 54 void test_initiator_responder_interaction(uint8_t vec_num); 55 #endif