Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
sec_lib.h
00001 /* 00002 * Copyright (c) 2013-2017, Arm Limited and affiliates. 00003 * SPDX-License-Identifier: Apache-2.0 00004 * 00005 * Licensed under the Apache License, Version 2.0 (the "License"); 00006 * you may not use this file except in compliance with the License. 00007 * You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 */ 00017 00018 #ifndef SEC_LIB_H_ 00019 #define SEC_LIB_H_ 00020 #include "Security/Common/sec_lib_definitions.h" 00021 #ifdef PANA 00022 extern int sec_pana_protocol_init(sec_suite_t *suite); 00023 extern void sec_suite_tls_free(sec_suite_t *suite, bool free_session); 00024 extern uint8_t sec_check_suite_ptrs(sec_suite_t *suite); 00025 00026 extern sec_suite_t * sec_lib_security_session_allocate(bool tls_allocate); 00027 extern sec_suite_t *sec_suite_create(void); 00028 extern sec_suite_t *sec_suite_selected_py_pan_id(uint16_t pan_id); 00029 extern sec_suite_t *sec_suite_selected_pana_session(uint32_t session_id); 00030 extern sec_suite_t *sec_suite_selected_address(const uint8_t address[static 16]); 00031 extern int8_t sec_suite_remove(sec_suite_t *cur); 00032 void sec_suite_list_clean(void); 00033 extern sec_suite_t *sec_suite_verify(sec_suite_t *session); 00034 extern uint8_t sec_suite_socket_event(uint8_t event_type, sec_suite_t *session_ptr); 00035 00036 extern uint16_t sec_pana_key_update_trig(uint16_t th_time); 00037 /* TLS spesific use case */ 00038 extern void eap_fragmentation_init(sec_suite_t *suite); 00039 #ifdef PANA_SERVER_API 00040 uint8_t tls_server_certi_hash_copy(sec_suite_t *suite); 00041 uint8_t tls_pana_server_exchange_build(sec_suite_t *suite); 00042 #endif 00043 extern void sec_prf_state_set(sec_suite_t *suite); 00044 extern void sec_set_auth_timeout(sec_suite_t *suite, sec_state_machine_t cur_state); 00045 extern void sec_lib_state_machine_trig(sec_suite_t *suite, sec_state_machine_t state); 00046 extern void sec_lib_state_machine_lock(sec_suite_t *suite, sec_state_machine_t state); 00047 00048 extern uint8_t sec_auth_re_check(sec_suite_t *suite); 00049 00050 extern void sec_libray_init(void); 00051 extern void sec_timer_handle(void); 00052 extern void seclib_session_clean(sec_suite_t *suite); 00053 #ifdef ECC 00054 extern void ecc_operation_done_callback(int8_t status, void *result_ptr); 00055 extern uint8_t tls_ecc_start_premaster_secret(EllipticPoint *ellicpt_ptr, sec_suite_t *suite); 00056 extern void sec_ecc_state_save(sec_suite_t *suite); 00057 extern void sec_ecc_sceduler(void); 00058 extern void sec_ecc_gen_public_key_start(sec_suite_t *suite); 00059 extern void sec_ecc_client_signature_start(sec_suite_t *suite); 00060 extern uint8_t tls_certi_hash_copy(sec_suite_t *suite); 00061 extern uint8_t tls_certificate_build(sec_suite_t *suite); 00062 #else 00063 #define sec_ecc_sceduler() ((void)0) 00064 #define sec_ecc_gen_public_key_start(suite) ((void)0) 00065 #define sec_ecc_client_signature_start(suite) ((void)0) 00066 #define tls_certi_hash_copy(suite) 0 00067 #define tls_certificate_build(suite) 0 00068 #endif /* ECC */ 00069 #else 00070 #define sec_timer_handle() ((void)0) 00071 #define sec_ecc_sceduler() ((void)0) 00072 #endif /* PANA */ 00073 #endif /* SEC_LIB_H_ */
Generated on Tue Jul 12 2022 12:22:19 by
