Feature/mbedtls (#84)
* try to import mbedtls and build it * add stubs socket class * some boilterplate, read and write function implemented * more boilterplate / current error in handshake because no CA cert is setup * add something so skip ca verification, can ws curl https://google.com ! * cleanup / close implemented * tweak CMakefiles * typo in include * update readme * disable unittests
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							977e8794ec
						
					
				
				
					commit
					57976cf613
				
			
							
								
								
									
										12
									
								
								third_party/mbedtls/programs/random/CMakeLists.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								third_party/mbedtls/programs/random/CMakeLists.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| add_executable(gen_random_havege gen_random_havege.c) | ||||
| target_link_libraries(gen_random_havege mbedtls) | ||||
|  | ||||
| add_executable(gen_random_ctr_drbg gen_random_ctr_drbg.c) | ||||
| target_link_libraries(gen_random_ctr_drbg mbedtls) | ||||
|  | ||||
| add_executable(gen_entropy gen_entropy.c) | ||||
| target_link_libraries(gen_entropy mbedtls) | ||||
|  | ||||
| install(TARGETS gen_random_havege gen_random_ctr_drbg gen_entropy | ||||
|         DESTINATION "bin" | ||||
|         PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) | ||||
							
								
								
									
										115
									
								
								third_party/mbedtls/programs/random/gen_entropy.c
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								third_party/mbedtls/programs/random/gen_entropy.c
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| /** | ||||
|  *  \brief Use and generate multiple entropies calls into a file | ||||
|  * | ||||
|  *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved | ||||
|  *  SPDX-License-Identifier: Apache-2.0 | ||||
|  * | ||||
|  *  Licensed under the Apache License, Version 2.0 (the "License"); you may | ||||
|  *  not use this file except in compliance with the License. | ||||
|  *  You may obtain a copy of the License at | ||||
|  * | ||||
|  *  http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  *  Unless required by applicable law or agreed to in writing, software | ||||
|  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||||
|  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  *  See the License for the specific language governing permissions and | ||||
|  *  limitations under the License. | ||||
|  * | ||||
|  *  This file is part of mbed TLS (https://tls.mbed.org) | ||||
|  */ | ||||
|  | ||||
| #if !defined(MBEDTLS_CONFIG_FILE) | ||||
| #include "mbedtls/config.h" | ||||
| #else | ||||
| #include MBEDTLS_CONFIG_FILE | ||||
| #endif | ||||
|  | ||||
| #if defined(MBEDTLS_PLATFORM_C) | ||||
| #include "mbedtls/platform.h" | ||||
| #else | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #define mbedtls_fprintf         fprintf | ||||
| #define mbedtls_printf          printf | ||||
| #define mbedtls_exit            exit | ||||
| #define MBEDTLS_EXIT_SUCCESS    EXIT_SUCCESS | ||||
| #define MBEDTLS_EXIT_FAILURE    EXIT_FAILURE | ||||
| #endif /* MBEDTLS_PLATFORM_C */ | ||||
|  | ||||
| #if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_FS_IO) | ||||
| #include "mbedtls/entropy.h" | ||||
|  | ||||
| #include <stdio.h> | ||||
| #endif | ||||
|  | ||||
| #if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_FS_IO) | ||||
| int main( void ) | ||||
| { | ||||
|     mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO not defined.\n"); | ||||
|     return( 0 ); | ||||
| } | ||||
| #else | ||||
|  | ||||
| #if defined(MBEDTLS_CHECK_PARAMS) | ||||
| #include "mbedtls/platform_util.h" | ||||
| void mbedtls_param_failed( const char *failure_condition, | ||||
|                            const char *file, | ||||
|                            int line ) | ||||
| { | ||||
|     mbedtls_printf( "%s:%i: Input param failed - %s\n", | ||||
|                     file, line, failure_condition ); | ||||
|     mbedtls_exit( MBEDTLS_EXIT_FAILURE ); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| int main( int argc, char *argv[] ) | ||||
| { | ||||
|     FILE *f; | ||||
|     int i, k, ret = 1; | ||||
|     int exit_code = MBEDTLS_EXIT_FAILURE; | ||||
|     mbedtls_entropy_context entropy; | ||||
|     unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; | ||||
|  | ||||
|     if( argc < 2 ) | ||||
|     { | ||||
|         mbedtls_fprintf( stderr, "usage: %s <output filename>\n", argv[0] ); | ||||
|         return( exit_code ); | ||||
|     } | ||||
|  | ||||
|     if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) | ||||
|     { | ||||
|         mbedtls_printf( "failed to open '%s' for writing.\n", argv[1] ); | ||||
|         return( exit_code ); | ||||
|     } | ||||
|  | ||||
|     mbedtls_entropy_init( &entropy ); | ||||
|  | ||||
|     for( i = 0, k = 768; i < k; i++ ) | ||||
|     { | ||||
|         ret = mbedtls_entropy_func( &entropy, buf, sizeof( buf ) ); | ||||
|         if( ret != 0 ) | ||||
|         { | ||||
|             mbedtls_printf( "  failed\n  !  mbedtls_entropy_func returned -%04X\n", | ||||
|                             ret ); | ||||
|             goto cleanup; | ||||
|         } | ||||
|  | ||||
|         fwrite( buf, 1, sizeof( buf ), f ); | ||||
|  | ||||
|         mbedtls_printf( "Generating %ldkb of data in file '%s'... %04.1f" \ | ||||
|                 "%% done\r", (long)(sizeof(buf) * k / 1024), argv[1], (100 * (float) (i + 1)) / k ); | ||||
|         fflush( stdout ); | ||||
|     } | ||||
|  | ||||
|     exit_code = MBEDTLS_EXIT_SUCCESS; | ||||
|  | ||||
| cleanup: | ||||
|     mbedtls_printf( "\n" ); | ||||
|  | ||||
|     fclose( f ); | ||||
|     mbedtls_entropy_free( &entropy ); | ||||
|  | ||||
|     return( exit_code ); | ||||
| } | ||||
| #endif /* MBEDTLS_ENTROPY_C */ | ||||
							
								
								
									
										148
									
								
								third_party/mbedtls/programs/random/gen_random_ctr_drbg.c
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								third_party/mbedtls/programs/random/gen_random_ctr_drbg.c
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,148 @@ | ||||
| /** | ||||
|  *  \brief Use and generate random data into a file via the CTR_DBRG based on AES | ||||
|  * | ||||
|  *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved | ||||
|  *  SPDX-License-Identifier: Apache-2.0 | ||||
|  * | ||||
|  *  Licensed under the Apache License, Version 2.0 (the "License"); you may | ||||
|  *  not use this file except in compliance with the License. | ||||
|  *  You may obtain a copy of the License at | ||||
|  * | ||||
|  *  http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  *  Unless required by applicable law or agreed to in writing, software | ||||
|  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||||
|  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  *  See the License for the specific language governing permissions and | ||||
|  *  limitations under the License. | ||||
|  * | ||||
|  *  This file is part of mbed TLS (https://tls.mbed.org) | ||||
|  */ | ||||
|  | ||||
| #if !defined(MBEDTLS_CONFIG_FILE) | ||||
| #include "mbedtls/config.h" | ||||
| #else | ||||
| #include MBEDTLS_CONFIG_FILE | ||||
| #endif | ||||
|  | ||||
| #if defined(MBEDTLS_PLATFORM_C) | ||||
| #include "mbedtls/platform.h" | ||||
| #else | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #define mbedtls_fprintf         fprintf | ||||
| #define mbedtls_printf          printf | ||||
| #define mbedtls_exit            exit | ||||
| #define MBEDTLS_EXIT_SUCCESS    EXIT_SUCCESS | ||||
| #define MBEDTLS_EXIT_FAILURE    EXIT_FAILURE | ||||
| #endif /* MBEDTLS_PLATFORM_C */ | ||||
|  | ||||
| #if defined(MBEDTLS_CTR_DRBG_C) && defined(MBEDTLS_ENTROPY_C) && \ | ||||
|  defined(MBEDTLS_FS_IO) | ||||
| #include "mbedtls/entropy.h" | ||||
| #include "mbedtls/ctr_drbg.h" | ||||
|  | ||||
| #include <stdio.h> | ||||
| #endif | ||||
|  | ||||
| #if !defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_ENTROPY_C) || \ | ||||
|  !defined(MBEDTLS_FS_IO) | ||||
| int main( void ) | ||||
| { | ||||
|     mbedtls_printf("MBEDTLS_CTR_DRBG_C and/or MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO not defined.\n"); | ||||
|     return( 0 ); | ||||
| } | ||||
| #else | ||||
|  | ||||
| #if defined(MBEDTLS_CHECK_PARAMS) | ||||
| #include "mbedtls/platform_util.h" | ||||
| void mbedtls_param_failed( const char *failure_condition, | ||||
|                            const char *file, | ||||
|                            int line ) | ||||
| { | ||||
|     mbedtls_printf( "%s:%i: Input param failed - %s\n", | ||||
|                     file, line, failure_condition ); | ||||
|     mbedtls_exit( MBEDTLS_EXIT_FAILURE ); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| int main( int argc, char *argv[] ) | ||||
| { | ||||
|     FILE *f; | ||||
|     int i, k, ret = 1; | ||||
|     int exit_code = MBEDTLS_EXIT_FAILURE; | ||||
|     mbedtls_ctr_drbg_context ctr_drbg; | ||||
|     mbedtls_entropy_context entropy; | ||||
|     unsigned char buf[1024]; | ||||
|  | ||||
|     mbedtls_ctr_drbg_init( &ctr_drbg ); | ||||
|  | ||||
|     if( argc < 2 ) | ||||
|     { | ||||
|         mbedtls_fprintf( stderr, "usage: %s <output filename>\n", argv[0] ); | ||||
|         return( exit_code ); | ||||
|     } | ||||
|  | ||||
|     if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) | ||||
|     { | ||||
|         mbedtls_printf( "failed to open '%s' for writing.\n", argv[1] ); | ||||
|         return( exit_code ); | ||||
|     } | ||||
|  | ||||
|     mbedtls_entropy_init( &entropy ); | ||||
|     ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *) "RANDOM_GEN", 10 ); | ||||
|     if( ret != 0 ) | ||||
|     { | ||||
|         mbedtls_printf( "failed in mbedtls_ctr_drbg_seed: %d\n", ret ); | ||||
|         goto cleanup; | ||||
|     } | ||||
|     mbedtls_ctr_drbg_set_prediction_resistance( &ctr_drbg, MBEDTLS_CTR_DRBG_PR_OFF ); | ||||
|  | ||||
| #if defined(MBEDTLS_FS_IO) | ||||
|     ret = mbedtls_ctr_drbg_update_seed_file( &ctr_drbg, "seedfile" ); | ||||
|  | ||||
|     if( ret == MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR ) | ||||
|     { | ||||
|         mbedtls_printf( "Failed to open seedfile. Generating one.\n" ); | ||||
|         ret = mbedtls_ctr_drbg_write_seed_file( &ctr_drbg, "seedfile" ); | ||||
|         if( ret != 0 ) | ||||
|         { | ||||
|             mbedtls_printf( "failed in mbedtls_ctr_drbg_write_seed_file: %d\n", ret ); | ||||
|             goto cleanup; | ||||
|         } | ||||
|     } | ||||
|     else if( ret != 0 ) | ||||
|     { | ||||
|         mbedtls_printf( "failed in mbedtls_ctr_drbg_update_seed_file: %d\n", ret ); | ||||
|         goto cleanup; | ||||
|     } | ||||
| #endif | ||||
|  | ||||
|     for( i = 0, k = 768; i < k; i++ ) | ||||
|     { | ||||
|         ret = mbedtls_ctr_drbg_random( &ctr_drbg, buf, sizeof( buf ) ); | ||||
|         if( ret != 0 ) | ||||
|         { | ||||
|             mbedtls_printf("failed!\n"); | ||||
|             goto cleanup; | ||||
|         } | ||||
|  | ||||
|         fwrite( buf, 1, sizeof( buf ), f ); | ||||
|  | ||||
|         mbedtls_printf( "Generating %ldkb of data in file '%s'... %04.1f" \ | ||||
|                 "%% done\r", (long)(sizeof(buf) * k / 1024), argv[1], (100 * (float) (i + 1)) / k ); | ||||
|         fflush( stdout ); | ||||
|     } | ||||
|  | ||||
|     exit_code = MBEDTLS_EXIT_SUCCESS; | ||||
|  | ||||
| cleanup: | ||||
|     mbedtls_printf("\n"); | ||||
|  | ||||
|     fclose( f ); | ||||
|     mbedtls_ctr_drbg_free( &ctr_drbg ); | ||||
|     mbedtls_entropy_free( &entropy ); | ||||
|  | ||||
|     return( exit_code ); | ||||
| } | ||||
| #endif /* MBEDTLS_CTR_DRBG_C && MBEDTLS_ENTROPY_C */ | ||||
							
								
								
									
										120
									
								
								third_party/mbedtls/programs/random/gen_random_havege.c
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								third_party/mbedtls/programs/random/gen_random_havege.c
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,120 @@ | ||||
| /** | ||||
|  *  \brief Generate random data into a file | ||||
|  * | ||||
|  *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved | ||||
|  *  SPDX-License-Identifier: Apache-2.0 | ||||
|  * | ||||
|  *  Licensed under the Apache License, Version 2.0 (the "License"); you may | ||||
|  *  not use this file except in compliance with the License. | ||||
|  *  You may obtain a copy of the License at | ||||
|  * | ||||
|  *  http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  *  Unless required by applicable law or agreed to in writing, software | ||||
|  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | ||||
|  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  *  See the License for the specific language governing permissions and | ||||
|  *  limitations under the License. | ||||
|  * | ||||
|  *  This file is part of mbed TLS (https://tls.mbed.org) | ||||
|  */ | ||||
|  | ||||
| #if !defined(MBEDTLS_CONFIG_FILE) | ||||
| #include "mbedtls/config.h" | ||||
| #else | ||||
| #include MBEDTLS_CONFIG_FILE | ||||
| #endif | ||||
|  | ||||
| #if defined(MBEDTLS_PLATFORM_C) | ||||
| #include "mbedtls/platform.h" | ||||
| #else | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #define mbedtls_fprintf         fprintf | ||||
| #define mbedtls_printf          printf | ||||
| #define mbedtls_exit            exit | ||||
| #define MBEDTLS_EXIT_SUCCESS    EXIT_SUCCESS | ||||
| #define MBEDTLS_EXIT_FAILURE    EXIT_FAILURE | ||||
| #endif /* MBEDTLS_PLATFORM_C */ | ||||
|  | ||||
| #if defined(MBEDTLS_HAVEGE_C) && defined(MBEDTLS_FS_IO) | ||||
| #include "mbedtls/havege.h" | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <time.h> | ||||
| #endif | ||||
|  | ||||
| #if !defined(MBEDTLS_HAVEGE_C) || !defined(MBEDTLS_FS_IO) | ||||
| int main( void ) | ||||
| { | ||||
|     mbedtls_printf("MBEDTLS_HAVEGE_C not defined.\n"); | ||||
|     return( 0 ); | ||||
| } | ||||
| #else | ||||
|  | ||||
| #if defined(MBEDTLS_CHECK_PARAMS) | ||||
| #include "mbedtls/platform_util.h" | ||||
| void mbedtls_param_failed( const char *failure_condition, | ||||
|                            const char *file, | ||||
|                            int line ) | ||||
| { | ||||
|     mbedtls_printf( "%s:%i: Input param failed - %s\n", | ||||
|                     file, line, failure_condition ); | ||||
|     mbedtls_exit( MBEDTLS_EXIT_FAILURE ); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| int main( int argc, char *argv[] ) | ||||
| { | ||||
|     FILE *f; | ||||
|     time_t t; | ||||
|     int i, k, ret = 1; | ||||
|     int exit_code = MBEDTLS_EXIT_FAILURE; | ||||
|     mbedtls_havege_state hs; | ||||
|     unsigned char buf[1024]; | ||||
|  | ||||
|     if( argc < 2 ) | ||||
|     { | ||||
|         mbedtls_fprintf( stderr, "usage: %s <output filename>\n", argv[0] ); | ||||
|         return( exit_code ); | ||||
|     } | ||||
|  | ||||
|     if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) | ||||
|     { | ||||
|         mbedtls_printf( "failed to open '%s' for writing.\n", argv[1] ); | ||||
|         return( exit_code ); | ||||
|     } | ||||
|  | ||||
|     mbedtls_havege_init( &hs ); | ||||
|  | ||||
|     t = time( NULL ); | ||||
|  | ||||
|     for( i = 0, k = 768; i < k; i++ ) | ||||
|     { | ||||
|         if( ( ret = mbedtls_havege_random( &hs, buf, sizeof( buf ) ) ) != 0 ) | ||||
|         { | ||||
|             mbedtls_printf( " failed\n  !  mbedtls_havege_random returned -0x%04X", | ||||
|                             -ret ); | ||||
|             goto exit; | ||||
|         } | ||||
|  | ||||
|         fwrite( buf, sizeof( buf ), 1, f ); | ||||
|  | ||||
|         mbedtls_printf( "Generating %ldkb of data in file '%s'... %04.1f" \ | ||||
|                 "%% done\r", (long)(sizeof(buf) * k / 1024), argv[1], (100 * (float) (i + 1)) / k ); | ||||
|         fflush( stdout ); | ||||
|     } | ||||
|  | ||||
|     if( t == time( NULL ) ) | ||||
|         t--; | ||||
|  | ||||
|     mbedtls_printf(" \n "); | ||||
|  | ||||
|     exit_code = MBEDTLS_EXIT_SUCCESS; | ||||
|  | ||||
| exit: | ||||
|     mbedtls_havege_free( &hs ); | ||||
|     fclose( f ); | ||||
|     return( exit_code ); | ||||
| } | ||||
| #endif /* MBEDTLS_HAVEGE_C */ | ||||
		Reference in New Issue
	
	Block a user