Fix some of the command line password stuff. New function
[openssl.git] / crypto / evp / evp.h
index b38ea6e999568cb38f3d554b174a3f90689617d7..a4ed6c715dd89a7782d20a13c0fc36c17ea35b26 100644 (file)
@@ -110,6 +110,8 @@ extern "C" {
 #define EVP_MAX_IV_LENGTH              8
 
 #define PKCS5_SALT_LEN                 8
+/* Default PKCS#5 iteration count */
+#define PKCS5_DEFAULT_ITER             2048
 
 #ifndef NO_RSA
 #include <openssl/rsa.h>
@@ -355,8 +357,8 @@ typedef struct evp_cipher_ctx_st
                struct
                        {
                        des_key_schedule ks;/* key schedule */
-                       C_Block inw;
-                       C_Block outw;
+                       des_cblock inw;
+                       des_cblock outw;
                        } desx_cbc;
                struct
                        {
@@ -519,15 +521,14 @@ void      EVP_EncodeInit(EVP_ENCODE_CTX *ctx);
 void   EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx,unsigned char *out,
                int *outl,unsigned char *in,int inl);
 void   EVP_EncodeFinal(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl);
-int    EVP_EncodeBlock(unsigned char *t, unsigned char *f, int n);
+int    EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n);
 
 void   EVP_DecodeInit(EVP_ENCODE_CTX *ctx);
 int    EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx,unsigned char *out,int *outl,
                unsigned char *in, int inl);
 int    EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned
                char *out, int *outl);
-int    EVP_DecodeBlock(unsigned char *t, unsigned
-               char *f, int n);
+int    EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n);
 
 void   ERR_load_EVP_strings(void );
 
@@ -611,6 +612,18 @@ int                EVP_PKEY_type(int type);
 int            EVP_PKEY_bits(EVP_PKEY *pkey);
 int            EVP_PKEY_size(EVP_PKEY *pkey);
 int            EVP_PKEY_assign(EVP_PKEY *pkey,int type,char *key);
+#ifndef NO_RSA
+int            EVP_PKEY_rset_RSA(EVP_PKEY *pkey,RSA *key);
+RSA *          EVP_PKEY_rget_RSA(EVP_PKEY *pkey);
+#endif
+#ifndef NO_DSA
+int            EVP_PKEY_rset_DSA(EVP_PKEY *pkey,DSA *key);
+DSA *          EVP_PKEY_rget_DSA(EVP_PKEY *pkey);
+#endif
+#ifndef NO_DH
+int            EVP_PKEY_rset_DH(EVP_PKEY *pkey,DH *key);
+DH *           EVP_PKEY_rget_DH(EVP_PKEY *pkey);
+#endif
 EVP_PKEY *     EVP_PKEY_new(void);
 void           EVP_PKEY_free(EVP_PKEY *pkey);
 EVP_PKEY *     d2i_PublicKey(int type,EVP_PKEY **a, unsigned char **pp,
@@ -619,6 +632,8 @@ int         i2d_PublicKey(EVP_PKEY *a, unsigned char **pp);
 
 EVP_PKEY *     d2i_PrivateKey(int type,EVP_PKEY **a, unsigned char **pp,
                        long length);
+EVP_PKEY *     d2i_AutoPrivateKey(EVP_PKEY **a, unsigned char **pp,
+                       long length);
 int            i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp);
 
 int EVP_PKEY_copy_parameters(EVP_PKEY *to,EVP_PKEY *from);
@@ -641,8 +656,8 @@ int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
                         ASN1_TYPE *param, EVP_CIPHER *cipher, EVP_MD *md,
                         int en_de);
 int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen,
-                               unsigned char *salt, int saltlen, int iter,
-                                        int keylen, unsigned char *out);
+                          unsigned char *salt, int saltlen, int iter,
+                          int keylen, unsigned char *out);
 int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
                         ASN1_TYPE *param, EVP_CIPHER *cipher, EVP_MD *md,
                         int en_de);
@@ -676,6 +691,9 @@ void EVP_PBE_cleanup(void);
 #define EVP_F_EVP_PKEY_DECRYPT                          104
 #define EVP_F_EVP_PKEY_ENCRYPT                          105
 #define EVP_F_EVP_PKEY_NEW                              106
+#define EVP_F_EVP_PKEY_RGET_DH                          119
+#define EVP_F_EVP_PKEY_RGET_DSA                                 120
+#define EVP_F_EVP_PKEY_RGET_RSA                                 121
 #define EVP_F_EVP_SIGNFINAL                             107
 #define EVP_F_EVP_VERIFYFINAL                           108
 #define EVP_F_PKCS5_PBE_KEYIVGEN                        117
@@ -691,6 +709,9 @@ void EVP_PBE_cleanup(void);
 #define EVP_R_DIFFERENT_KEY_TYPES                       101
 #define EVP_R_ENCODE_ERROR                              115
 #define EVP_R_EVP_PBE_CIPHERINIT_ERROR                  119
+#define EVP_R_EXPECTING_AN_RSA_KEY                      127
+#define EVP_R_EXPECTING_A_DH_KEY                        128
+#define EVP_R_EXPECTING_A_DSA_KEY                       129
 #define EVP_R_INPUT_NOT_INITIALIZED                     111
 #define EVP_R_IV_TOO_LARGE                              102
 #define EVP_R_KEYGEN_FAILURE                            120