BA / Mbed OS BaBoRo1
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers sec_lib.h Source File

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_ */