Config code updates.
[openssl.git] / apps / enc.c
index 49cae7579c391a938e08e55646e100fd8506d398..d01060f226b8cdd6fafff346e1416cddd330b1b5 100644 (file)
@@ -67,7 +67,6 @@
 #include <openssl/x509.h>
 #include <openssl/rand.h>
 #include <openssl/pem.h>
-#include <openssl/engine.h>
 #include <ctype.h>
 
 int set_hex(char *in,unsigned char *out,int size);
@@ -128,6 +127,9 @@ int MAIN(int argc, char **argv)
                if ((bio_err=BIO_new(BIO_s_file())) != NULL)
                        BIO_set_fp(bio_err,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
 
+       if (!load_config(bio_err, NULL))
+               goto end;
+
        /* first check the program name */
        program_name(argv[0],pname,PROG_NAME_SIZE);
        if (strcmp(pname,"base64") == 0)
@@ -488,6 +490,14 @@ bad:
                        BIO_printf(bio_err,"invalid hex iv value\n");
                        goto end;
                        }
+               if ((hiv == NULL) && (str == NULL))
+                       {
+                       /* No IV was explicitly set and no IV was generated
+                        * during EVP_BytesToKey. Hence the IV is undefined,
+                        * making correct decryption impossible. */
+                       BIO_printf(bio_err, "iv undefined\n");
+                       goto end;
+                       }
                if ((hkey != NULL) && !set_hex(hkey,key,sizeof key))
                        {
                        BIO_printf(bio_err,"invalid hex key value\n");