mirror of
git://git.gnupg.org/gnupg.git
synced 2025-05-19 09:02:22 +02:00
g10: Fix key import statistics.
'transfer_secret_keys' collects statistics on a subkey-basis, while the other code does not. This leads to inflated numbers when importing secret keys. E.g. 'count' is incremented by the main parsing loop in 'import', and again in 'transfer_secret_keys', leading to a total of 3 if one key with two secret subkeys is imported. * g10/import.c (import_secret_one): Adjust to the fact that 'transfer_secret_keys' collects subkey statistics. * tests/openpgp/Makefile.am (TESTS): Add new test. * tests/openpgp/issue2346.scm: New file. * tests/openpgp/samplekeys/issue2346.gpg: Likewise. GnuPG-bug-id: 2346 Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
9ee23a715d
commit
4ba11251af
17
g10/import.c
17
g10/import.c
@ -2067,8 +2067,11 @@ import_secret_one (ctrl_t ctrl, kbnode_t keyblock,
|
|||||||
{
|
{
|
||||||
gpg_error_t err;
|
gpg_error_t err;
|
||||||
|
|
||||||
nr_prev = stats->secret_imported;
|
/* transfer_secret_keys collects subkey stats. */
|
||||||
err = transfer_secret_keys (ctrl, stats, keyblock, batch, 0);
|
struct import_stats_s subkey_stats = {0};
|
||||||
|
|
||||||
|
err = transfer_secret_keys (ctrl, &subkey_stats, keyblock,
|
||||||
|
batch, 0);
|
||||||
if (gpg_err_code (err) == GPG_ERR_NOT_PROCESSED)
|
if (gpg_err_code (err) == GPG_ERR_NOT_PROCESSED)
|
||||||
{
|
{
|
||||||
/* TRANSLATORS: For smartcard, each private key on
|
/* TRANSLATORS: For smartcard, each private key on
|
||||||
@ -2091,8 +2094,14 @@ import_secret_one (ctrl_t ctrl, kbnode_t keyblock,
|
|||||||
if (!opt.quiet)
|
if (!opt.quiet)
|
||||||
log_info (_("key %s: secret key imported\n"),
|
log_info (_("key %s: secret key imported\n"),
|
||||||
keystr_from_pk (pk));
|
keystr_from_pk (pk));
|
||||||
if (stats->secret_imported > nr_prev)
|
if (subkey_stats.secret_imported)
|
||||||
status |= 1;
|
{
|
||||||
|
status |= 1;
|
||||||
|
stats->secret_imported += 1;
|
||||||
|
}
|
||||||
|
if (subkey_stats.secret_dups)
|
||||||
|
stats->secret_dups += 1;
|
||||||
|
|
||||||
if (is_status_enabled ())
|
if (is_status_enabled ())
|
||||||
print_import_ok (pk, status);
|
print_import_ok (pk, status);
|
||||||
check_prefs (ctrl, node);
|
check_prefs (ctrl, node);
|
||||||
|
@ -83,6 +83,7 @@ TESTS = setup.scm \
|
|||||||
export.scm \
|
export.scm \
|
||||||
ssh.scm \
|
ssh.scm \
|
||||||
issue2015.scm \
|
issue2015.scm \
|
||||||
|
issue2346.scm \
|
||||||
finish.scm
|
finish.scm
|
||||||
|
|
||||||
|
|
||||||
|
33
tests/openpgp/issue2346.scm
Executable file
33
tests/openpgp/issue2346.scm
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/env gpgscm
|
||||||
|
|
||||||
|
;; Copyright (C) 2016 g10 Code GmbH
|
||||||
|
;;
|
||||||
|
;; This file is part of GnuPG.
|
||||||
|
;;
|
||||||
|
;; GnuPG is free software; you can redistribute it and/or modify
|
||||||
|
;; it under the terms of the GNU General Public License as published by
|
||||||
|
;; the Free Software Foundation; either version 3 of the License, or
|
||||||
|
;; (at your option) any later version.
|
||||||
|
;;
|
||||||
|
;; GnuPG is distributed in the hope that it will be useful,
|
||||||
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;; GNU General Public License for more details.
|
||||||
|
;;
|
||||||
|
;; You should have received a copy of the GNU General Public License
|
||||||
|
;; along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(load (with-path "defs.scm"))
|
||||||
|
|
||||||
|
(define key (in-srcdir "samplekeys/issue2346.gpg"))
|
||||||
|
(define old-home (getenv "GNUPGHOME"))
|
||||||
|
|
||||||
|
(with-temporary-working-directory
|
||||||
|
(file-copy (path-join old-home "gpg.conf") "gpg.conf")
|
||||||
|
(file-copy (path-join old-home "gpg-agent.conf") "gpg-agent.conf")
|
||||||
|
(setenv "GNUPGHOME" "." #t)
|
||||||
|
|
||||||
|
(info "Checking import statistics (issue2346)...")
|
||||||
|
(let ((status (call-popen `(,@GPG --status-fd=1 --import ,key) "")))
|
||||||
|
(unless (string-contains? status "IMPORT_RES 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0")
|
||||||
|
(error "Unexpected number of keys imported" status))))
|
57
tests/openpgp/samplekeys/issue2346.gpg
Normal file
57
tests/openpgp/samplekeys/issue2346.gpg
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
-----BEGIN PGP PRIVATE KEY BLOCK-----
|
||||||
|
Version: GnuPG v2
|
||||||
|
|
||||||
|
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
|
||||||
|
=njf7
|
||||||
|
-----END PGP PRIVATE KEY BLOCK-----
|
Loading…
x
Reference in New Issue
Block a user