diff options
author | Werner Koch <wk@gnupg.org> | 2019-03-14 11:20:07 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2019-03-14 11:26:54 +0100 |
commit | 01c87d4ce23bc9fc44ec5301c2c6bf2ce615c375 (patch) | |
tree | f19dff47ab919197f923a526e850c6954030b238 /g10/sign.c | |
parent | kbx: Add support for 32 byte fingerprints. (diff) | |
download | gnupg2-01c87d4ce23bc9fc44ec5301c2c6bf2ce615c375.tar.xz gnupg2-01c87d4ce23bc9fc44ec5301c2c6bf2ce615c375.zip |
gpg: Implement v5 keys and v5 signatures.
* g10/build-packet.c (gpg_mpi_write): New optional arg
R_NWRITTEN. Allow NULL for OUT. Change all callers.
(do_key): Support v5 keys.
(build_sig_subpkt_from_sig): Support 32 byte fingerprints.
* g10/parse-packet.c (parse_signature): First try to set the keyid
from the issuer fingerprint.
(parse_key): Support v5 keys.
(create_gpg_control): Better make sure to always allocate the static
size of the struct in case future compilers print warnings.
* g10/keyid.c (hash_public_key): Add v5 support.
(keyid_from_pk): Ditto.
(keyid_from_fingerprint): Ditto.
(fingerprint_from_pk): Ditto.
* g10/keygen.c (KEYGEN_FLAG_CREATE_V5_KEY): New.
(pVERSION, pSUBVERSION): New.
(add_feature_v5): New.
(keygen_upd_std_prefs): Call it.
(do_create_from_keygrip): Add arg keygen_flags and support the v5
flag.
(common_gen): Support the v5 flag.
(parse_key_parameter_part): New flags v4 and v5.
(parse_key_parameter_string): Add args for version and subversion.
(read_parameter_file): New keywords "Key-Version" and
"Subkey-Version".
(quickgen_set_para): Add arg 'version'.
(quick_generate_keypair, generate_keypair): Support version parms.
(do_generate_keypair): Support v5 key flag.
(generate_subkeypair): Ditto.
(generate_card_subkeypair): Preparse for keyflags.
(gen_card_key): Ditto.
* g10/sig-check.c (check_signature2): Add args extrahash and
extrahashlen.
(check_signature_end): Ditto.
(check_signature_end_simple): Ditto. Use them.
* g10/mainproc.c (proc_plaintext): Put extra hash infor into the
control packet.
(do_check_sig): Add args extrahas and extrahashlen and pass them on.
(issuer_fpr_raw): Support 32 byte fingerprint.
(check_sig_and_print): get extra hash data and pass it on.
--
Note that this is only basic support and requires more fine
tuning/fixing.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'g10/sign.c')
-rw-r--r-- | g10/sign.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/g10/sign.c b/g10/sign.c index 67556d8ba..176940bff 100644 --- a/g10/sign.c +++ b/g10/sign.c @@ -49,6 +49,10 @@ #define LF "\n" #endif +/* Hack */ +static int recipient_digest_algo; + + /* A type for the extra data we hash into v5 signature packets. */ struct pt_extra_hash_data_s { @@ -60,10 +64,6 @@ struct pt_extra_hash_data_s typedef struct pt_extra_hash_data_s *pt_extra_hash_data_t; -/* Hack */ -static int recipient_digest_algo; - - /* * Create notations and other stuff. It is assumed that the strings in * STRLIST are already checked to contain only printable data and have @@ -746,8 +746,8 @@ write_plaintext_packet (iobuf_t out, iobuf_t inp, (*r_extrahash)->mode = pt->mode; (*r_extrahash)->timestamp = pt->timestamp; (*r_extrahash)->namelen = pt->namelen; - /* Note that the last byte or NAME won't be initialized - * becuase we don't need it. */ + /* Note that the last byte of NAME won't be initialized + * because we don't need it. */ memcpy ((*r_extrahash)->name, pt->name, pt->namelen); } pt->buf = NULL; |