return -1;
}
-static const char* get_password(common_info_st * cinfo, unsigned int *flags)
+static const char* get_password(common_info_st * cinfo, unsigned int *flags, int confirm)
{
if (cinfo->null_password)
{
return cinfo->password;
}
else
- return get_pass ();
+ {
+ if (confirm)
+ return get_confirmed_pass (true);
+ else
+ return get_pass ();
+ }
}
unsigned int flags = 0;
const char *pass;
- pass = get_password(cinfo, &flags);
+ pass = get_password(cinfo, &flags, 0);
flags |= cipher_to_flags (cinfo->pkcs_cipher);
size = buffer_size;
if (ret == GNUTLS_E_DECRYPTION_FAILED)
{
fprintf(stderr, "Encrypted structure detected...\n");
- pass = get_password(cinfo, &flags);
+ pass = get_password(cinfo, &flags, 0);
ret = gnutls_x509_privkey_import2 (key, &pem,
incert_format, pass, flags);
key = load_x509_private_key (1, cinfo);
- password = get_password(cinfo, &flags);
+ password = get_password(cinfo, &flags, 1);
flags |= cipher_to_flags (cinfo->pkcs_cipher);
if (result < 0)
error (EXIT_FAILURE, 0, "pkcs12_init: %s", gnutls_strerror (result));
- pass = get_password(cinfo, &flags);
+ pass = get_password(cinfo, &flags, 1);
flags |= cipher_to_flags (cinfo->pkcs_cipher);
for (i = 0; i < ncrts; i++)
if (result < 0)
error (EXIT_FAILURE, 0, "p12_import: %s", gnutls_strerror (result));
- pass = get_password(cinfo, NULL);
+ pass = get_password(cinfo, NULL, 0);
result = gnutls_pkcs12_verify_mac (pkcs12, pass);
if (result < 0)