Add -pass argument to 'enc'.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 17 Feb 2000 00:41:43 +0000 (00:41 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 17 Feb 2000 00:41:43 +0000 (00:41 +0000)
Fix to make Win32 compile work again.

apps/enc.c
doc/apps/enc.pod
util/libeay.num
util/mkdef.pl

index 387cfe2..6531c58 100644 (file)
@@ -92,7 +92,7 @@ int MAIN(int argc, char **argv)
        int ret=1,inl;
        unsigned char key[24],iv[MD5_DIGEST_LENGTH];
        unsigned char salt[PKCS5_SALT_LEN];
-       char *str=NULL;
+       char *str=NULL, *passarg = NULL, *pass = NULL;
        char *hkey=NULL,*hiv=NULL,*hsalt = NULL;
        int enc=1,printkey=0,i,base64=0;
        int debug=0,olb64=0,nosalt=0;
@@ -136,6 +136,11 @@ int MAIN(int argc, char **argv)
                        if (--argc < 1) goto bad;
                        outf= *(++argv);
                        }
+               else if (strcmp(*argv,"-pass") == 0)
+                       {
+                       if (--argc < 1) goto bad;
+                       passarg= *(++argv);
+                       }
                else if (strcmp(*argv,"-d") == 0)
                        enc=0;
                else if (strcmp(*argv,"-p") == 0)
@@ -226,7 +231,8 @@ int MAIN(int argc, char **argv)
 bad:
                        BIO_printf(bio_err,"options are\n");
                        BIO_printf(bio_err,"%-14s input file\n","-in <file>");
-                       BIO_printf(bio_err,"%-14s output fileencrypt\n","-out <file>");
+                       BIO_printf(bio_err,"%-14s output file\n","-out <file>");
+                       BIO_printf(bio_err,"%-14s pass phrase source\n","-pass <arg>");
                        BIO_printf(bio_err,"%-14s encrypt\n","-e");
                        BIO_printf(bio_err,"%-14s decrypt\n","-d");
                        BIO_printf(bio_err,"%-14s base64 encode/decode, depending on encryption flag\n","-a/-base64");
@@ -371,6 +377,14 @@ bad:
                        }
                }
 
+       if(!str && passarg) {
+               if(!app_passwd(bio_err, passarg, NULL, &pass, NULL)) {
+                       BIO_printf(bio_err, "Error getting password\n");
+                       goto end;
+               }
+               str = pass;
+       }
+
        if ((str == NULL) && (cipher != NULL) && (hkey == NULL))
                {
                for (;;)
@@ -573,6 +587,7 @@ end:
        if (out != NULL) BIO_free(out);
        if (benc != NULL) BIO_free(benc);
        if (b64 != NULL) BIO_free(b64);
+       if(pass) Free(pass);
        EXIT(ret);
        }
 
index 349fca0..e436ccc 100644 (file)
@@ -9,6 +9,7 @@ enc - symmetric cipher routines
 B<openssl enc -ciphername>
 [B<-in filename>]
 [B<-out filename>]
+[B<-pass arg>]
 [B<-e>]
 [B<-d>]
 [B<-a>]
@@ -41,6 +42,11 @@ the input filename, standard input by default.
 
 the output filename, standard output by default.
 
+=item B<-pass arg>
+
+the password source. For more information about the format of B<arg>
+see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.
+
 =item B<-salt>
 
 use a salt in the key derivation routines. This option should B<ALWAYS>
@@ -73,11 +79,14 @@ if the B<-a> option is set then base64 process the data on one line.
 
 =item B<-k password>
 
-the password to derive the key from.
+the password to derive the key from. This is for compatibility with previous
+versions of OpenSSL. Superseded by the B<-pass> argument.
 
 =item B<-kfile filename>
 
-read the password to derive the key from the first line of B<filename>
+read the password to derive the key from the first line of B<filename>.
+This is for computability with previous versions of OpenSSL. Superseded by
+the B<-pass> argument.
 
 =item B<-S salt>
 
index b70f65c..9074217 100755 (executable)
@@ -2221,3 +2221,4 @@ ASN1_STRING_TABLE_add                   2245
 CRYPTO_dbg_get_options                  2246
 AUTHORITY_INFO_ACCESS_new               2247
 CRYPTO_get_mem_debug_options            2248
+des_crypt                               2249
index 06b9426..d288b56 100755 (executable)
@@ -377,7 +377,6 @@ sub do_defs
        # Prune the returned functions
 
         delete $funcs{"SSL_add_dir_cert_subjects_to_stack"};
-        delete $funcs{"des_crypt"};
         delete $funcs{"RSA_PKCS1_RSAref"} unless $rsaref;
 
        if($W32) {