Separate ssh-pkcs11-helpers for each p11 module
authordjm <djm@openbsd.org>
Wed, 19 Jul 2023 14:03:45 +0000 (14:03 +0000)
committerdjm <djm@openbsd.org>
Wed, 19 Jul 2023 14:03:45 +0000 (14:03 +0000)
commitc3ac409df09ae014b818304db263419b15cd187f
treef801ca32e02cdd786970d892dca670f2a00e5f7e
parentf8f5a6b003981bb824329dc987d101977beda7ca
Separate ssh-pkcs11-helpers for each p11 module

Make ssh-pkcs11-client start an independent helper for each provider,
providing better isolation between modules and reliability if a single
module misbehaves.

This also implements reference counting of PKCS#11-hosted keys,
allowing ssh-pkcs11-helper subprocesses to be automatically reaped
when no remaining keys reference them. This fixes some bugs we have
that make PKCS11 keys unusable after they have been deleted, e.g.
https://bugzilla.mindrot.org/show_bug.cgi?id=3125

ok markus@
usr.bin/ssh/ssh-pkcs11-client.c