aboutsummaryrefslogtreecommitdiffstats
path: root/g10/pkclist.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/pkclist.c')
-rw-r--r--g10/pkclist.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/g10/pkclist.c b/g10/pkclist.c
index f3b247850..5acd26c20 100644
--- a/g10/pkclist.c
+++ b/g10/pkclist.c
@@ -1102,8 +1102,12 @@ select_algo_from_prefs( PK_LIST pk_list, int preftype, void *hint )
any = 0;
/* If we have personal prefs set, use them instead of the last key */
- if(opt.personal_prefs)
- prefs=opt.personal_prefs;
+ if(preftype==PREFTYPE_SYM && opt.personal_cipher_prefs)
+ prefs=opt.personal_cipher_prefs;
+ else if(preftype==PREFTYPE_HASH && opt.personal_digest_prefs)
+ prefs=opt.personal_digest_prefs;
+ else if(preftype==PREFTYPE_ZIP && opt.personal_compress_prefs)
+ prefs=opt.personal_compress_prefs;
if( prefs ) {
for(j=0; prefs[j].type; j++ ) {
@@ -1151,10 +1155,10 @@ select_algo_from_prefs( PK_LIST pk_list, int preftype, void *hint )
{
i=DIGEST_ALGO_SHA1;
- if(opt.personal_prefs)
+ if(opt.personal_digest_prefs)
for(j=0; prefs[j].type; j++ )
- if(opt.personal_prefs[j].type==PREFTYPE_HASH &&
- opt.personal_prefs[j].value==DIGEST_ALGO_MD5)
+ if(opt.personal_digest_prefs[j].type==PREFTYPE_HASH &&
+ opt.personal_digest_prefs[j].value==DIGEST_ALGO_MD5)
{
i=DIGEST_ALGO_MD5;
break;