mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
g10: Change decryption key selection for public key encryption.
* g10/mainproc.c (struct mainproc_context): It's now pubkey_enc_list. (do_proc_packets): Remove the first arg CTRL. Fix call of proc_pubkey_enc. (release_list): Handle pubkey_enc_list. (proc_pubkey_enc): Remove the first arg CTRL. Simply put the packet to pubkey_enc_list. (print_pkenc_list): Remove the last arg FAILED. (proc_encrypted): Only call print_pkenc_list once. Handle DEK here. (proc_packets, proc_signature_packets, proc_signature_packets_by_fd) (proc_encryption_packets): Fix call of do_proc_packets. * g10/packet.h (struct pubkey_enc_list): Define. * g10/pubkey-enc.c (get_it): Change the second argument K. (get_session_key): Select session key by LIST, using enum_secret_keys. * g10/gpgv.c (get_session_key): Change the second argument K. * g10/test-stubs.c (get_session_key): Likewise. -- Collect all PKT_PUBKEY_ENC packets, and then, process the PKT_ENCRYPTED* packet. Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
1b309d9f61
commit
ce2f717601
5 changed files with 155 additions and 179 deletions
12
g10/packet.h
12
g10/packet.h
|
@ -131,6 +131,16 @@ typedef struct {
|
|||
} PKT_pubkey_enc;
|
||||
|
||||
|
||||
/* An object to build a list of public-key encrypted session key. */
|
||||
struct pubkey_enc_list
|
||||
{
|
||||
struct pubkey_enc_list *next;
|
||||
u32 keyid[2];
|
||||
int pubkey_algo;
|
||||
gcry_mpi_t data[PUBKEY_MAX_NENC];
|
||||
};
|
||||
|
||||
|
||||
/* A one-pass signature packet as defined in RFC 4880, Section
|
||||
5.4. All fields are serialized. */
|
||||
typedef struct {
|
||||
|
@ -889,7 +899,7 @@ gpg_error_t check_signature2 (ctrl_t ctrl,
|
|||
|
||||
|
||||
/*-- pubkey-enc.c --*/
|
||||
gpg_error_t get_session_key (ctrl_t ctrl, PKT_pubkey_enc *k, DEK *dek);
|
||||
gpg_error_t get_session_key (ctrl_t ctrl, struct pubkey_enc_list *k, DEK *dek);
|
||||
gpg_error_t get_override_session_key (DEK *dek, const char *string);
|
||||
|
||||
/*-- compress.c --*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue