Add custom configurations with activation script
This commit is contained in:
parent
fe28646f72
commit
684e9dc52e
5 changed files with 208 additions and 0 deletions
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…
Reference in a new issue