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.
Fork of OmniWheels by
tls_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 TLS_LIB_H_ 00019 #define TLS_LIB_H_ 00020 00021 #include "Security/Common/sec_lib_definitions.h" 00022 00023 extern tls_session_t *amr_tls_session_allocate(void); 00024 extern void arm_tls_session_clear(tls_session_t *t_session); 00025 00026 extern void tls_finnish_copy(uint8_t *ptr, tls_heap_t *heap_ptr); 00027 extern void tls_alert_build(buffer_t *buf, uint8_t alert); 00028 00029 extern void tls_prepare_change_chipher_spec(sec_suite_t *tls_suite); 00030 extern void tls_build_client_change_chipher_suite_finnish(buffer_t *buf, sec_suite_t *tls_suite); 00031 #ifdef PANA_SERVER_API 00032 extern void tls_server_hello_build(buffer_t *buf, sec_suite_t *tls_suite); 00033 #endif 00034 00035 extern void tls_key_expansion_cal(tls_heap_t *heap_ptr, uint8_t *key_save_ptr, uint8_t *master_secret); 00036 extern void tls_master_key_cal(tls_heap_t *heap_ptr, sec_suite_t *tls_suite); 00037 extern void tls_verify_calc(uint8_t output[12], uint8_t server, tls_heap_t *heap_ptr, uint8_t *master_secret); 00038 extern void tls_hanshake_hash_cal(tls_heap_t *heap_ptr); 00039 extern void tls_handshake_copy(tls_msg_t *tls_msg_ptr, tls_heap_t *heap_ptr); 00040 00041 extern uint8_t tls_txt_analyze(buffer_t *buf); 00042 extern tls_header_t *tls_message_get(uint8_t *dptr); 00043 extern uint8_t tls_msg_analyzy(uint8_t *ptr, uint16_t data_len); 00044 extern tls_msg_t *tls_msg_get(uint8_t *dptr); 00045 extern tls_msg_t *tls_msg_ptr_get(void); 00046 00047 extern buffer_t *tls_client_up(buffer_t *buf, sec_suite_t *tls_suite); 00048 extern buffer_t *tls_server_up(buffer_t *buf, sec_suite_t *tls_suite); 00049 00050 extern buffer_t * tls_client_hello_build(buffer_t *buf, sec_suite_t *tls_suite); 00051 extern void tls_build_client_verify_payload(tls_heap_t *tls_heap); 00052 extern uint8_t *tls_build_change_chipher_suite_finnish_msg(uint8_t *ptr, tls_session_t *tls_session); 00053 extern uint8_t *tls_build_server_hello_msg(uint8_t *ptr, tls_session_t *tls_session); 00054 extern void tls_session_id_genrate(uint8_t *suite, uint8_t length); 00055 00056 #ifdef ECC 00057 extern uint8_t *tls_client_key_exchange_msg_set(uint8_t *ptr , tls_heap_t *heap_ptr); 00058 extern void tls_ecc_point_reverse_order(uint8_t *dst, uint8_t *src); 00059 extern uint8_t *tls_server_key_excahnge_msg_build(uint8_t *ptr , tls_heap_t *heap_ptr); 00060 extern uint8_t *tls_certificate_verify_msg_set(uint8_t *ptr, tls_heap_t *heap_ptr); 00061 extern uint8_t *tls_certificate_msg_set(uint8_t *ptr, certificate_chain_internal_t *temp); 00062 extern void tls_ecc_heap_free(tls_heap_t *heap_ptr); 00063 #else 00064 #define tls_ecc_heap_free(heap_ptr) ((void) 0) 00065 #endif 00066 00067 extern void tls_header_set(buffer_t *buf); 00068 extern tls_heap_t *tls_heap_allocate(void); 00069 extern void tls_heap_free(tls_heap_t *heap_ptr); 00070 00071 extern uint8_t tls_get_leading_zeros(void *data); 00072 00073 #ifdef ECC 00074 extern void tls_read_certi_signature(tls_heap_t *theap, uint8_t certificate); 00075 extern void tls_ecc_server_key_signature_hash(tls_heap_t *heap_ptr); 00076 extern uint16_t tls_certificate_len(certificate_chain_internal_t *temp); 00077 extern void tls_ecc_verfify_start(sec_suite_t *tls_suite); 00078 extern void tls_server_finnish_handle_start(sec_suite_t *tls_suite); 00079 extern void tls_parse_subject_get_pub_key_from_chain(tls_heap_t *theap, uint8_t rd_ptr); 00080 extern void tls_certificate_signature_verify(sec_suite_t *tls_suite); 00081 #endif 00082 //extern uint16_t tls_server_hello_req_len(tls_heap_t *heap_ptr); 00083 00084 extern void tls_nonce_update(uint8_t *ptr); 00085 #endif /* TLS_LIB_H_ */
Generated on Fri Jul 22 2022 04:54:04 by
