scd: Store a new PIV public key in the certificate DO.
authorWerner Koch <wk@gnupg.org>
Thu, 7 Feb 2019 15:13:21 +0000 (16:13 +0100)
committerWerner Koch <wk@gnupg.org>
Thu, 7 Feb 2019 15:14:09 +0000 (16:14 +0100)
commit5bf1212000f48243642ace0f708fd27446879b9e
tree733d5d8198b507c88d7e8ed4f325749ae34e5d2d
parentfcec5b40e589b2ef201efb89f22a952feb4a9069
scd: Store a new PIV public key in the certificate DO.

* scd/app-piv.c (struct genkey_result_s): Remove type and all users.
(send_keypair_and_cert_info): Print certinfo only if we got a cert..
(readcert_by_tag): Add arg r_mechanism and implement reading of public
keys.
(get_keygrip_by_tag): Use a public key to compute the keygrip.
(do_readcert): Make sure to only return a certificate.
(do_readkey): Read public key from the DO if a certificate is missing.
(get_key_algorithm_by_dobj): Get the algorithm also from a public key.
(does_key_exist): String changes.
(do_genkey): Remove result caching and store public key in the DO.
--

This removes the result cache and instead stores the public key in the
certificate object.  This allows to properly list public keys at any
time after generating a key and before a new certificate is stored
there.

Signed-off-by: Werner Koch <wk@gnupg.org>
scd/app-piv.c
scd/command.c