Submitted by: David Woodhouse <dwmw2@infradead.org>

Pass passphrase minimum length down to UI.
This commit is contained in:
Dr. Stephen Henson 2010-03-27 19:27:51 +00:00
parent 348620c7ac
commit 9caf25d144
4 changed files with 10 additions and 3 deletions

View File

@ -522,6 +522,7 @@ int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
int EVP_DigestFinal(EVP_MD_CTX *ctx,unsigned char *md,unsigned int *s);
int EVP_read_pw_string(char *buf,int length,const char *prompt,int verify);
int EVP_read_pw_string_min(char *buf,int minlen,int maxlen,const char *prompt,int verify);
void EVP_set_pw_prompt(const char *prompt);
char * EVP_get_pw_prompt(void);

View File

@ -89,6 +89,11 @@ char *EVP_get_pw_prompt(void)
* 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)
{
return EVP_read_pw_string_min(buf, 0, len, prompt, verify);
}
int EVP_read_pw_string_min(char *buf, int min, int len, const char *prompt, int verify)
{
int ret;
char buff[BUFSIZ];
@ -97,10 +102,10 @@ int EVP_read_pw_string(char *buf, int len, const char *prompt, int verify)
if ((prompt == NULL) && (prompt_string[0] != '\0'))
prompt=prompt_string;
ui = UI_new();
UI_add_input_string(ui,prompt,0,buf,0,(len>=BUFSIZ)?BUFSIZ-1:len);
UI_add_input_string(ui,prompt,0,buf,min,(len>=BUFSIZ)?BUFSIZ-1:len);
if (verify)
UI_add_verify_string(ui,prompt,0,
buff,0,(len>=BUFSIZ)?BUFSIZ-1:len,buf);
buff,min,(len>=BUFSIZ)?BUFSIZ-1:len,buf);
ret = UI_process(ui);
UI_free(ui);
OPENSSL_cleanse(buff,BUFSIZ);

View File

@ -105,7 +105,7 @@ int PEM_def_callback(char *buf, int num, int w, void *key)
for (;;)
{
i=EVP_read_pw_string(buf,num,prompt,w);
i=EVP_read_pw_string_min(buf,MIN_LENGTH,num,prompt,w);
if (i != 0)
{
PEMerr(PEM_F_PEM_DEF_CALLBACK,PEM_R_PROBLEMS_GETTING_PASSWORD);

View File

@ -4175,3 +4175,4 @@ X509_subject_name_hash_old 4548 EXIST::FUNCTION:MD5
EVP_CIPHER_CTX_copy 4549 EXIST::FUNCTION:
UI_method_get_prompt_constructor 4550 EXIST::FUNCTION:
UI_method_set_prompt_constructor 4551 EXIST::FUNCTION:
EVP_read_pw_string_min 4552 EXIST::FUNCTION: