Add Rijndael as things to look through.
[oweals/openssl.git] / apps / apps.c
index 0190d71ee2e68b29af6c8f1b1850bdff2fc3515f..a04f871d0aa0fb09b28e97c60170b49bd011ba5c 100644 (file)
@@ -553,7 +553,7 @@ end:
        return(x);
        }
 
-EVP_PKEY *load_key(BIO *err, char *file, int format, char *pass)
+EVP_PKEY *load_key(BIO *err, char *file, int format, char *pass, ENGINE *e)
        {
        BIO *key=NULL;
        EVP_PKEY *pkey=NULL;
@@ -563,6 +563,14 @@ EVP_PKEY *load_key(BIO *err, char *file, int format, char *pass)
                BIO_printf(err,"no keyfile specified\n");
                goto end;
                }
+       if (format == FORMAT_ENGINE)
+               {
+               if (!e)
+                       BIO_printf(bio_err,"no engine specified\n");
+               else
+                       pkey = ENGINE_load_private_key(e, file, pass);
+               goto end;
+               }
        key=BIO_new(BIO_s_file());
        if (key == NULL)
                {
@@ -602,7 +610,7 @@ EVP_PKEY *load_key(BIO *err, char *file, int format, char *pass)
        return(pkey);
        }
 
-EVP_PKEY *load_pubkey(BIO *err, char *file, int format)
+EVP_PKEY *load_pubkey(BIO *err, char *file, int format, ENGINE *e)
        {
        BIO *key=NULL;
        EVP_PKEY *pkey=NULL;
@@ -612,6 +620,14 @@ EVP_PKEY *load_pubkey(BIO *err, char *file, int format)
                BIO_printf(err,"no keyfile specified\n");
                goto end;
                }
+       if (format == FORMAT_ENGINE)
+               {
+               if (!e)
+                       BIO_printf(bio_err,"no engine specified\n");
+               else
+                       pkey = ENGINE_load_public_key(e, file, NULL);
+               goto end;
+               }
        key=BIO_new(BIO_s_file());
        if (key == NULL)
                {