config root man

Current Path : /home/usr.opt/mysql57/mysql-test/suite/auth_sec/t/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //home/usr.opt/mysql57/mysql-test/suite/auth_sec/t/mysql_ssl_rsa_setup.test

--source include/have_openssl_binary.inc
--source include/not_embedded.inc
# Save the initial number of concurrent sessions
--source include/count_sessions.inc


#------------------------------------------------------------------------------


--echo # Test cases for mysql_ssl_rsa_setup binary
--echo # Setup
let DATADIR_LOCATION=$MYSQLTEST_VARDIR/mysqld.1/data;
#We let mysql_ssl_rsa_setup write to $wl7706_log
let wl7706_log= $MYSQLTEST_VARDIR/log/wl7706_log.txt;
let SEARCH_FILE= $wl7706_log;

# remove files
--error 0,1
--remove_file $wl7706_log
--error 0,1
--remove_file $DATADIR_LOCATION/ca.pem
--error 0,1
--remove_file $DATADIR_LOCATION/ca-key.pem
--error 0,1
--remove_file $DATADIR_LOCATION/server-cert.pem
--error 0,1
--remove_file $DATADIR_LOCATION/server-key.pem
--error 0,1
--remove_file $DATADIR_LOCATION/client-cert.pem
--error 0,1
--remove_file $DATADIR_LOCATION/client-key.pem
--error 0,1
--remove_file $DATADIR_LOCATION/private_key.pem
--error 0,1
--remove_file $DATADIR_LOCATION/public_key.pem


#------------------------------------------------------------------------------


--echo # Case 1 : Generate Files
--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION > $wl7706_log
--file_exists $DATADIR_LOCATION/ca.pem
--file_exists $DATADIR_LOCATION/ca-key.pem
--file_exists $DATADIR_LOCATION/server-cert.pem
--file_exists $DATADIR_LOCATION/server-key.pem
--file_exists $DATADIR_LOCATION/client-cert.pem
--file_exists $DATADIR_LOCATION/client-key.pem
--file_exists $DATADIR_LOCATION/private_key.pem
--file_exists $DATADIR_LOCATION/public_key.pem

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 2 : Files are present : Generation should be skipped
--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --verbose > $wl7706_log
let SEARCH_PATTERN= Certificate files are present in given dir. Skipping generation.;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= RSA key files are present in given dir. Skipping generation.;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 3 : Certificate files are not present but RSA key files are present.
--echo #          Only SSL certificates and keys should be generated.
--remove_file $DATADIR_LOCATION/ca.pem
--remove_file $DATADIR_LOCATION/ca-key.pem
--remove_file $DATADIR_LOCATION/server-cert.pem
--remove_file $DATADIR_LOCATION/server-key.pem
--remove_file $DATADIR_LOCATION/client-cert.pem
--remove_file $DATADIR_LOCATION/client-key.pem

--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --verbose > $wl7706_log
--file_exists $DATADIR_LOCATION/ca.pem
--file_exists $DATADIR_LOCATION/ca-key.pem
--file_exists $DATADIR_LOCATION/server-cert.pem
--file_exists $DATADIR_LOCATION/server-key.pem
--file_exists $DATADIR_LOCATION/client-cert.pem
--file_exists $DATADIR_LOCATION/client-key.pem

let SEARCH_PATTERN= Executing : openssl x509;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= Executing : openssl req;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= RSA key files are present in given dir. Skipping generation.;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 4 : Certificate files are present but RSA key files are not present.
--echo #          Only RSA key files should be generated.
--remove_file $DATADIR_LOCATION/private_key.pem
--remove_file $DATADIR_LOCATION/public_key.pem

--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --verbose > $wl7706_log
--file_exists $DATADIR_LOCATION/private_key.pem
--file_exists $DATADIR_LOCATION/public_key.pem

let SEARCH_PATTERN= Certificate files are present in given dir. Skipping generation.;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= Executing : openssl genrsa;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 5 : Remove only client-cert.pem and client-key.pem.
--echo #          Certificate files should not be generated.
--remove_file $DATADIR_LOCATION/client-cert.pem
--remove_file $DATADIR_LOCATION/client-key.pem

--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --verbose > $wl7706_log
let SEARCH_PATTERN= Certificate files are present in given dir. Skipping generation.;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 6 : Remove server-key.pem and public_key.pem.
--echo #          Certificates and RSA keys should not be generated.
--remove_file $DATADIR_LOCATION/server-key.pem
--remove_file $DATADIR_LOCATION/public_key.pem

--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --verbose > $wl7706_log
let SEARCH_PATTERN= Certificate files are present in given dir. Skipping generation.;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= RSA key files are present in given dir. Skipping generation.;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 7 : Provide Invalid directory

--error 1
--exec $MYSQL_SSL_RSA_SETUP --datadir=$MYSQLTEST_VARDIR/doesnotexist --verbose 2> $wl7706_log
let SEARCH_PATTERN= Failed to access directory pointed by;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 8 : Custom suffix of invalid length
--remove_file $DATADIR_LOCATION/ca.pem
--remove_file $DATADIR_LOCATION/ca-key.pem
--remove_file $DATADIR_LOCATION/server-cert.pem
--remove_file $DATADIR_LOCATION/private_key.pem

--error 1
--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --suffix=string_greater_than_17_characters 2> $wl7706_log
let SEARCH_PATTERN= Maximum number of characters allowed as the value for --suffix are 17;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 9 : Custom suffix of valid length
--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --suffix=wl7706_test --verbose > $wl7706_log
let SEARCH_PATTERN= MySQL_Server_wl7706_test_Auto_Generated_CA_Certificate;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= MySQL_Server_wl7706_test_Auto_Generated_Server_Certificate;
--source include/search_pattern_in_file.inc
let SEARCH_PATTERN= MySQL_Server_wl7706_test_Auto_Generated_Server_Certificate;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 10 : Custom suffix with invalid characters

--remove_file $DATADIR_LOCATION/ca.pem
--remove_file $DATADIR_LOCATION/ca-key.pem
--remove_file $DATADIR_LOCATION/server-cert.pem
--remove_file $DATADIR_LOCATION/private_key.pem

--error 1
--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --suffix=ab@c!de-gh 2> $wl7706_log
let SEARCH_PATTERN=Invalid string;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 11 : Help and Version information

--exec $MYSQL_SSL_RSA_SETUP --help > $wl7706_log
let SEARCH_PATTERN=MySQL SSL Certificate and RSA Key Generation Utility;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log

--exec $MYSQL_SSL_RSA_SETUP -? > $wl7706_log
let SEARCH_PATTERN=MySQL SSL Certificate and RSA Key Generation Utility;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log

--exec $MYSQL_SSL_RSA_SETUP --version > $wl7706_log
let SEARCH_PATTERN=Version :;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log

--exec $MYSQL_SSL_RSA_SETUP -V > $wl7706_log
let SEARCH_PATTERN=Version :;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo # Case 12 : Very long path

let $LONG_PATH=`SELECT REPEAT('/asdfg', 100)`;

--error 1
--exec $MYSQL_SSL_RSA_SETUP --datadir=$LONG_PATH 2> $wl7706_log
let SEARCH_PATTERN=Dir path is too long;
--source include/search_pattern_in_file.inc

--remove_file $wl7706_log


#------------------------------------------------------------------------------


--echo #
--echo # Bug#21087116 : MYSQL_SSL_RSA_SETUP CREATES CLIENT-CERT.PEM WITH INCORRECT CN
--echo #

--remove_file $DATADIR_LOCATION/server-key.pem
--remove_file $DATADIR_LOCATION/client-cert.pem
--remove_file $DATADIR_LOCATION/client-key.pem
--remove_file $DATADIR_LOCATION/public_key.pem

--exec $MYSQL_SSL_RSA_SETUP --datadir=$DATADIR_LOCATION --verbose > $wl7706_log

--echo # CN of CA certificate should be MySQL_Server_.*_Auto_Generated_CA_Certificate
let SEARCH_PATTERN= MySQL_Server_.*_Auto_Generated_CA_Certificate;
--source include/search_pattern_in_file.inc

--echo # CN of Server certificate should be MySQL_Server_.*_Auto_Generated_Server_Certificate
let SEARCH_PATTERN= MySQL_Server_.*_Auto_Generated_Server_Certificate;
--source include/search_pattern_in_file.inc

--echo # CN of Client certificate should be MySQL_Server_.*_Auto_Generated_Client_Certificate
let SEARCH_PATTERN= MySQL_Server_.*_Auto_Generated_Client_Certificate;
--source include/search_pattern_in_file.inc


#------------------------------------------------------------------------------

--echo # Global Cleanup
--remove_file $wl7706_log
--remove_file $DATADIR_LOCATION/ca.pem
--remove_file $DATADIR_LOCATION/ca-key.pem
--remove_file $DATADIR_LOCATION/server-cert.pem
--remove_file $DATADIR_LOCATION/server-key.pem
--remove_file $DATADIR_LOCATION/client-cert.pem
--remove_file $DATADIR_LOCATION/client-key.pem
--remove_file $DATADIR_LOCATION/private_key.pem
--remove_file $DATADIR_LOCATION/public_key.pem

# Wait till all disconnects are completed
--source include/wait_until_count_sessions.inc


#------------------------------------------------------------------------------


--echo #
--echo # Bug#21025377: CAN'T CONNECT TO SSL ENABLED SERVER FIRST 30 SEC AFTER
--echo # INITIAL STARTUP
--echo #

let mysqladmin_log=$MYSQLTEST_VARDIR/log/mysqladmin_log.txt;
--error 0, 1
--remove_file $mysqladmin_log
let CADIR_LOCATION=$MYSQLTEST_VARDIR/tmp/certs;

--error 0, 1
--rmdir $CADIR_LOCATION
--mkdir $CADIR_LOCATION
--exec $MYSQL_SSL_RSA_SETUP --datadir=$CADIR_LOCATION  > /dev/null 2>&1

--echo # Restart the server

let server_log= $MYSQLTEST_VARDIR/log/mysqld.1.err;
let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
--exec echo "wait" > $restart_file
--shutdown_server 10
--source include/wait_until_disconnected.inc

--remove_file $server_log

--exec echo "restart: --ssl-capath=$CADIR_LOCATION --ssl-ca=$CADIR_LOCATION/ca.pem --ssl-cert=$CADIR_LOCATION/server-cert.pem --ssl-key=$CADIR_LOCATION/server-key.pem" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
--disable_reconnect
--echo # Restart completed.

--exec $MYSQLADMIN --no-defaults --host=127.0.0.1 -P $MASTER_MYPORT --user=unknown_mysql_user ping --ssl-mode=REQUIRED > $mysqladmin_log 2>&1

--perl
  my $file= $ENV{'mysqladmin_log'};
  my $pattern= "SSL connection error";
  open(FILE, "$file") or die("unable to open $file: $!\n");
  my $count = 0;
  while (<FILE>) {
    if ($_ =~ m/$pattern/) {
      $count++;
      break;
    }
  }
  if ($count == 0){
    print "No ssl errors found after running mysql server with newely created certs.\n";
  } else {
    print "test failed.\n";
  }
  close(file);
EOF

# cleanup

--remove_file $mysqladmin_log
--remove_file $CADIR_LOCATION/ca.pem
--remove_file $CADIR_LOCATION/ca-key.pem
--remove_file $CADIR_LOCATION/server-cert.pem
--remove_file $CADIR_LOCATION/server-key.pem
--remove_file $CADIR_LOCATION/client-cert.pem
--remove_file $CADIR_LOCATION/client-key.pem
--remove_file $CADIR_LOCATION/private_key.pem
--remove_file $CADIR_LOCATION/public_key.pem

#------------------------------------------------------------------------------

Man Man