First cut of renegotiation extension.
[openssl.git] / apps / rsa.c
index 60a33815276443949c23f32cf9b0d9ffe6213a09..930f1f038aba94e643d95d83ea03cd6ec043d8c0 100644 (file)
@@ -56,6 +56,7 @@
  * [including the GNU Public Licence.]
  */
 
+#include <openssl/opensslconf.h>
 #ifndef OPENSSL_NO_RSA
 #include <stdio.h>
 #include <stdlib.h>
@@ -68,6 +69,7 @@
 #include <openssl/evp.h>
 #include <openssl/x509.h>
 #include <openssl/pem.h>
+#include <openssl/bn.h>
 
 #undef PROG
 #define PROG   rsa_main
  * -des                - encrypt output if PEM format with DES in cbc mode
  * -des3       - encrypt output if PEM format
  * -idea       - encrypt output if PEM format
+ * -seed       - encrypt output if PEM format
  * -aes128     - encrypt output if PEM format
  * -aes192     - encrypt output if PEM format
  * -aes256     - encrypt output if PEM format
+ * -camellia128 - encrypt output if PEM format
+ * -camellia192 - encrypt output if PEM format
+ * -camellia256 - encrypt output if PEM format
  * -text       - print a text version
  * -modulus    - print the RSA key modulus
  * -check      - verify key consistency
@@ -104,7 +110,9 @@ int MAIN(int argc, char **argv)
        char *infile,*outfile,*prog;
        char *passargin = NULL, *passargout = NULL;
        char *passin = NULL, *passout = NULL;
+#ifndef OPENSSL_NO_ENGINE
        char *engine=NULL;
+#endif
        int modulus=0;
 
        apps_startup();
@@ -156,11 +164,13 @@ int MAIN(int argc, char **argv)
                        if (--argc < 1) goto bad;
                        passargout= *(++argv);
                        }
+#ifndef OPENSSL_NO_ENGINE
                else if (strcmp(*argv,"-engine") == 0)
                        {
                        if (--argc < 1) goto bad;
                        engine= *(++argv);
                        }
+#endif
                else if (strcmp(*argv,"-sgckey") == 0)
                        sgckey=1;
                else if (strcmp(*argv,"-pubin") == 0)
@@ -202,9 +212,16 @@ bad:
 #ifndef OPENSSL_NO_IDEA
                BIO_printf(bio_err," -idea           encrypt PEM output with cbc idea\n");
 #endif
+#ifndef OPENSSL_NO_SEED
+               BIO_printf(bio_err," -seed           encrypt PEM output with cbc seed\n");
+#endif
 #ifndef OPENSSL_NO_AES
                BIO_printf(bio_err," -aes128, -aes192, -aes256\n");
                BIO_printf(bio_err,"                 encrypt PEM output with cbc aes\n");
+#endif
+#ifndef OPENSSL_NO_CAMELLIA
+               BIO_printf(bio_err," -camellia128, -camellia192, -camellia256\n");
+               BIO_printf(bio_err,"                 encrypt PEM output with cbc camellia\n");
 #endif
                BIO_printf(bio_err," -text           print the key in text\n");
                BIO_printf(bio_err," -noout          don't print key out\n");
@@ -212,13 +229,17 @@ bad:
                BIO_printf(bio_err," -check          verify key consistency\n");
                BIO_printf(bio_err," -pubin          expect a public key in input file\n");
                BIO_printf(bio_err," -pubout         output a public key\n");
+#ifndef OPENSSL_NO_ENGINE
                BIO_printf(bio_err," -engine e       use engine e, possibly a hardware device.\n");
+#endif
                goto end;
                }
 
        ERR_load_crypto_strings();
 
+#ifndef OPENSSL_NO_ENGINE
         e = setup_engine(bio_err, engine, 0);
+#endif
 
        if(!app_passwd(bio_err, passargin, passargout, &passin, &passout)) {
                BIO_printf(bio_err, "Error getting passwords\n");
@@ -238,12 +259,12 @@ bad:
                if (pubin)
                        pkey = load_pubkey(bio_err, infile,
                                (informat == FORMAT_NETSCAPE && sgckey ?
-                                       FORMAT_IISSGC : informat),
+                                       FORMAT_IISSGC : informat), 1,
                                passin, e, "Public Key");
                else
                        pkey = load_key(bio_err, infile,
                                (informat == FORMAT_NETSCAPE && sgckey ?
-                                       FORMAT_IISSGC : informat),
+                                       FORMAT_IISSGC : informat), 1,
                                passin, e, "Private Key");
 
                if (pkey != NULL)
@@ -299,7 +320,7 @@ bad:
                        BIO_printf(out,"RSA key ok\n");
                else if (r == 0)
                        {
-                       long err;
+                       unsigned long err;
 
                        while ((err = ERR_peek_error()) != 0 &&
                                ERR_GET_LIB(err) == ERR_LIB_RSA &&
@@ -369,7 +390,7 @@ end:
        if(passin) OPENSSL_free(passin);
        if(passout) OPENSSL_free(passout);
        apps_shutdown();
-       EXIT(ret);
+       OPENSSL_EXIT(ret);
        }
 #else /* !OPENSSL_NO_RSA */