aboutsummaryrefslogtreecommitdiffstats
path: root/g10/export.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/export.c')
-rw-r--r--g10/export.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/g10/export.c b/g10/export.c
index d53be99fe..2d34c8244 100644
--- a/g10/export.c
+++ b/g10/export.c
@@ -453,8 +453,9 @@ exact_subkey_match_p (KEYDB_SEARCH_DESC *desc, KBNODE node)
case KEYDB_SEARCH_MODE_FPR16:
case KEYDB_SEARCH_MODE_FPR20:
+ case KEYDB_SEARCH_MODE_FPR32:
case KEYDB_SEARCH_MODE_FPR:
- fingerprint_from_pk (node->pkt->pkt.public_key, fpr,&fprlen);
+ fingerprint_from_pk (node->pkt->pkt.public_key, fpr, &fprlen);
break;
default:
@@ -474,13 +475,22 @@ exact_subkey_match_p (KEYDB_SEARCH_DESC *desc, KBNODE node)
break;
case KEYDB_SEARCH_MODE_FPR16:
- if (!memcmp (desc->u.fpr, fpr, 16))
+ if (fprlen == 16 && !memcmp (desc->u.fpr, fpr, 16))
result = 1;
break;
case KEYDB_SEARCH_MODE_FPR20:
+ if (fprlen == 20 && !memcmp (desc->u.fpr, fpr, 20))
+ result = 1;
+ break;
+
+ case KEYDB_SEARCH_MODE_FPR32:
+ if (fprlen == 32 && !memcmp (desc->u.fpr, fpr, 32))
+ result = 1;
+ break;
+
case KEYDB_SEARCH_MODE_FPR:
- if (!memcmp (desc->u.fpr, fpr, 20))
+ if (fprlen == desc->fprlen && !memcmp (desc->u.fpr, fpr, desc->fprlen))
result = 1;
break;