diff options
author | Werner Koch <[email protected]> | 2019-08-06 12:59:37 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2019-08-06 13:01:21 +0000 |
commit | 1f980d23af8b818ed8246ec6bf13b9c61b963ec0 (patch) | |
tree | cc6d66cf92be79457c63a7fb5734a4802e2457da /kbx/keybox-file.c | |
parent | tools: New option --keyboxd for gpg-connect-agent. (diff) | |
download | gnupg-1f980d23af8b818ed8246ec6bf13b9c61b963ec0.tar.gz gnupg-1f980d23af8b818ed8246ec6bf13b9c61b963ec0.zip |
kbx: Allow writing using a estream.
* kbx/keybox-file.c (_keybox_write_header_blob): New optional arg
stream. Change callers.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'kbx/keybox-file.c')
-rw-r--r-- | kbx/keybox-file.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/kbx/keybox-file.c b/kbx/keybox-file.c index 046e32123..7a1b43aa7 100644 --- a/kbx/keybox-file.c +++ b/kbx/keybox-file.c @@ -146,9 +146,9 @@ _keybox_write_blob (KEYBOXBLOB blob, FILE *fp) } -/* Write a fresh header type blob. */ -int -_keybox_write_header_blob (FILE *fp, int for_openpgp) +/* Write a fresh header type blob. Either FP or STREAM must be used. */ +gpg_error_t +_keybox_write_header_blob (FILE *fp, estream_t stream, int for_openpgp) { unsigned char image[32]; u32 val; @@ -174,7 +174,15 @@ _keybox_write_header_blob (FILE *fp, int for_openpgp) image[20+2] = (val >> 8); image[20+3] = (val ); - if (fwrite (image, 32, 1, fp) != 1) - return gpg_error_from_syserror (); + if (fp) + { + if (fwrite (image, 32, 1, fp) != 1) + return gpg_error_from_syserror (); + } + else + { + if (es_fwrite (image, 32, 1, stream) != 1) + return gpg_error_from_syserror (); + } return 0; } |