g13: Move some function around.

* g13/keyblob.c (g13_keyblob_decrypt): Move to ...
* g13/server.c: to here.
* g13/suspend.c, g13/mount.c: Include server.h.
* g13/Makefile.am (g13_syshelp_SOURCES): Add keyblob.c
--

This is done to be able to use keyblob read code in syshelp w/o
requiring linking to call-gpg.c

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2016-08-13 17:39:28 +02:00
parent b57f553212
commit 37e932658c
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
7 changed files with 34 additions and 26 deletions

View File

@ -57,7 +57,7 @@ g13_LDADD = $(libcommonpth) \
g13_syshelp_SOURCES = \
g13-syshelp.c g13-syshelp.h \
g13-common.c g13-common.h \
keyblob.h \
keyblob.c keyblob.h \
g13tuple.c g13tuple.h \
sh-cmd.c \
sh-blockdev.c \

View File

@ -28,12 +28,10 @@
#include <assert.h>
#include "g13.h"
#include "i18n.h"
#include "mount.h"
#include "keyblob.h"
#include "../common/sysutils.h"
#include "../common/call-gpg.h"
#include "host2net.h"
@ -207,23 +205,3 @@ g13_keyblob_read (const char *filename,
return err;
}
/*
* Decrypt the keyblob (ENCKEYBLOB,ENCKEYBLOBLEN) and store the result
* at (R_KEYBLOB, R_KEYBLOBLEN). Returns 0 on success or an error
* code. On error R_KEYBLOB is set to NULL.
*/
gpg_error_t
g13_keyblob_decrypt (ctrl_t ctrl, const void *enckeyblob, size_t enckeybloblen,
void **r_keyblob, size_t *r_keybloblen)
{
gpg_error_t err;
/* FIXME: For now we only implement OpenPGP. */
err = gpg_decrypt_blob (ctrl, opt.gpg_program, opt.gpg_arguments,
enckeyblob, enckeybloblen,
r_keyblob, r_keybloblen);
return err;
}

View File

@ -157,9 +157,6 @@
gpg_error_t g13_is_container (ctrl_t ctrl, const char *filename);
gpg_error_t g13_keyblob_read (const char *filename,
void **r_enckeyblob, size_t *r_enckeybloblen);
gpg_error_t g13_keyblob_decrypt (ctrl_t ctrl,
const void *enckeyblob, size_t enckeybloblen,
void **r_keyblob, size_t *r_keybloblen);
#endif /*G13_KEYBLOB_H*/

View File

@ -36,6 +36,7 @@
#include "mountinfo.h"
#include "runner.h"
#include "host2net.h"
#include "server.h" /*(g13_keyblob_decrypt)*/
#include "../common/sysutils.h"

View File

@ -34,6 +34,8 @@
#include "mount.h"
#include "suspend.h"
#include "../common/server-help.h"
#include "../common/call-gpg.h"
/* The filepointer for status message used in non-server mode */
static FILE *statusfp;
@ -769,3 +771,28 @@ g13_proxy_pinentry_notify (ctrl_t ctrl, const unsigned char *line)
return 0;
return assuan_inquire (ctrl->server_local->assuan_ctx, line, NULL, NULL, 0);
}
/*
* Decrypt the keyblob (ENCKEYBLOB,ENCKEYBLOBLEN) and store the result
* at (R_KEYBLOB, R_KEYBLOBLEN). Returns 0 on success or an error
* code. On error R_KEYBLOB is set to NULL.
*
* This actually does not belong here but for that simple wrapper it
* does not make sense to add another source file. Note that we do
* not want to have this in keyblob.c, because that code is also used
* by the syshelp.
*/
gpg_error_t
g13_keyblob_decrypt (ctrl_t ctrl, const void *enckeyblob, size_t enckeybloblen,
void **r_keyblob, size_t *r_keybloblen)
{
gpg_error_t err;
/* FIXME: For now we only implement OpenPGP. */
err = gpg_decrypt_blob (ctrl, opt.gpg_program, opt.gpg_arguments,
enckeyblob, enckeybloblen,
r_keyblob, r_keybloblen);
return err;
}

View File

@ -25,4 +25,8 @@ gpg_error_t g13_server (ctrl_t ctrl);
gpg_error_t g13_proxy_pinentry_notify (ctrl_t ctrl, const unsigned char *line);
gpg_error_t g13_keyblob_decrypt (ctrl_t ctrl,
const void *enckeyblob, size_t enckeybloblen,
void **r_keyblob, size_t *r_keybloblen);
#endif /*G13_SERVER_H*/

View File

@ -33,6 +33,7 @@
#include "keyblob.h"
#include "backend.h"
#include "g13tuple.h"
#include "server.h" /*(g13_keyblob_decrypt)*/