1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

4103 Commits

Author SHA1 Message Date
NIIBE Yutaka
3089c76a4a scd: Don't limit to ST-2xxx for PC/SC.
* scd/apdu.c (pcsc_vendor_specific_init): Only check vender ID.

--
Backport of master commit: b6066ab18a67195817babaf9eccf896c2b3c7b0e

Some other products by Cherry works with pinpad, although it only works
for smaller keys (RSA 1024).  TPDU support is good for larger keys.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-30 09:32:18 +09:00
NIIBE Yutaka
354f8119bc scd: Fix status info encoding.
* scd/command.c (send_status_info): Do percent plus encoding correctly.

--
Backport of master commit: 4ee4d0b02172cf56d9582bb99e32a65c75315b25

Reported-by: David Härdeman <david@hardeman.nu>
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-30 09:30:18 +09:00
NIIBE Yutaka
88556386a6 scd: minor cleanup to merge other works.
* scd/iso7816.c (do_generate_keypair): Use const char * for DATA.
(iso7816_generate_keypair, iso7816_read_public_key): Likewise.
* scd/app-openpgp.c (get_public_key): Follow the change.
(do_genkey): Ditto.  Use ERR instead of RC.  Use u32 for CREATED_AT.
--
Backport of master commit: f1845f25dbea79c191427710fa56ed01e63a045b

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-30 09:22:59 +09:00
NIIBE Yutaka
68d3e461f6 scd: Fix an action after card removal.
* scd/command.c (update_card_removed): Call apdu_close_reader here.

--
Backport of master commit: f9e49c80e706a27d5e30d4b3237ff26367a67130

This is update of the commit 8fe81055762d9c9e6f03fb7853a985c94ef73ac3
It is better apdu_close_reader is called in update_card_removed.

The commit 1598a4476466822e7e9c757ac471089d3db4b545 introduced a
regression, it doesn't close the reader after removal of the card, while
the code before the commit call apdu_close_reader in do_reset.
So, this fix.

GnuPG-bug-id: 2449
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-30 09:17:21 +09:00
NIIBE Yutaka
710d0ce0fd scd: Release the card reader after card removal.
* scd/command.c (update_reader_status_file): Call apdu_close_reader.

--
Backport of master commit: 8fe81055762d9c9e6f03fb7853a985c94ef73ac3

GnuPG-bug-id: 2651
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-30 09:13:16 +09:00
NIIBE Yutaka
5acce7060c scd: Clean up unused shutdown method.
* scd/apdu.c (shutdown_ccid_reader, apdu_shutdown_reader): Remove.
(reset_ccid_reader): Don't set shutdown_reader.
* scd/ccid-driver.c (ccid_shutdown_reader): Remove.

--
Backport of master commit: d1ae7103352fbda2a05f098379cd3043a0ab5566

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-30 09:08:23 +09:00
NIIBE Yutaka
519c01a0fd scd: Fix card removal/reset on multiple contexts.
* scd/app.c (application_notify_card_reset): Add message for debug.
*scd/command.c (update_card_removed): Call release_application and set
SLOT -1 here.
(struct server_local_s): Remove app_ctx_marked_for_release.
(do_reset): Don't mark release but call release_application here.
(open_card): Remove app_ctx_marked_for_release handling.
(update_reader_status_file): Don't set SLOT here, so that it can be
released the APP by application_notify_card_reset in
update_card_removed.
--
Backport of master commit: 1598a4476466822e7e9c757ac471089d3db4b545

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-29 17:39:00 +09:00
NIIBE Yutaka
3b3386a3fd scd: Fix race conditions for release_application.
* scd/command.c (do_reset, cmd_restart): Reset app_ctx before calling
release_application.

--
Backport of master commit: 0c1fd4e9884ed7c1edd1819762b9e8a77f606ed3

Thanks to Ben Warren for the report.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-29 17:15:20 +09:00
Werner Koch
f916d5756f scd: Make option --homedir work.
* scd/scdaemon.c (opts): Add --homedir.
--
Backport of master commit: def512eb67c8a380f3b873cee0f156deef0b6dda

Without that entry the homedir setting won't work.

GnuPG-bug-id: 2386
Signed-off-by: Werner Koch <wk@gnupg.org>
2016-11-29 17:10:33 +09:00
NIIBE Yutaka
51464a0ead scd: More fix of error return path.
* scd/command.c (open_card): Return GPG_ERR_ENODEV on the failure of
apdu_connect.

--
Backport of master commit: 6677d8b61446eb5760a30a2488c992d6e895a9ed

GnuPG-bug-id: 2306
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-11-29 17:08:57 +09:00
Justus Winter
d87699597f scd: Improve error handling.
* scd/app-openpgp.c (get_public_key): Improve error handling.
--
Backport master commit: 6a37b45a7f13cf5d2ae7d6c9cd796a4bd197b80d

Found using the Clang Static Analyzer.

Signed-off-by: Justus Winter <justus@g10code.com>
2016-11-29 17:06:28 +09:00
NIIBE Yutaka
d4316d1374 scd: Fix error handling with libusb-compat library.
* scd/ccid-driver.c (bulk_out): Use LIBUSB_ERRNO_NO_SUCH_DEVICE.

--

With libusb-compat library, the error is different than original
libusb.  (The libusb-compat library is used by Fedora.)

Backport of master commit: 1e94a672efb8bf66f416bc63bf6670e509a21fe5
2016-11-29 17:02:49 +09:00
NIIBE Yutaka
af7245e9a7 scd: Handle error correctly.
* scd/apdu.c (apdu_connect): Initialize variables and check an error
of apdu_get_status_internal.

--
Backport from master commit: 6bb7206e357acfd7276a8f1334c0f0c9cc6ed100
2016-11-29 16:55:49 +09:00
NIIBE Yutaka
a6f7c8d9b7 scd: KEYNO cleanup.
* scd/app-openpgp.c (get_public_key, send_keypair_info, do_readkey)
(change_keyattr, change_keyattr_from_string, ecc_writekey, do_genkey)
(compare_fingerprint, check_against_given_fingerprint): KEYNO starts
from 0.

--
Backport of master commit: fd689e85423d0d80d725f0315c52d94f0e9766f8
2016-11-29 16:53:55 +09:00
NIIBE Yutaka
f1b9521fd6 scd: Use cipher.h for constants.
* scd/app-openpgp.c: Include cipher.h.

--
Backport from master commit:f5d356fb5bbbd0e05a753612455253e4bc335266
2016-11-29 16:38:45 +09:00
Daniel Kahn Gillmor
cbd0308bc7 gpg: Avoid publishing the GnuPG version by default
* g10/gpg.c (main): initialize opt.emit_version to 0
* doc/gpg.texi: document different default for --emit-version

--

The version of GnuPG in use is not particularly helpful.  It is not
cryptographically verifiable, and it doesn't distinguish between
significant version differences like 2.0.x and 2.1.x.

Additionally, it leaks metadata that can be used to distinguish users
from one another, and can potentially be used to target specific
attacks if there are known behaviors that differ between major
versions.

It's probably better to take the more parsimonious approach to
metadata production by default.

(backport of master commit c9387e41db7520d176edd3d6613b85875bdeb32c)

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2016-08-09 12:35:37 +02:00
NIIBE Yutaka
caff669212 g10: Fix checking key for signature validation.
* g10/sig-check.c (signature_check2): Not only subkey, but also primary
key should have flags.valid=1.

--

(backport of master
commit 6f284e6ed63f514b15fe610f490ffcefc87a2164)

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-08-04 17:15:23 +09:00
NIIBE Yutaka
b531f2fd75 gpgv: Tweak default options for extra security.
* g10/gpgv.c (main): Set opt.no_sig _cache, so that it doesn't depend on
cached status.  Similarly, set opt.flags.require_cross_cert for backsig
validation for subkey signature.

--

(backport of master
commit e32c575e0f3704e7563048eea6d26844bdfc494b)

It is common that an organization distributes binary keyrings with
signature cache (Tag 12, Trust Packet) and people use gpgv to validate
signature with such keyrings.  In such a use case, it is possible that
the key validation itself is skipped.

For the purpose of gpgv validation of signatures, we should not depend
on signature cache in keyrings (if any), but we should validate the key
by its self signature for primary key, and back signature for subkey.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-07-09 10:38:25 +09:00
NIIBE Yutaka
1c15136895 g10: Fix keysize with --expert.
* g10/keygen.c (ask_keysize): It's 768 only for DSA.

--

(forwardport of
1.4 commit ca1fc596267b42a894a3fc85c3733007c672ed1f)

GnuPG-bug-id: 2238
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-07-06 11:55:56 +09:00
NIIBE Yutaka
4f336ed780 g10: Fix --list-packets.
* g10/gpg.c (main): Call set_packet_list_mode after assignment of
opt.list_packets.
* g10/mainproc.c (do_proc_packets): Don't stop processing with
--list-packets as the comment says.
* g10/options.h (list_packets): Fix the comment.
* g10/parse-packet.c: Fix the condition for opt.list_packets.

--

(backport of master
commit 52f65281f9743c42a48bf5a3354c9ab0ecdb681a)

Debian-bug-id: 828109
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2016-06-28 16:06:06 +09:00
NIIBE Yutaka
fb0e18b384 g10: Fix card-edit/fetch to use keyserver_fetch.
* g10/card-util.c (fetch_url): Call keyserver_fetch instead of
keyserver_import_fprint.

--
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>

GnuPG-bug-id: 1828
(backport of master
commit 6f5ff1cfe449cf1f4cb7287bc57570eb794216b2)
2016-06-24 10:22:55 +09:00
Niibe Yutaka
c68d39f711 scd: Reset nonnull_nad to zero for VENDOR_GEMPC.
* (parse_ccid_descriptor): nonnull_nad = 0 for all GEMPC device.

--

We can't use the driver for 08E6:3438, while it works well under PC/SC
service.  I found that the library of ccid always uses the node
address = ZERO for all transactions.  So, we extend the same handling
for not only GEMPC_CT30, but also for all its devices.

Debian-bug-id: 814584
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
(backport form master
commit 971064f8b7ad676326b2a468f688037a303717df)
2016-06-19 11:33:32 +09:00
Niibe Yutaka
00d737e3fd g10: Fix another race condition for trustdb access.
* g10/tdbio.c (create_version_record): Call create_hashtable to always
make hashtable, together with the version record.
(get_trusthashrec): Remove call to create_hashtable.

--

GnuPG-bug-id: 1675
Thanks to Scott Moser to reproducible script and patience.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>

(backport from master
 commit 35a3ce2acf78a95fecbccfd8db0560cca24232df)
2016-06-15 08:56:12 +09:00
Werner Koch
d8775285e9
doc: Remove description of --faked-system-time from gpg.texi
--

This option is only available in 2.1.
2016-04-08 08:30:42 +02:00
Justus Winter
7597147e0f po: Fix misleading german translation.
--
GnuPG-bug-id: 2239
Signed-off-by: Justus Winter <justus@g10code.com>
2016-04-04 18:03:20 +02:00
Werner Koch
55dabfeae2
Post release updates
--
2016-03-31 12:58:31 +02:00
Werner Koch
83cae8c037
Release 2.0.30 gnupg-2.0.30 2016-03-31 12:47:24 +02:00
Werner Koch
c066dabe15
po: Auto update
--
2016-03-31 12:46:07 +02:00
Ineiev
e2c3ddf462
doc: Update help.ru.text 2016-03-31 12:46:07 +02:00
Werner Koch
2b8c9181a7
build: Create *.swdb file during make distcheck.
* Makefile.am (distcheck-hook): New.

Signed-off-by: Werner Koch <wk@gnupg.org>
2016-03-31 12:46:07 +02:00
Werner Koch
458c2f2d32
gpg: Silence trustdb messages with --quiet.
* g10/trustdb.c (validate_keys): Silence messages

Signed-off-by: Werner Koch <wk@gnupg.org>
2016-03-31 12:46:07 +02:00
Justus Winter
3e1b451c5d agent: Do not remove the ssh socket.
* agent/gpg-agent.c (create_server_socket): Also inhibit the removal
of the ssh socket if another agent process is already running.

GnuPG modern is not affected.

GnuPG-bug-id: 2258
Signed-off-by: Justus Winter <justus@g10code.com>
2016-03-02 17:00:22 +01:00
NIIBE Yutaka
eb7806d63d g10: Make sure to have the directory for trustdb.
* g10/tdbio.c (tdbio_set_dbname): Return earlier if !CREATE.  Check
the directory and create it if none before calling take_write_lock.

--

Thanks to Marc Deslauriers for the bug report and his patch.

GnuPG-bug-id: 2246

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>

(backport from master
 commit 2f3e42047d17313eeb38d354048f343158402a8d)
2016-02-12 10:17:23 +09:00
Werner Koch
776bee6d37
common: Cope with AIX problem on number of open files.
* common/exechelp.c: Limit returned value for too hight values.
--

GnuPG-bug-id: 1778

(backport from master commit 987532b038a2d9b9e76c0de425ee036ca2bffa1b)

Signed-off-by: Werner Koch <wk@gnupg.org>
2016-01-15 15:38:08 +01:00
NIIBE Yutaka
baae8d50d7 Fix to support git worktree.
* Makefile.am: Use -e for testing .git.

--
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>

(backport commit of 96237b9a63a50aed1884cb06f84279b977d6a8fa)
2016-01-13 17:39:37 +09:00
NIIBE Yutaka
b508af2b2c sm: Handle gcry_pk_encrypt return value.
* sm/encrypt.c (encrypt_dek): Don't ignore failure of gcry_pk_encrypt.

--

Thanks to Sami Farin.

GnuPG-bug-id: 2154

(backport commit of 4ee881bff4c8fdfa4b3b7a4b7afab611471e97f1)
2015-12-15 12:44:41 +09:00
NIIBE Yutaka
8729f35510 scd: Fix commit 9a9bfd77.
* scd/app.c (check_application_conflict): Get SLOT.
2015-12-15 09:56:08 +09:00
Daniel Hoffend
904fbdccd6 scd: Fix removal of unplugged usb readers on Windows.
* scd/apdu.c (pcsc_error_to_sw): map PCSC_E_NO_SERVICE and
PCSC_E_SERVICE_STOPPED to the internal SW_HOST_NO_READER error code.

--

Signed-off-by: Daniel Hoffend <dh@dotlan.net>
GnuPG-bug-id: 2167

In Windows 8 (and later), PC/SC service only runs when reader/token is
plugged in.  After its removal, it returns PCSC_E_NO_SERVICE error.
This error should be handled as no reader.  This comment is by gniibe.

(backport of commit d1a97585c5e73fbc7d4cf90e38f76ffc5aea305f)
2015-12-15 09:51:56 +09:00
NIIBE Yutaka
520c85ed94 scd: Simplify saving application context.
* scd/app.c (lock_table): Remove LAST_APP field.
(lock_reader, app_dump_state, application_notify_card_reset)
(release_application): Follow the change.
(check_conflict): New.
(check_application_conflict): Lock the slot and call check_conflict.
(select_application): Call check_conflict and not use LAST_APP.

--

We don't need LAST_APP field but just keep the application context by
APP field.  Since we have a reference counter, it is possible if we
can deallocate or not.

(backport of commit 9639af5f16a7ed908cbce2415330b9fcd88edc90)
2015-12-15 09:49:29 +09:00
NIIBE Yutaka
9934889415 scd: Fix "Conflicting usage" bug.
* scd/apdu.c (apdu_close_reader): Call CLOSE_READER method even if we
  got an error from apdu_disconnect.
* scd/app-common.h (no_reuse): Remove.
* scd/app.c (application_notify_card_reset): Deallocate APP here.
(select_application, release_application): Don't use NO_REUSE.

--

Reproducible scenario: Invoke gpg --card-edit session from a terminal.
Invoke another gpg --card-edit session from another.  Remove a token.
Insert a token again.  Type RET on both terminals.  One of terminal
answers "Conflicting usage".

Perhaps, having NO_REUSE field was to avoid race conditions.  Now,
APP can be safely deallocated by application_notify_card_reset.

Thanks to the2nd.

(backport of commit f42c50dbf00c2e6298ca6830cbe6d36805fa54a3)
2015-12-15 09:48:06 +09:00
NIIBE Yutaka
01fa4c7b8b doc: Don't install gpg-zip.1.
* doc/Makefile.am (myman_pages): Remove gpg-zip.1.
(DISTCLEANFILES): Add gpg-zip.1.

--

(backport of commit d25e29ad9374da1c11ccfc38f392dbab2d707042)

Thanks to Thomas Klausner.

GnuPG-bug-id: 2095
2015-10-29 10:31:40 +09:00
Werner Koch
caa555a5bf agent: Fix alignment problem with the second passphrase struct.
* agent/genkey.c (agent_ask_new_passphrase): Use a separate malloc for
PI2.  Check return value of the malloc function.
* agent/command-ssh.c (ssh_identity_register): Use a separate malloc
for PI2.  Wipe PI2.
--

For whatever stupid reasons I once allocated only one memory area and
split that into PI and PI2.  This is actually a common pattern with
malloc but here we used a made up object size and do not take the
extra alignment required into account.  One of these not yet hit by
a (sig)bus PC/VAX hacker bugs.

Instead of trying to fix the alignment, it is better to use a second
calloc for the second struct.

GnuPG-bug-id: 2112
Signed-off-by: Werner Koch <wk@gnupg.org>

Resolved conflicts:
	agent/command-ssh.c
	agent/genkey.c

(backport master commit ddf9dd135acd2b3635bb986f6dfc0e4e446d5fad)
2015-10-06 02:11:00 +09:00
Werner Koch
b1653a4083 gpg: Silence a compiler warning.
* g10/parse-packet.c (enum_sig_subpkt): Replace hack.

--

GCC 5 failure reported by Kevin Locke <kevin@kevinlocke.name>

(backport from master commit 6a0c3fa19cfcdd590b96691e8a8ffb48fb5e0ec4)
2015-10-01 14:32:50 +09:00
NIIBE Yutaka
fea9d4354c gpg: Improve 'General key info' line of --card-status.
* g10/keylist.c (print_pubkey_info): Print either "pub" or "sub".

--

This now prints "sub" if the first used card key is actually a subkey.

Signed-off-by: Werner Koch <wk@gnupg.org>

GnuPG-bug-id: 2079

(backported from master 874ef16e70ab750db7b153f17a7e859a0db6a2f1)
2015-09-29 13:45:20 +09:00
Werner Koch
47a499eaa2
ssh: Fix fingerprint computation for 384 bit ECDSA keys.
* common/ssh-utils.c (get_fingerprint): Fix hashed string.
--

That was an obvious c+p bug which should have been caught by a test
case.

GnuPG-bug-id: 2075
Debian-bug-id: 795636

(backported from master 2167951b275bae51cf669c02547e2e7ea8fbe2ee)
2015-09-22 09:34:05 +02:00
NIIBE Yutaka
bc829bd6af po: Update Japanese translation. 2015-09-17 17:07:29 +09:00
NIIBE Yutaka
a63fddad68 scd: Fix ccid-driver timeout for OpenPGPcard v2.1.
* scd/ccid-driver.c (CCID_CMD_TIMEOUT): New.
(ccid_transceive_apdu_level, ccid_transceive): Use.

--

It is reported that key generation causes timeout with OpenPGPcard
v2.1.  Ideally, timeout value could be determined at run-time by
examining card's ATR.  Compile-time fixed value is OK for internal
CCID driver.

(cherry-picked from 2.1 6510df3a7cd2b5bf44fac1e4d50ee54b8c897daa)
2015-09-17 11:32:24 +09:00
NIIBE Yutaka
d289341371 po: Update Japanese translation. 2015-09-15 15:14:50 +09:00
NIIBE Yutaka
fa3b618216 po: Update Japanese Translation. 2015-09-10 11:03:31 +09:00
NIIBE Yutaka
d4a2a070b4 gpgconf: Fix scdaemon reload.
* tools/gpgconf-comp.c (scdaemon_runtime_change): Add "scd bye".

--

In GnuPG 2.0.x, it doesn't require newer libassuan which has
ASSUAN_FORCE_CLOSE feature.  We need to send "scd bye" to let
the control finish from command loop.
2015-09-10 10:00:03 +09:00