mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-03 20:22:59 -05:00 
			
		
		
		
	Add custom configurations with activation script
This commit is contained in:
		
							parent
							
								
									fe28646f72
								
							
						
					
					
						commit
						684e9dc52e
					
				
							
								
								
									
										68
									
								
								scripts/activate-config.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										68
									
								
								scripts/activate-config.pl
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/perl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# activate a pre-defined configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use warnings;
 | 
				
			||||||
 | 
					use strict;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $config_h = "../include/polarssl/config.h";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit( main() );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub read_default {
 | 
				
			||||||
 | 
					    open my $fh, '<', $config_h or die "Failed to read $config_h: $!\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    my (@pre, @post);
 | 
				
			||||||
 | 
					    my $state = 'pre';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while( my $line = <$fh> ) {
 | 
				
			||||||
 | 
					        if( $state eq 'pre' ) {
 | 
				
			||||||
 | 
					            push @pre, $line;
 | 
				
			||||||
 | 
					            $state = 'skip' if $line =~ /} name SECTION: System support/;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        elsif( $state eq 'skip' ) {
 | 
				
			||||||
 | 
					            $state = 'post' if $line =~/} name SECTION: PolarSSL modules/;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            push @post, $line;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    die "Failed to parse $config_h\n" if( $state ne 'post' );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    close $fh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    push @pre, "\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return \@pre, \@post;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub read_custom {
 | 
				
			||||||
 | 
					    my ($file_name) = @_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    open my $fh, '<', $file_name or die "Failed to read $file_name: $!\n";
 | 
				
			||||||
 | 
					    my @content = <$fh>;
 | 
				
			||||||
 | 
					    close $fh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return \@content;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub write_custom {
 | 
				
			||||||
 | 
					    my ($pre, $mid, $post) = @_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    open my $fh, '>', $config_h or die "Failed to write $config_h: $!\n";
 | 
				
			||||||
 | 
					    print $fh @$pre;
 | 
				
			||||||
 | 
					    print $fh @$mid;
 | 
				
			||||||
 | 
					    print $fh @$post;
 | 
				
			||||||
 | 
					    close $fh;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub main {
 | 
				
			||||||
 | 
					    my $custom_file_name = $ARGV[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    my ($pre, $post) = read_default();
 | 
				
			||||||
 | 
					    my $mine = read_custom( $custom_file_name );
 | 
				
			||||||
 | 
					    write_custom( $pre, $mine, $post );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										50
									
								
								scripts/data_files/config-mini-tls1_1.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								scripts/data_files/config-mini-tls1_1.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Minimal configuration for TLS 1.1 (RFC 4346), implementing only the
 | 
				
			||||||
 | 
					 * required ciphersuite: TLS_RSA_WITH_3DES_EDE_CBC_SHA
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Can be activated with:
 | 
				
			||||||
 | 
					 *      cd scripts
 | 
				
			||||||
 | 
					 *      ./activate-config.pl data_files/config-mini-tls1_1.h
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PolarSSL feature support */
 | 
				
			||||||
 | 
					#define POLARSSL_CIPHER_MODE_CBC
 | 
				
			||||||
 | 
					#define POLARSSL_PKCS1_V15
 | 
				
			||||||
 | 
					#define POLARSSL_KEY_EXCHANGE_RSA_ENABLED
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_PROTO_TLS1_1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PolarSSL modules */
 | 
				
			||||||
 | 
					#define POLARSSL_AES_C
 | 
				
			||||||
 | 
					#define POLARSSL_ASN1_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_ASN1_WRITE_C
 | 
				
			||||||
 | 
					#define POLARSSL_BIGNUM_C
 | 
				
			||||||
 | 
					#define POLARSSL_CIPHER_C
 | 
				
			||||||
 | 
					#define POLARSSL_CTR_DRBG_C
 | 
				
			||||||
 | 
					#define POLARSSL_DES_C
 | 
				
			||||||
 | 
					#define POLARSSL_ENTROPY_C
 | 
				
			||||||
 | 
					#define POLARSSL_MD_C
 | 
				
			||||||
 | 
					#define POLARSSL_MD5_C
 | 
				
			||||||
 | 
					#define POLARSSL_NET_C
 | 
				
			||||||
 | 
					#define POLARSSL_OID_C
 | 
				
			||||||
 | 
					#define POLARSSL_PK_C
 | 
				
			||||||
 | 
					#define POLARSSL_PK_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_RSA_C
 | 
				
			||||||
 | 
					#define POLARSSL_SHA1_C
 | 
				
			||||||
 | 
					#define POLARSSL_SHA256_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_CLI_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_SRV_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_TLS_C
 | 
				
			||||||
 | 
					#define POLARSSL_X509_CRL_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_X509_CRT_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_X509_USE_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* For test certificates */
 | 
				
			||||||
 | 
					#define POLARSSL_BASE64_C
 | 
				
			||||||
 | 
					#define POLARSSL_CERTS_C
 | 
				
			||||||
 | 
					#define POLARSSL_PEM_PARSE_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* For testing with compat.sh */
 | 
				
			||||||
 | 
					#define POLARSSL_FS_IO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* marker for activate-config.pl
 | 
				
			||||||
 | 
					 * \} name SECTION: PolarSSL modules */
 | 
				
			||||||
							
								
								
									
										33
									
								
								scripts/data_files/config-psk-rc4-tls1_0.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								scripts/data_files/config-psk-rc4-tls1_0.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Custom compact configuration for TLS 1.0 with PSK and RC4
 | 
				
			||||||
 | 
					 * Distinguishing features: no bignum, no PK, no X509.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Can be activated with:
 | 
				
			||||||
 | 
					 *      cd scripts
 | 
				
			||||||
 | 
					 *      ./activate-config.pl data_files/config-mini-tls1_1.h
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PolarSSL feature support */
 | 
				
			||||||
 | 
					#define POLARSSL_KEY_EXCHANGE_PSK_ENABLED
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_PROTO_TLS1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PolarSSL modules */
 | 
				
			||||||
 | 
					#define POLARSSL_AES_C
 | 
				
			||||||
 | 
					#define POLARSSL_ARC4_C
 | 
				
			||||||
 | 
					#define POLARSSL_ASN1_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_ASN1_WRITE_C
 | 
				
			||||||
 | 
					#define POLARSSL_CIPHER_C
 | 
				
			||||||
 | 
					#define POLARSSL_CTR_DRBG_C
 | 
				
			||||||
 | 
					#define POLARSSL_ENTROPY_C
 | 
				
			||||||
 | 
					#define POLARSSL_MD_C
 | 
				
			||||||
 | 
					#define POLARSSL_MD5_C
 | 
				
			||||||
 | 
					#define POLARSSL_NET_C
 | 
				
			||||||
 | 
					#define POLARSSL_OID_C
 | 
				
			||||||
 | 
					#define POLARSSL_SHA1_C
 | 
				
			||||||
 | 
					#define POLARSSL_SHA256_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_CLI_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_SRV_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_TLS_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* marker for activate-config.pl
 | 
				
			||||||
 | 
					 * \} name SECTION: PolarSSL modules */
 | 
				
			||||||
							
								
								
									
										54
									
								
								scripts/data_files/config-suite-b.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								scripts/data_files/config-suite-b.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,54 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Minimal configuration for TLS NSA Suite B Profile (RFC 6460)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Can be activated with:
 | 
				
			||||||
 | 
					 *      cd scripts
 | 
				
			||||||
 | 
					 *      ./activate-config.pl data_files/config-mini-tls1_1.h
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PolarSSL feature support */
 | 
				
			||||||
 | 
					#define POLARSSL_ECP_DP_SECP256R1_ENABLED
 | 
				
			||||||
 | 
					#define POLARSSL_ECP_DP_SECP384R1_ENABLED
 | 
				
			||||||
 | 
					#define POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_PROTO_TLS1_2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PolarSSL modules */
 | 
				
			||||||
 | 
					#define POLARSSL_AES_C
 | 
				
			||||||
 | 
					#define POLARSSL_ASN1_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_ASN1_WRITE_C
 | 
				
			||||||
 | 
					#define POLARSSL_BIGNUM_C
 | 
				
			||||||
 | 
					#define POLARSSL_CIPHER_C
 | 
				
			||||||
 | 
					#define POLARSSL_CTR_DRBG_C
 | 
				
			||||||
 | 
					#define POLARSSL_ECDH_C
 | 
				
			||||||
 | 
					#define POLARSSL_ECDSA_C
 | 
				
			||||||
 | 
					#define POLARSSL_ECP_C
 | 
				
			||||||
 | 
					#define POLARSSL_ENTROPY_C
 | 
				
			||||||
 | 
					#define POLARSSL_GCM_C
 | 
				
			||||||
 | 
					#define POLARSSL_MD_C
 | 
				
			||||||
 | 
					#define POLARSSL_NET_C
 | 
				
			||||||
 | 
					#define POLARSSL_OID_C
 | 
				
			||||||
 | 
					#define POLARSSL_PK_C
 | 
				
			||||||
 | 
					#define POLARSSL_PK_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_SHA256_C
 | 
				
			||||||
 | 
					#define POLARSSL_SHA512_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_CLI_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_SRV_C
 | 
				
			||||||
 | 
					#define POLARSSL_SSL_TLS_C
 | 
				
			||||||
 | 
					#define POLARSSL_X509_CRL_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_X509_CRT_PARSE_C
 | 
				
			||||||
 | 
					#define POLARSSL_X509_USE_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* For test certificates */
 | 
				
			||||||
 | 
					#define POLARSSL_BASE64_C
 | 
				
			||||||
 | 
					#define POLARSSL_CERTS_C
 | 
				
			||||||
 | 
					#define POLARSSL_PEM_PARSE_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* For testing with compat.sh */
 | 
				
			||||||
 | 
					#define POLARSSL_FS_IO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Temporary for current certificates */
 | 
				
			||||||
 | 
					#define POLARSSL_ECP_DP_SECP192R1_ENABLED
 | 
				
			||||||
 | 
					#define POLARSSL_SHA1_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* marker for activate-config.pl
 | 
				
			||||||
 | 
					 * \} name SECTION: PolarSSL modules */
 | 
				
			||||||
@ -1,5 +1,8 @@
 | 
				
			|||||||
#!/usr/bin/perl
 | 
					#!/usr/bin/perl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# create individual project files for example programs
 | 
				
			||||||
 | 
					# for VS6 and VS2010
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use warnings;
 | 
					use warnings;
 | 
				
			||||||
use strict;
 | 
					use strict;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user