From: Nikos Mavrogiannopoulos Date: Mon, 17 Nov 2003 15:40:07 +0000 (+0000) Subject: some changes in password reading. X-Git-Tag: gnutls_0_9_99~33 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c103ed6bd8e28bb595dc68535ee2abbc3aa5712b;p=thirdparty%2Fgnutls.git some changes in password reading. --- diff --git a/src/certtool.c b/src/certtool.c index b8681bac3d..0cf3f237f7 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -134,19 +134,26 @@ static char input[128]; static const char* read_pass( const char* input_str) { -#ifdef _WIN32 static char input[128]; +const char* pass; + + if (info.pass) return info.pass; + +#ifdef _WIN32 fputs( input_str, stderr); fgets( input, sizeof(input), stdin); input[strlen(input)-1] = 0; - if (strlen(input)==0) return NULL; + if (strlen(input)==0 || input[0]=='\n') return NULL; return input; #else - return getpass(input_str); + pass = getpass(input_str); + if (pass == NULL || strlen(pass)==0 || pass[0]=='\n') return NULL; + + return pass; #endif } @@ -227,13 +234,14 @@ size_t size; } } else { unsigned int flags; + const char* pass; if (info.export) flags = GNUTLS_PKCS_USE_PKCS12_RC2_40; else flags = GNUTLS_PKCS_USE_PKCS12_3DES; - if (info.pass == NULL) flags = GNUTLS_PKCS_PLAIN; + if ((pass=read_pass("Enter password: ")) == NULL) flags = GNUTLS_PKCS_PLAIN; size = sizeof(buffer); - ret = gnutls_x509_privkey_export_pkcs8( key, out_cert_format, info.pass, flags, buffer, &size); + ret = gnutls_x509_privkey_export_pkcs8( key, out_cert_format, pass, flags, buffer, &size); if (ret < 0) { fprintf(stderr, "privkey_export_pkcs8: %s\n", gnutls_strerror(ret)); exit(1); @@ -628,7 +636,8 @@ static inline int known_oid( const char* oid) void certificate_info( void) { gnutls_x509_crt crt; - int ret, i, indx, j; + int ret; + unsigned int i, indx, j; unsigned int critical, key_usage; time_t tim; gnutls_datum pem; @@ -851,7 +860,8 @@ void certificate_info( void) static void print_certificate_info( gnutls_x509_crt crt) { - int ret, i; + int ret; + unsigned int i; unsigned int critical, key_usage; time_t tim; char serial[40]; @@ -970,16 +980,16 @@ static void print_certificate_info( gnutls_x509_crt crt) void crl_info(void) { gnutls_x509_crl crl; - int ret, i, rc; + int ret, rc; size_t size; time_t tim; + unsigned int i; gnutls_datum pem; unsigned char serial[40]; size_t serial_size = sizeof(serial), dn_size; char printable[256]; - char *print; + char *print, dn[256]; const char* cprint; - char dn[256]; size = fread( buffer, 1, sizeof(buffer)-1, infile); buffer[size] = 0; @@ -1029,7 +1039,7 @@ void crl_info(void) rc = gnutls_x509_crl_get_crt_count( crl); fprintf(outfile, "Revoked certificates: %d\n", rc); - for (i=0;i