#include <stdio.h>
#include "cryptlib.h"
-#include "x509.h"
-#include "objects.h"
-#include "evp.h"
+#include <openssl/x509.h>
+#include <openssl/objects.h>
+#include <openssl/evp.h>
/* should be init to zeros. */
static char prompt_string[80];
-void EVP_set_pw_prompt(prompt)
-char *prompt;
+void EVP_set_pw_prompt(char *prompt)
{
if (prompt == NULL)
prompt_string[0]='\0';
strncpy(prompt_string,prompt,79);
}
-char *EVP_get_pw_prompt()
+char *EVP_get_pw_prompt(void)
{
if (prompt_string[0] == '\0')
return(NULL);
return(prompt_string);
}
-#ifdef NO_DES
-int des_read_pw_string(char *buf,int len,char *prompt,int verify);
-#endif
-
-int EVP_read_pw_string(buf,len,prompt,verify)
-char *buf;
-int len;
-char *prompt;
-int verify;
+/* For historical reasons, the standard function for reading passwords is
+ * in the DES library -- if someone ever wants to disable DES,
+ * this function will fail */
+int EVP_read_pw_string(char *buf, int len, const char *prompt, int verify)
{
+#ifndef NO_DES
if ((prompt == NULL) && (prompt_string[0] != '\0'))
prompt=prompt_string;
return(des_read_pw_string(buf,len,prompt,verify));
+#else
+ return -1;
+#endif
}
-int EVP_BytesToKey(type,md,salt,data,datal,count,key,iv)
-EVP_CIPHER *type;
-EVP_MD *md;
-unsigned char *salt;
-unsigned char *data;
-int datal;
-int count;
-unsigned char *key;
-unsigned char *iv;
+int EVP_BytesToKey(const EVP_CIPHER *type, EVP_MD *md, unsigned char *salt,
+ unsigned char *data, int datal, int count, unsigned char *key,
+ unsigned char *iv)
{
EVP_MD_CTX c;
unsigned char md_buf[EVP_MAX_MD_SIZE];
EVP_DigestUpdate(&c,&(md_buf[0]),mds);
EVP_DigestUpdate(&c,data,datal);
if (salt != NULL)
- EVP_DigestUpdate(&c,salt,8);
+ EVP_DigestUpdate(&c,salt,PKCS5_SALT_LEN);
EVP_DigestFinal(&c,&(md_buf[0]),&mds);
for (i=1; i<(unsigned int)count; i++)