aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2019-04-18 14:50:05 +0200
committerMattias Andrée <maandree@kth.se>2019-04-18 14:50:05 +0200
commit1166ccd674f398b02b6ef28f8032f83720235e77 (patch)
tree72a87c1ee7185cc66bc748a30e3c3af8a4eda015
downloadliberror-gpgme-1166ccd674f398b02b6ef28f8032f83720235e77.tar.gz
liberror-gpgme-1166ccd674f398b02b6ef28f8032f83720235e77.tar.bz2
liberror-gpgme-1166ccd674f398b02b6ef28f8032f83720235e77.tar.xz
First commit
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--.gitignore10
-rw-r--r--LICENSE15
-rw-r--r--Makefile169
-rw-r--r--README1
-rw-r--r--cancel.c12
-rw-r--r--cancel_async.c12
-rw-r--r--conf_arg_new.c12
-rw-r--r--conf_opt_change.c12
-rw-r--r--config.mk6
-rw-r--r--ctx_set_engine_info.c12
-rw-r--r--data_new.c12
-rw-r--r--data_new_from_cbs.c12
-rw-r--r--data_new_from_estream.c12
-rw-r--r--data_new_from_fd.c12
-rw-r--r--data_new_from_file.c12
-rw-r--r--data_new_from_filepart.c12
-rw-r--r--data_new_from_mem.c12
-rw-r--r--data_new_from_stream.c12
-rw-r--r--data_rewind.c12
-rw-r--r--data_set_encoding.c12
-rw-r--r--data_set_file_name.c12
-rw-r--r--data_set_flag.c12
-rw-r--r--engine_check_version.c12
-rw-r--r--get_engine_info.c12
-rw-r--r--get_key.c12
-rw-r--r--internal.h27
-rw-r--r--key_from_uid.c12
-rw-r--r--liberror-gpgme.h187
-rw-r--r--linux.mk5
-rw-r--r--macos.mk5
-rw-r--r--new.c12
-rw-r--r--op_adduid.c12
-rw-r--r--op_adduid_start.c12
-rw-r--r--op_assuan_transact_ext.c15
-rw-r--r--op_assuan_transact_start.c15
-rw-r--r--op_conf_dir.c12
-rw-r--r--op_conf_load.c12
-rw-r--r--op_conf_save.c12
-rw-r--r--op_createkey.c13
-rw-r--r--op_createkey_start.c13
-rw-r--r--op_createsubkey.c13
-rw-r--r--op_createsubkey_start.c13
-rw-r--r--op_decrypt.c12
-rw-r--r--op_decrypt_ext.c12
-rw-r--r--op_decrypt_ext_start.c12
-rw-r--r--op_decrypt_start.c12
-rw-r--r--op_decrypt_verify.c12
-rw-r--r--op_decrypt_verify_start.c12
-rw-r--r--op_delete.c12
-rw-r--r--op_delete_ext.c12
-rw-r--r--op_delete_ext_start.c12
-rw-r--r--op_delete_start.c12
-rw-r--r--op_encrypt.c13
-rw-r--r--op_encrypt_ext.c13
-rw-r--r--op_encrypt_ext_start.c13
-rw-r--r--op_encrypt_sign.c13
-rw-r--r--op_encrypt_sign_ext.c13
-rw-r--r--op_encrypt_sign_ext_start.c13
-rw-r--r--op_encrypt_sign_start.c13
-rw-r--r--op_encrypt_start.c13
-rw-r--r--op_export.c12
-rw-r--r--op_export_ext.c12
-rw-r--r--op_export_ext_start.c12
-rw-r--r--op_export_keys.c12
-rw-r--r--op_export_keys_start.c12
-rw-r--r--op_export_start.c12
-rw-r--r--op_genkey.c12
-rw-r--r--op_genkey_start.c12
-rw-r--r--op_getauditlog.c12
-rw-r--r--op_getauditlog_start.c12
-rw-r--r--op_import.c12
-rw-r--r--op_import_keys.c12
-rw-r--r--op_import_keys_start.c12
-rw-r--r--op_import_start.c12
-rw-r--r--op_interact.c13
-rw-r--r--op_interact_start.c13
-rw-r--r--op_keylist_end.c12
-rw-r--r--op_keylist_ext_start.c12
-rw-r--r--op_keylist_from_data_start.c12
-rw-r--r--op_keylist_next.c12
-rw-r--r--op_keylist_start.c12
-rw-r--r--op_keysign.c12
-rw-r--r--op_keysign_start.c12
-rw-r--r--op_passwd.c12
-rw-r--r--op_passwd_start.c12
-rw-r--r--op_query_swdb.c12
-rw-r--r--op_revuid.c12
-rw-r--r--op_revuid_start.c12
-rw-r--r--op_set_uid_flag.c12
-rw-r--r--op_set_uid_flag_start.c12
-rw-r--r--op_sign.c12
-rw-r--r--op_sign_start.c12
-rw-r--r--op_spawn.c13
-rw-r--r--op_spawn_start.c13
-rw-r--r--op_tofu_policy.c12
-rw-r--r--op_tofu_policy_start.c12
-rw-r--r--op_trustlist_end.c12
-rw-r--r--op_trustlist_next.c12
-rw-r--r--op_trustlist_start.c12
-rw-r--r--op_verify.c12
-rw-r--r--op_verify_start.c12
-rw-r--r--op_vfs_create.c12
-rw-r--r--op_vfs_mount.c13
-rw-r--r--set_ctx_flag.c12
-rw-r--r--set_engine_info.c12
-rw-r--r--set_keylist_mode.c12
-rw-r--r--set_locale.c12
-rw-r--r--set_pinentry_mode.c12
-rw-r--r--set_protocol.c12
-rw-r--r--set_sender.c12
-rw-r--r--set_sub_protocol.c12
-rw-r--r--sig_notation_add.c12
-rw-r--r--signers_add.c12
113 files changed, 1696 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..983233b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+*\#*
+*~
+*.o
+*.a
+*.lo
+*.so
+*.so.*
+*.su
+*.dll
+*.dylib
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c437151
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,15 @@
+ISC License
+
+© 2019 Mattias Andrée <maandree@kth.se>
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..b2a02cb
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,169 @@
+.POSIX:
+
+CONFIGFILE = config.mk
+include $(CONFIGFILE)
+
+OS = linux
+# linux = Linux
+# macos = Mac OS
+include $(OS).mk
+
+LIB_MAJOR = 1
+LIB_MINOR = 0
+LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
+
+
+HDR =\
+ liberror-gpgme.h\
+ internal.h
+
+OBJ =\
+ cancel_async.o\
+ cancel.o\
+ conf_arg_new.o\
+ conf_opt_change.o\
+ ctx_set_engine_info.o\
+ data_new_from_cbs.o\
+ data_new_from_estream.o\
+ data_new_from_fd.o\
+ data_new_from_file.o\
+ data_new_from_filepart.o\
+ data_new_from_mem.o\
+ data_new_from_stream.o\
+ data_new.o\
+ data_rewind.o\
+ data_set_encoding.o\
+ data_set_file_name.o\
+ data_set_flag.o\
+ engine_check_version.o\
+ get_engine_info.o\
+ get_key.o\
+ key_from_uid.o\
+ new.o\
+ op_adduid.o\
+ op_adduid_start.o\
+ op_assuan_transact_ext.o\
+ op_assuan_transact_start.o\
+ op_conf_dir.o\
+ op_conf_load.o\
+ op_conf_save.o\
+ op_createkey.o\
+ op_createkey_start.o\
+ op_createsubkey.o\
+ op_createsubkey_start.o\
+ op_decrypt.o\
+ op_decrypt_ext.o\
+ op_decrypt_ext_start.o\
+ op_decrypt_start.o\
+ op_decrypt_verify.o\
+ op_decrypt_verify_start.o\
+ op_delete_ext.o\
+ op_delete_ext_start.o\
+ op_delete.o\
+ op_delete_start.o\
+ op_encrypt_ext.o\
+ op_encrypt_ext_start.o\
+ op_encrypt.o\
+ op_encrypt_sign_ext.o\
+ op_encrypt_sign_ext_start.o\
+ op_encrypt_sign.o\
+ op_encrypt_sign_start.o\
+ op_encrypt_start.o\
+ op_export_ext.o\
+ op_export_ext_start.o\
+ op_export_keys.o\
+ op_export_keys_start.o\
+ op_export.o\
+ op_export_start.o\
+ op_genkey.o\
+ op_genkey_start.o\
+ op_getauditlog.o\
+ op_getauditlog_start.o\
+ op_import_keys.o\
+ op_import_keys_start.o\
+ op_import.o\
+ op_import_start.o\
+ op_interact.o\
+ op_interact_start.o\
+ op_keylist_end.o\
+ op_keylist_ext_start.o\
+ op_keylist_from_data_start.o\
+ op_keylist_next.o\
+ op_keylist_start.o\
+ op_keysign.o\
+ op_keysign_start.o\
+ op_passwd.o\
+ op_passwd_start.o\
+ op_query_swdb.o\
+ op_revuid.o\
+ op_revuid_start.o\
+ op_set_uid_flag.o\
+ op_set_uid_flag_start.o\
+ op_sign.o\
+ op_sign_start.o\
+ op_spawn.o\
+ op_spawn_start.o\
+ op_tofu_policy.o\
+ op_tofu_policy_start.o\
+ op_trustlist_end.o\
+ op_trustlist_next.o\
+ op_trustlist_start.o\
+ op_verify.o\
+ op_verify_start.o\
+ op_vfs_create.o\
+ op_vfs_mount.o\
+ set_ctx_flag.o\
+ set_engine_info.o\
+ set_keylist_mode.o\
+ set_locale.o\
+ set_pinentry_mode.o\
+ set_protocol.o\
+ set_sender.o\
+ set_sub_protocol.o\
+ signers_add.o\
+ sig_notation_add.o
+
+LOBJ = $(OBJ:.o=.lo)
+
+
+all: liberror-gpgme.a liberror-gpgme.$(LIBEXT)
+$(OBJ): $(@:.o=.c) $(HDR)
+$(LOBJ): $(@:.lo=.c) $(HDR)
+
+liberror-gpgme.a: $(OBJ)
+ -rm -f -- $@
+ $(AR) rc $@ $(OBJ)
+ $(AR) s $@
+
+liberror-gpgme.$(LIBEXT): $(LOBJ)
+ $(CC) $(LIBFLAGS) -o $@ $(LOBJ) $(LDFLAGS)
+
+.c.o:
+ $(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS)
+
+.c.lo:
+ $(CC) -c -o $@ $< -fPIC $(CFLAGS) $(CPPFLAGS)
+
+install: liberror-gpgme.a liberror-gpgme.$(LIBEXT)
+ mkdir -p -- "$(DESTDIR)$(PREFIX)/lib"
+ mkdir -p -- "$(DESTDIR)$(PREFIX)/include"
+ mkdir -p -- "$(DESTDIR)$(PREFIX)/share/licenses/liberror-gpgme"
+ cp -- liberror-gpgme.a "$(DESTDIR)$(PREFIX)/lib"
+ cp -- liberror-gpgme.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/liberror-gpgme.$(LIBMINOREXT)"
+ ln -sf -- liberror-gpgme.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/liberror-gpgme.$(LIBMAJOREXT)"
+ ln -sf -- liberror-gpgme.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/liberror-gpgme.$(LIBEXT)"
+ cp -- liberror-gpgme.h "$(DESTDIR)$(PREFIX)/include"
+ cp -- LICENSE "$(DESTDIR)$(PREFIX)/share/licenses/liberror-gpgme"
+
+uninstall:
+ -rm -f -- "$(DESTDIR)$(PREFIX)/lib/liberror-gpgme."*
+ -rm -f -- "$(DESTDIR)$(PREFIX)/include/liberror-gpgme.h"
+ -rm -rf -- "$(DESTDIR)$(PREFIX)/share/licenses/liberror-gpgme"
+
+clean:
+ -rm -f -- *.o *.lo *.a *.so *.so.* *.su *.test
+
+.SUFFIXES:
+.SUFFIXES: .c .o .lo .a
+
+.PHONY: all install uninstall clean
diff --git a/README b/README
new file mode 100644
index 0000000..e41ce8d
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+This is a gpgme wrapper library providing liberror errors.
diff --git a/cancel.c b/cancel.c
new file mode 100644
index 0000000..5922044
--- /dev/null
+++ b/cancel.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_cancel(gpgme_ctx_t ctx)
+{
+ gpgme_error_t ret = gpgme_cancel(ctx);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_cancel", ret);
+ return ret;
+}
diff --git a/cancel_async.c b/cancel_async.c
new file mode 100644
index 0000000..ca2905b
--- /dev/null
+++ b/cancel_async.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_cancel_async(gpgme_ctx_t ctx)
+{
+ gpgme_error_t ret = gpgme_cancel_async(ctx);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_cancel_async", ret);
+ return ret;
+}
diff --git a/conf_arg_new.c b/conf_arg_new.c
new file mode 100644
index 0000000..577677e
--- /dev/null
+++ b/conf_arg_new.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_conf_arg_new(gpgme_conf_arg_t *arg_p, gpgme_conf_type_t type, const void *value)
+{
+ gpgme_error_t ret = gpgme_conf_arg_new(arg_p, type, value);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_conf_arg_new", ret);
+ return ret;
+}
diff --git a/conf_opt_change.c b/conf_opt_change.c
new file mode 100644
index 0000000..41d81d7
--- /dev/null
+++ b/conf_opt_change.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_conf_opt_change(gpgme_conf_opt_t opt, int reset, gpgme_conf_arg_t arg)
+{
+ gpgme_error_t ret = gpgme_conf_opt_change(opt, reset, arg);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_conf_opt_change", ret);
+ return ret;
+}
diff --git a/config.mk b/config.mk
new file mode 100644
index 0000000..fa0ad74
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,6 @@
+PREFIX = /usr
+MANPREFIX = $(PREFIX)/share/man
+
+CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700
+CFLAGS = -std=c99 -Wall -pedantic
+LDFLAGS = -s -lerror -lgpgme
diff --git a/ctx_set_engine_info.c b/ctx_set_engine_info.c
new file mode 100644
index 0000000..bf41635
--- /dev/null
+++ b/ctx_set_engine_info.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_ctx_set_engine_info(gpgme_ctx_t ctx, gpgme_protocol_t proto, const char *file_name, const char *home_dir)
+{
+ gpgme_error_t ret = gpgme_ctx_set_engine_info(ctx, proto, file_name, home_dir);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_ctx_set_engine_info", ret);
+ return ret;
+}
diff --git a/data_new.c b/data_new.c
new file mode 100644
index 0000000..94fc24e
--- /dev/null
+++ b/data_new.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_new(gpgme_data_t *r_dh)
+{
+ gpgme_error_t ret = gpgme_data_new(r_dh);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_new", ret);
+ return ret;
+}
diff --git a/data_new_from_cbs.c b/data_new_from_cbs.c
new file mode 100644
index 0000000..40eb940
--- /dev/null
+++ b/data_new_from_cbs.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_new_from_cbs(gpgme_data_t *dh, gpgme_data_cbs_t cbs, void *handle)
+{
+ gpgme_error_t ret = gpgme_data_new_from_cbs(dh, cbs, handle);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_new_from_cbs", ret);
+ return ret;
+}
diff --git a/data_new_from_estream.c b/data_new_from_estream.c
new file mode 100644
index 0000000..6f52ef3
--- /dev/null
+++ b/data_new_from_estream.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_new_from_estream(gpgme_data_t *r_dh, gpgrt_stream_t stream)
+{
+ gpgme_error_t ret = gpgme_data_new_from_estream(r_dh, stream);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_new_from_estream", ret);
+ return ret;
+}
diff --git a/data_new_from_fd.c b/data_new_from_fd.c
new file mode 100644
index 0000000..0c4346d
--- /dev/null
+++ b/data_new_from_fd.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_new_from_fd(gpgme_data_t *dh, int fd)
+{
+ gpgme_error_t ret = gpgme_data_new_from_fd(dh, fd);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_new_from_fd", ret);
+ return ret;
+}
diff --git a/data_new_from_file.c b/data_new_from_file.c
new file mode 100644
index 0000000..74feeb6
--- /dev/null
+++ b/data_new_from_file.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_new_from_file(gpgme_data_t *r_dh, const char *fname, int copy)
+{
+ gpgme_error_t ret = gpgme_data_new_from_file(r_dh, fname, copy);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_new_from_file", ret);
+ return ret;
+}
diff --git a/data_new_from_filepart.c b/data_new_from_filepart.c
new file mode 100644
index 0000000..2285c17
--- /dev/null
+++ b/data_new_from_filepart.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_new_from_filepart(gpgme_data_t *r_dh, const char *fname, FILE *fp, off_t offset, size_t length)
+{
+ gpgme_error_t ret = gpgme_data_new_from_filepart(r_dh, fname, fp, offset, length);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_new_from_filepart", ret);
+ return ret;
+}
diff --git a/data_new_from_mem.c b/data_new_from_mem.c
new file mode 100644
index 0000000..574d8a0
--- /dev/null
+++ b/data_new_from_mem.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_new_from_mem(gpgme_data_t *r_dh, const char *buffer, size_t size, int copy)
+{
+ gpgme_error_t ret = gpgme_data_new_from_mem(r_dh, buffer, size, copy);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_new_from_mem", ret);
+ return ret;
+}
diff --git a/data_new_from_stream.c b/data_new_from_stream.c
new file mode 100644
index 0000000..70d16a0
--- /dev/null
+++ b/data_new_from_stream.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_new_from_stream(gpgme_data_t *dh, FILE *stream)
+{
+ gpgme_error_t ret = gpgme_data_new_from_stream(dh, stream);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_new_from_stream", ret);
+ return ret;
+}
diff --git a/data_rewind.c b/data_rewind.c
new file mode 100644
index 0000000..e269a0c
--- /dev/null
+++ b/data_rewind.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_rewind(gpgme_data_t dh)
+{
+ gpgme_error_t ret = gpgme_data_rewind(dh);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_rewind", ret);
+ return ret;
+}
diff --git a/data_set_encoding.c b/data_set_encoding.c
new file mode 100644
index 0000000..4cc3a01
--- /dev/null
+++ b/data_set_encoding.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_set_encoding(gpgme_data_t dh, gpgme_data_encoding_t enc)
+{
+ gpgme_error_t ret = gpgme_data_set_encoding(dh, enc);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_set_encoding", ret);
+ return ret;
+}
diff --git a/data_set_file_name.c b/data_set_file_name.c
new file mode 100644
index 0000000..df1ec45
--- /dev/null
+++ b/data_set_file_name.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_set_file_name(gpgme_data_t dh, const char *file_name)
+{
+ gpgme_error_t ret = gpgme_data_set_file_name(dh, file_name);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_set_file_name", ret);
+ return ret;
+}
diff --git a/data_set_flag.c b/data_set_flag.c
new file mode 100644
index 0000000..6c0f2d1
--- /dev/null
+++ b/data_set_flag.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_data_set_flag(gpgme_data_t dh, const char *name, const char *value)
+{
+ gpgme_error_t ret = gpgme_data_set_flag(dh, name, value);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_data_set_flag", ret);
+ return ret;
+}
diff --git a/engine_check_version.c b/engine_check_version.c
new file mode 100644
index 0000000..c8ad228
--- /dev/null
+++ b/engine_check_version.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_engine_check_version(gpgme_protocol_t proto)
+{
+ gpgme_error_t ret = gpgme_engine_check_version(proto);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_engine_check_version", ret);
+ return ret;
+}
diff --git a/get_engine_info.c b/get_engine_info.c
new file mode 100644
index 0000000..67e90fc
--- /dev/null
+++ b/get_engine_info.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_get_engine_info(gpgme_engine_info_t *engine_info)
+{
+ gpgme_error_t ret = gpgme_get_engine_info(engine_info);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_get_engine_info", ret);
+ return ret;
+}
diff --git a/get_key.c b/get_key.c
new file mode 100644
index 0000000..208f4d5
--- /dev/null
+++ b/get_key.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_get_key(gpgme_ctx_t ctx, const char *fpr, gpgme_key_t *r_key, int secret)
+{
+ gpgme_error_t ret = gpgme_get_key(ctx, fpr, r_key, secret);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_get_key", ret);
+ return ret;
+}
diff --git a/internal.h b/internal.h
new file mode 100644
index 0000000..c8d9738
--- /dev/null
+++ b/internal.h
@@ -0,0 +1,27 @@
+/* See LICENSE file for copyright and license details. */
+#include "liberror-gpgme.h"
+
+#include <liberror.h>
+#include <errno.h>
+#include <stddef.h>
+
+
+#if defined(__GNUC__)
+# define GCC_ATTRIBUTES(...) __attribute__((__VA_ARGS__))
+#else
+# define GCC_ATTRIBUTES(...)
+#endif
+
+#define HIDDEN GCC_ATTRIBUTES(__visibility__("hidden"))
+
+
+#define liberror_gpgme_set_error(FUNC, CODE)\
+ do {\
+ char desc__[256];\
+ int saved_errno__ = errno;\
+ liberror_save_backtrace(NULL);\
+ gpgme_strerror_r(CODE, desc__, sizeof(desc__));\
+ desc__[255] = '\0';\
+ liberror_set_error(desc__, FUNC, "libgpg-error", CODE);\
+ errno = saved_errno__;\
+ } while (0)
diff --git a/key_from_uid.c b/key_from_uid.c
new file mode 100644
index 0000000..4a52d4c
--- /dev/null
+++ b/key_from_uid.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_key_from_uid(gpgme_key_t *key, const char *name)
+{
+ gpgme_error_t ret = gpgme_key_from_uid(key, name);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_key_from_uid", ret);
+ return ret;
+}
diff --git a/liberror-gpgme.h b/liberror-gpgme.h
new file mode 100644
index 0000000..74c30bf
--- /dev/null
+++ b/liberror-gpgme.h
@@ -0,0 +1,187 @@
+/* See LICENSE file for copyright and license details. */
+#ifndef LIBERROR_GPGME_H
+#define LIBERROR_GPGME_H
+
+#include <gpgme.h>
+
+
+gpgme_error_t liberror_gpgme_new(gpgme_ctx_t *);
+gpgme_error_t liberror_gpgme_set_ctx_flag(gpgme_ctx_t, const char *, const char *);
+gpgme_error_t liberror_gpgme_set_protocol(gpgme_ctx_t, gpgme_protocol_t);
+gpgme_error_t liberror_gpgme_set_sub_protocol(gpgme_ctx_t, gpgme_protocol_t);
+/* TODO const char *gpgme_get_protocol_name(gpgme_protocol_t proto); */
+gpgme_error_t liberror_gpgme_set_keylist_mode(gpgme_ctx_t, gpgme_keylist_mode_t);
+gpgme_error_t liberror_gpgme_set_pinentry_mode(gpgme_ctx_t, gpgme_pinentry_mode_t);
+gpgme_error_t liberror_gpgme_set_locale(gpgme_ctx_t, int, const char *);
+gpgme_error_t liberror_gpgme_ctx_set_engine_info(gpgme_ctx_t, gpgme_protocol_t, const char *, const char *);
+gpgme_error_t liberror_gpgme_signers_add(gpgme_ctx_t, const gpgme_key_t);
+gpgme_error_t liberror_gpgme_sig_notation_add(gpgme_ctx_t, const char *, const char *, gpgme_sig_notation_flags_t);
+gpgme_error_t liberror_gpgme_set_sender(gpgme_ctx_t, const char *);
+
+
+/* TODO ssize_t gpgme_io_read(int fd, void *buffer, size_t count); */
+/* TODO ssize_t gpgme_io_write(int fd, const void *buffer, size_t count); */
+/* TODO int gpgme_io_writen(int fd, const void *buffer, size_t count); */
+/* TODO gpgme_ctx_t gpgme_wait(gpgme_ctx_t ctx, gpgme_error_t *status, int hang); */
+/* TODO gpgme_ctx_t gpgme_wait_ext(gpgme_ctx_t ctx, gpgme_error_t *status, gpgme_error_t *op_err, int hang); */
+gpgme_error_t liberror_gpgme_cancel(gpgme_ctx_t);
+gpgme_error_t liberror_gpgme_cancel_async(gpgme_ctx_t);
+
+
+/* TODO ssize_t gpgme_data_read(gpgme_data_t dh, void *buffer, size_t size); */
+/* TODO ssize_t gpgme_data_write(gpgme_data_t dh, const void *buffer, size_t size); */
+/* TODO off_t gpgme_data_seek(gpgme_data_t dh, off_t offset, int whence); */
+gpgme_error_t liberror_gpgme_data_new(gpgme_data_t *);
+gpgme_error_t liberror_gpgme_data_new_from_mem(gpgme_data_t *, const char *, size_t, int);
+/* TODO char *gpgme_data_release_and_get_mem(gpgme_data_t dh, size_t *r_len); */
+gpgme_error_t liberror_gpgme_data_new_from_cbs(gpgme_data_t *, gpgme_data_cbs_t, void *);
+gpgme_error_t liberror_gpgme_data_new_from_fd(gpgme_data_t *, int);
+gpgme_error_t liberror_gpgme_data_new_from_stream(gpgme_data_t *, FILE *);
+gpgme_error_t liberror_gpgme_data_new_from_estream(gpgme_data_t *, gpgrt_stream_t);
+/* TODO gpgme_data_encoding_t gpgme_data_get_encoding(gpgme_data_t dh); */
+gpgme_error_t liberror_gpgme_data_set_encoding(gpgme_data_t, gpgme_data_encoding_t);
+/* TODO char *gpgme_data_get_file_name(gpgme_data_t dh); */
+gpgme_error_t liberror_gpgme_data_set_file_name(gpgme_data_t, const char *);
+gpgme_error_t liberror_gpgme_data_set_flag(gpgme_data_t, const char *, const char *);
+/* TODO gpgme_data_type_t gpgme_data_identify(gpgme_data_t dh, int reserved); */
+gpgme_error_t liberror_gpgme_data_new_from_file(gpgme_data_t *, const char *, int);
+gpgme_error_t liberror_gpgme_data_new_from_filepart(gpgme_data_t *, const char *, FILE *, off_t, size_t);
+gpgme_error_t liberror_gpgme_data_rewind(gpgme_data_t);
+
+
+gpgme_error_t liberror_gpgme_get_key(gpgme_ctx_t, const char *, gpgme_key_t *, int);
+gpgme_error_t liberror_gpgme_key_from_uid(gpgme_key_t *, const char *);
+
+
+gpgme_error_t liberror_gpgme_op_encrypt_start(gpgme_ctx_t, gpgme_key_t[], gpgme_encrypt_flags_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_encrypt(gpgme_ctx_t, gpgme_key_t[], gpgme_encrypt_flags_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_encrypt_ext_start(gpgme_ctx_t, gpgme_key_t[], const char *,
+ gpgme_encrypt_flags_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_encrypt_ext(gpgme_ctx_t, gpgme_key_t[], const char *,
+ gpgme_encrypt_flags_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_encrypt_sign_start(gpgme_ctx_t, gpgme_key_t[], gpgme_encrypt_flags_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_encrypt_sign(gpgme_ctx_t, gpgme_key_t[], gpgme_encrypt_flags_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_encrypt_sign_ext_start(gpgme_ctx_t, gpgme_key_t[], const char *,
+ gpgme_encrypt_flags_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_encrypt_sign_ext(gpgme_ctx_t, gpgme_key_t[], const char *,
+ gpgme_encrypt_flags_t, gpgme_data_t, gpgme_data_t);
+
+
+gpgme_error_t liberror_gpgme_op_decrypt_start(gpgme_ctx_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_decrypt(gpgme_ctx_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_decrypt_verify_start(gpgme_ctx_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_decrypt_verify(gpgme_ctx_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_decrypt_ext_start(gpgme_ctx_t, gpgme_decrypt_flags_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_decrypt_ext(gpgme_ctx_t, gpgme_decrypt_flags_t, gpgme_data_t, gpgme_data_t);
+
+
+gpgme_error_t liberror_gpgme_op_sign_start(gpgme_ctx_t, gpgme_data_t, gpgme_data_t, gpgme_sig_mode_t);
+gpgme_error_t liberror_gpgme_op_sign(gpgme_ctx_t, gpgme_data_t, gpgme_data_t, gpgme_sig_mode_t);
+
+
+gpgme_error_t liberror_gpgme_op_verify_start(gpgme_ctx_t, gpgme_data_t, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_verify(gpgme_ctx_t, gpgme_data_t, gpgme_data_t, gpgme_data_t);
+
+
+gpgme_error_t liberror_gpgme_op_import_start(gpgme_ctx_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_import(gpgme_ctx_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_import_keys_start(gpgme_ctx_t, gpgme_key_t[]);
+gpgme_error_t liberror_gpgme_op_import_keys(gpgme_ctx_t, gpgme_key_t[]);
+gpgme_error_t liberror_gpgme_op_export_start(gpgme_ctx_t, const char *, gpgme_export_mode_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_export(gpgme_ctx_t, const char *, gpgme_export_mode_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_export_ext_start(gpgme_ctx_t, const char *[], gpgme_export_mode_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_export_ext(gpgme_ctx_t, const char *[], gpgme_export_mode_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_export_keys_start(gpgme_ctx_t, gpgme_key_t[], gpgme_export_mode_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_export_keys(gpgme_ctx_t, gpgme_key_t[], gpgme_export_mode_t, gpgme_data_t);
+
+
+gpgme_error_t liberror_gpgme_op_genkey_start(gpgme_ctx_t, const char *, gpgme_data_t, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_genkey(gpgme_ctx_t, const char *, gpgme_data_t, gpgme_data_t);
+
+
+gpgme_error_t liberror_gpgme_op_createkey_start(gpgme_ctx_t, const char *, const char *, unsigned long,
+ unsigned long, gpgme_key_t, unsigned int);
+gpgme_error_t liberror_gpgme_op_createkey(gpgme_ctx_t, const char *, const char *, unsigned long,
+ unsigned long, gpgme_key_t, unsigned int);
+gpgme_error_t liberror_gpgme_op_createsubkey_start(gpgme_ctx_t, gpgme_key_t, const char *, unsigned long, unsigned long, unsigned int);
+gpgme_error_t liberror_gpgme_op_createsubkey(gpgme_ctx_t, gpgme_key_t, const char *, unsigned long, unsigned long, unsigned int);
+gpgme_error_t liberror_gpgme_op_adduid_start(gpgme_ctx_t, gpgme_key_t, const char *, unsigned int);
+gpgme_error_t liberror_gpgme_op_adduid(gpgme_ctx_t, gpgme_key_t, const char *, unsigned int);
+gpgme_error_t liberror_gpgme_op_revuid_start(gpgme_ctx_t, gpgme_key_t, const char *, unsigned int);
+gpgme_error_t liberror_gpgme_op_revuid(gpgme_ctx_t, gpgme_key_t, const char *, unsigned int);
+gpgme_error_t liberror_gpgme_op_set_uid_flag_start(gpgme_ctx_t, gpgme_key_t, const char *, const char *, const char *);
+gpgme_error_t liberror_gpgme_op_set_uid_flag(gpgme_ctx_t, gpgme_key_t, const char *, const char *, const char *);
+gpgme_error_t liberror_gpgme_op_delete_start(gpgme_ctx_t, const gpgme_key_t, int);
+gpgme_error_t liberror_gpgme_op_delete(gpgme_ctx_t, const gpgme_key_t, int);
+gpgme_error_t liberror_gpgme_op_delete_ext_start(gpgme_ctx_t, const gpgme_key_t, unsigned int);
+gpgme_error_t liberror_gpgme_op_delete_ext(gpgme_ctx_t, const gpgme_key_t, unsigned int);
+
+
+gpgme_error_t liberror_gpgme_op_keysign_start(gpgme_ctx_t, gpgme_key_t, const char *, unsigned long, unsigned int);
+gpgme_error_t liberror_gpgme_op_keysign(gpgme_ctx_t, gpgme_key_t, const char *, unsigned long, unsigned int);
+
+
+gpgme_error_t liberror_gpgme_op_interact_start(gpgme_ctx_t, gpgme_key_t, unsigned int, gpgme_interact_cb_t, void *, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_interact(gpgme_ctx_t, gpgme_key_t, unsigned int, gpgme_interact_cb_t, void *, gpgme_data_t);
+gpgme_error_t liberror_gpgme_op_tofu_policy_start(gpgme_ctx_t, gpgme_key_t, gpgme_tofu_policy_t);
+gpgme_error_t liberror_gpgme_op_tofu_policy(gpgme_ctx_t, gpgme_key_t, gpgme_tofu_policy_t);
+
+
+gpgme_error_t liberror_gpgme_op_keylist_start(gpgme_ctx_t, const char *, int);
+gpgme_error_t liberror_gpgme_op_keylist_ext_start(gpgme_ctx_t, const char *[], int, int);
+gpgme_error_t liberror_gpgme_op_keylist_from_data_start(gpgme_ctx_t, gpgme_data_t, int);
+gpgme_error_t liberror_gpgme_op_keylist_next(gpgme_ctx_t, gpgme_key_t *);
+gpgme_error_t liberror_gpgme_op_keylist_end(gpgme_ctx_t);
+
+
+gpgme_error_t liberror_gpgme_op_passwd_start(gpgme_ctx_t, gpgme_key_t, unsigned int);
+gpgme_error_t liberror_gpgme_op_passwd(gpgme_ctx_t, gpgme_key_t, unsigned int);
+
+
+gpgme_error_t liberror_gpgme_op_trustlist_start(gpgme_ctx_t, const char *, int);
+gpgme_error_t liberror_gpgme_op_trustlist_next(gpgme_ctx_t, gpgme_trust_item_t *);
+gpgme_error_t liberror_gpgme_op_trustlist_end(gpgme_ctx_t);
+
+
+gpgme_error_t liberror_gpgme_op_getauditlog_start(gpgme_ctx_t, gpgme_data_t, unsigned int);
+gpgme_error_t liberror_gpgme_op_getauditlog(gpgme_ctx_t, gpgme_data_t, unsigned int);
+
+
+gpgme_error_t liberror_gpgme_op_spawn_start(gpgme_ctx_t, const char *, const char *[], gpgme_data_t,
+ gpgme_data_t, gpgme_data_t, unsigned int);
+gpgme_error_t liberror_gpgme_op_spawn(gpgme_ctx_t, const char *, const char *[], gpgme_data_t,
+ gpgme_data_t, gpgme_data_t, unsigned int);
+
+
+gpgme_error_t liberror_gpgme_op_assuan_transact_start(gpgme_ctx_t, const char *, gpgme_assuan_data_cb_t, void *,
+ gpgme_assuan_inquire_cb_t, void *, gpgme_assuan_status_cb_t, void *);
+gpgme_error_t liberror_gpgme_op_assuan_transact_ext(gpgme_ctx_t, const char *, gpgme_assuan_data_cb_t, void *,
+ gpgme_assuan_inquire_cb_t, void *, gpgme_assuan_status_cb_t, void *,
+ gpgme_error_t *);
+
+
+gpgme_error_t liberror_gpgme_op_vfs_mount(gpgme_ctx_t, const char *, const char *, unsigned int, gpgme_error_t *);
+gpgme_error_t liberror_gpgme_op_vfs_create(gpgme_ctx_t, gpgme_key_t[], const char *, unsigned int, gpgme_error_t *);
+
+
+gpgme_error_t liberror_gpgme_conf_arg_new(gpgme_conf_arg_t *, gpgme_conf_type_t, const void *);
+gpgme_error_t liberror_gpgme_conf_opt_change(gpgme_conf_opt_t, int, gpgme_conf_arg_t);
+gpgme_error_t liberror_gpgme_op_conf_load(gpgme_ctx_t, gpgme_conf_comp_t *);
+gpgme_error_t liberror_gpgme_op_conf_save(gpgme_ctx_t, gpgme_conf_comp_t);
+gpgme_error_t liberror_gpgme_op_conf_dir(gpgme_ctx_t, const char *, char **);
+gpgme_error_t liberror_gpgme_op_query_swdb(gpgme_ctx_t, const char *, const char *, unsigned int);
+
+
+/* TODO int gpgme_set_global_flag(const char *name, const char *value); */
+/* TODO const char *gpgme_check_version(const char *req_version); */
+/* TODO const char *gpgme_get_dirinfo(const char *what); */
+gpgme_error_t liberror_gpgme_get_engine_info(gpgme_engine_info_t *);
+gpgme_error_t liberror_gpgme_set_engine_info(gpgme_protocol_t, const char *, const char *);
+gpgme_error_t liberror_gpgme_engine_check_version(gpgme_protocol_t);
+/* TODO char *gpgme_pubkey_algo_string(gpgme_subkey_t subkey); */
+/* TODO const char *gpgme_pubkey_algo_name(gpgme_pubkey_algo_t algo); */
+/* TODO const char *gpgme_hash_algo_name(gpgme_hash_algo_t algo); */
+/* TODO char *gpgme_addrspec_from_uid(const char *uid); */
+
+
+#endif
diff --git a/linux.mk b/linux.mk
new file mode 100644
index 0000000..65e26af
--- /dev/null
+++ b/linux.mk
@@ -0,0 +1,5 @@
+LIBEXT = so
+LIBFLAGS = -shared -Wl,-soname,liberror-gpgme.$(LIBEXT).$(LIB_MAJOR)
+
+LIBMAJOREXT = $(LIBEXT).$(LIB_MAJOR)
+LIBMINOREXT = $(LIBEXT).$(LIB_VERSION)
diff --git a/macos.mk b/macos.mk
new file mode 100644
index 0000000..b475197
--- /dev/null
+++ b/macos.mk
@@ -0,0 +1,5 @@
+LIBEXT = dylib
+LIBFLAGS = -dynamiclib
+
+LIBMAJOREXT = $(LIB_MAJOR).$(LIBEXT)
+LIBMINOREXT = $(LIB_VERSION).$(LIBEXT)
diff --git a/new.c b/new.c
new file mode 100644
index 0000000..9cf17d0
--- /dev/null
+++ b/new.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_new(gpgme_ctx_t *ctx)
+{
+ gpgme_error_t ret = gpgme_new(ctx);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_new", ret);
+ return ret;
+}
diff --git a/op_adduid.c b/op_adduid.c
new file mode 100644
index 0000000..624c0dd
--- /dev/null
+++ b/op_adduid.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_adduid(gpgme_ctx_t ctx, gpgme_key_t key, const char *userid, unsigned int reserved)
+{
+ gpgme_error_t ret = gpgme_op_adduid(ctx, key, userid, reserved);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_adduid", ret);
+ return ret;
+}
diff --git a/op_adduid_start.c b/op_adduid_start.c
new file mode 100644
index 0000000..010ec3e
--- /dev/null
+++ b/op_adduid_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_adduid_start(gpgme_ctx_t ctx, gpgme_key_t key, const char *userid, unsigned int reserved)
+{
+ gpgme_error_t ret = gpgme_op_adduid_start(ctx, key, userid, reserved);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_adduid_start", ret);
+ return ret;
+}
diff --git a/op_assuan_transact_ext.c b/op_assuan_transact_ext.c
new file mode 100644
index 0000000..861c6fc
--- /dev/null
+++ b/op_assuan_transact_ext.c
@@ -0,0 +1,15 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_assuan_transact_ext(gpgme_ctx_t ctx, const char *command, gpgme_assuan_data_cb_t data_cb,
+ void *data_cb_value, gpgme_assuan_inquire_cb_t inq_cb, void *inq_cb_value,
+ gpgme_assuan_status_cb_t stat_cb, void *stat_cb_value, gpgme_error_t *op_err)
+{
+ gpgme_error_t ret = gpgme_op_assuan_transact_ext(ctx, command, data_cb, data_cb_value, inq_cb,
+ inq_cb_value, stat_cb, stat_cb_value, op_err);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_assuan_transact_ext", ret);
+ return ret;
+}
diff --git a/op_assuan_transact_start.c b/op_assuan_transact_start.c
new file mode 100644
index 0000000..7991251
--- /dev/null
+++ b/op_assuan_transact_start.c
@@ -0,0 +1,15 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_assuan_transact_start(gpgme_ctx_t ctx, const char *command, gpgme_assuan_data_cb_t data_cb,
+ void *data_cb_value, gpgme_assuan_inquire_cb_t inq_cb, void *inq_cb_value,
+ gpgme_assuan_status_cb_t stat_cb, void *stat_cb_value)
+{
+ gpgme_error_t ret = gpgme_op_assuan_transact_start(ctx, command, data_cb, data_cb_value, inq_cb,
+ inq_cb_value, stat_cb, stat_cb_value);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_assuan_transact_start", ret);
+ return ret;
+}
diff --git a/op_conf_dir.c b/op_conf_dir.c
new file mode 100644
index 0000000..a9752e2
--- /dev/null
+++ b/op_conf_dir.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_conf_dir(gpgme_ctx_t ctx, const char *what, char **result)
+{
+ gpgme_error_t ret = gpgme_op_conf_dir(ctx, what, result);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_conf_dir", ret);
+ return ret;
+}
diff --git a/op_conf_load.c b/op_conf_load.c
new file mode 100644
index 0000000..b59e460
--- /dev/null
+++ b/op_conf_load.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_conf_load(gpgme_ctx_t ctx, gpgme_conf_comp_t *conf_p)
+{
+ gpgme_error_t ret = gpgme_op_conf_load(ctx, conf_p);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_conf_load", ret);
+ return ret;
+}
diff --git a/op_conf_save.c b/op_conf_save.c
new file mode 100644
index 0000000..d5e2037
--- /dev/null
+++ b/op_conf_save.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_conf_save(gpgme_ctx_t ctx, gpgme_conf_comp_t comp)
+{
+ gpgme_error_t ret = gpgme_op_conf_save(ctx, comp);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_conf_save", ret);
+ return ret;
+}
diff --git a/op_createkey.c b/op_createkey.c
new file mode 100644
index 0000000..9eee3fa
--- /dev/null
+++ b/op_createkey.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_createkey(gpgme_ctx_t ctx, const char *userid, const char *algo, unsigned long reserved,
+ unsigned long expires, gpgme_key_t certkey, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_createkey(ctx, userid, algo, reserved, expires, certkey, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_createkey", ret);
+ return ret;
+}
diff --git a/op_createkey_start.c b/op_createkey_start.c
new file mode 100644
index 0000000..e084f17
--- /dev/null
+++ b/op_createkey_start.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_createkey_start(gpgme_ctx_t ctx, const char *userid, const char *algo, unsigned long reserved,
+ unsigned long expires, gpgme_key_t certkey, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_createkey_start(ctx, userid, algo, reserved, expires, certkey, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_createkey_start", ret);
+ return ret;
+}
diff --git a/op_createsubkey.c b/op_createsubkey.c
new file mode 100644
index 0000000..fc999ca
--- /dev/null
+++ b/op_createsubkey.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_createsubkey(gpgme_ctx_t ctx, gpgme_key_t key, const char *algo,
+ unsigned long reserved, unsigned long expires, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_createsubkey(ctx, key, algo, reserved, expires, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_createsubkey", ret);
+ return ret;
+}
diff --git a/op_createsubkey_start.c b/op_createsubkey_start.c
new file mode 100644
index 0000000..55946e4
--- /dev/null
+++ b/op_createsubkey_start.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_createsubkey_start(gpgme_ctx_t ctx, gpgme_key_t key, const char *algo,
+ unsigned long reserved, unsigned long expires, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_createsubkey_start(ctx, key, algo, reserved, expires, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_createsubkey_start", ret);
+ return ret;
+}
diff --git a/op_decrypt.c b/op_decrypt.c
new file mode 100644
index 0000000..dd01a83
--- /dev/null
+++ b/op_decrypt.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_decrypt(gpgme_ctx_t ctx, gpgme_data_t cipher, gpgme_data_t plain)
+{
+ gpgme_error_t ret = gpgme_op_decrypt(ctx, cipher, plain);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_decrypt", ret);
+ return ret;
+}
diff --git a/op_decrypt_ext.c b/op_decrypt_ext.c
new file mode 100644
index 0000000..7e54806
--- /dev/null
+++ b/op_decrypt_ext.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_decrypt_ext(gpgme_ctx_t ctx, gpgme_decrypt_flags_t flags, gpgme_data_t cipher, gpgme_data_t plain)
+{
+ gpgme_error_t ret = gpgme_op_decrypt_ext(ctx, flags, cipher, plain);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_decrypt_ext", ret);
+ return ret;
+}
diff --git a/op_decrypt_ext_start.c b/op_decrypt_ext_start.c
new file mode 100644
index 0000000..ae4f96d
--- /dev/null
+++ b/op_decrypt_ext_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_decrypt_ext_start(gpgme_ctx_t ctx, gpgme_decrypt_flags_t flags, gpgme_data_t cipher, gpgme_data_t plain)
+{
+ gpgme_error_t ret = gpgme_op_decrypt_ext_start(ctx, flags, cipher, plain);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_decrypt_ext_start", ret);
+ return ret;
+}
diff --git a/op_decrypt_start.c b/op_decrypt_start.c
new file mode 100644
index 0000000..d61eb0f
--- /dev/null
+++ b/op_decrypt_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_decrypt_start(gpgme_ctx_t ctx, gpgme_data_t cipher, gpgme_data_t plain)
+{
+ gpgme_error_t ret = gpgme_op_decrypt_start(ctx, cipher, plain);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_decrypt_start", ret);
+ return ret;
+}
diff --git a/op_decrypt_verify.c b/op_decrypt_verify.c
new file mode 100644
index 0000000..0299b36
--- /dev/null
+++ b/op_decrypt_verify.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_decrypt_verify(gpgme_ctx_t ctx, gpgme_data_t cipher, gpgme_data_t plain)
+{
+ gpgme_error_t ret = gpgme_op_decrypt_verify(ctx, cipher, plain);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_decrypt_verify", ret);
+ return ret;
+}
diff --git a/op_decrypt_verify_start.c b/op_decrypt_verify_start.c
new file mode 100644
index 0000000..f418ef0
--- /dev/null
+++ b/op_decrypt_verify_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_decrypt_verify_start(gpgme_ctx_t ctx, gpgme_data_t cipher, gpgme_data_t plain)
+{
+ gpgme_error_t ret = gpgme_op_decrypt_verify_start(ctx, cipher, plain);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_decrypt_verify_start", ret);
+ return ret;
+}
diff --git a/op_delete.c b/op_delete.c
new file mode 100644
index 0000000..139ab41
--- /dev/null
+++ b/op_delete.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_delete(gpgme_ctx_t ctx, const gpgme_key_t key, int allow_secret)
+{
+ gpgme_error_t ret = gpgme_op_delete(ctx, key, allow_secret);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_delete", ret);
+ return ret;
+}
diff --git a/op_delete_ext.c b/op_delete_ext.c
new file mode 100644
index 0000000..0d973b8
--- /dev/null
+++ b/op_delete_ext.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_delete_ext(gpgme_ctx_t ctx, const gpgme_key_t key, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_delete_ext(ctx, key, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_delete_ext", ret);
+ return ret;
+}
diff --git a/op_delete_ext_start.c b/op_delete_ext_start.c
new file mode 100644
index 0000000..4d259bb
--- /dev/null
+++ b/op_delete_ext_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_delete_ext_start(gpgme_ctx_t ctx, const gpgme_key_t key, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_delete_ext_start(ctx, key, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_delete_ext_start", ret);
+ return ret;
+}
diff --git a/op_delete_start.c b/op_delete_start.c
new file mode 100644
index 0000000..addfc43
--- /dev/null
+++ b/op_delete_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_delete_start(gpgme_ctx_t ctx, const gpgme_key_t key, int allow_secret)
+{
+ gpgme_error_t ret = gpgme_op_delete_start(ctx, key, allow_secret);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_delete_start", ret);
+ return ret;
+}
diff --git a/op_encrypt.c b/op_encrypt.c
new file mode 100644
index 0000000..609b201
--- /dev/null
+++ b/op_encrypt.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_encrypt(gpgme_ctx_t ctx, gpgme_key_t recp[], gpgme_encrypt_flags_t flags,
+ gpgme_data_t plain, gpgme_data_t cipher)
+{
+ gpgme_error_t ret = gpgme_op_encrypt(ctx, recp, flags, plain, cipher);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_encrypt", ret);
+ return ret;
+}
diff --git a/op_encrypt_ext.c b/op_encrypt_ext.c
new file mode 100644
index 0000000..8529351
--- /dev/null
+++ b/op_encrypt_ext.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_encrypt_ext(gpgme_ctx_t ctx, gpgme_key_t recp[], const char *recpstring,
+ gpgme_encrypt_flags_t flags, gpgme_data_t plain, gpgme_data_t cipher)
+{
+ gpgme_error_t ret = gpgme_op_encrypt_ext(ctx, recp, recpstring, flags, plain, cipher);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_encrypt_ext", ret);
+ return ret;
+}
diff --git a/op_encrypt_ext_start.c b/op_encrypt_ext_start.c
new file mode 100644
index 0000000..1e5c0e8
--- /dev/null
+++ b/op_encrypt_ext_start.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_encrypt_ext_start(gpgme_ctx_t ctx, gpgme_key_t recp[], const char *recpstring,
+ gpgme_encrypt_flags_t flags, gpgme_data_t plain, gpgme_data_t cipher)
+{
+ gpgme_error_t ret = gpgme_op_encrypt_ext_start(ctx, recp, recpstring, flags, plain, cipher);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_encrypt_ext_start", ret);
+ return ret;
+}
diff --git a/op_encrypt_sign.c b/op_encrypt_sign.c
new file mode 100644
index 0000000..a9561d2
--- /dev/null
+++ b/op_encrypt_sign.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_encrypt_sign(gpgme_ctx_t ctx, gpgme_key_t recp[], gpgme_encrypt_flags_t flags,
+ gpgme_data_t plain, gpgme_data_t cipher)
+{
+ gpgme_error_t ret = gpgme_op_encrypt_sign(ctx, recp, flags, plain, cipher);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_encrypt_sign", ret);
+ return ret;
+}
diff --git a/op_encrypt_sign_ext.c b/op_encrypt_sign_ext.c
new file mode 100644
index 0000000..14f8cd8
--- /dev/null
+++ b/op_encrypt_sign_ext.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_encrypt_sign_ext(gpgme_ctx_t ctx, gpgme_key_t recp[], const char *recpstring,
+ gpgme_encrypt_flags_t flags, gpgme_data_t plain, gpgme_data_t cipher)
+{
+ gpgme_error_t ret = gpgme_op_encrypt_sign_ext(ctx, recp, recpstring, flags, plain, cipher);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_encrypt_sign_ext", ret);
+ return ret;
+}
diff --git a/op_encrypt_sign_ext_start.c b/op_encrypt_sign_ext_start.c
new file mode 100644
index 0000000..e2b5e5d
--- /dev/null
+++ b/op_encrypt_sign_ext_start.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_encrypt_sign_ext_start(gpgme_ctx_t ctx, gpgme_key_t recp[], const char *recpstring,
+ gpgme_encrypt_flags_t flags, gpgme_data_t plain, gpgme_data_t cipher)
+{
+ gpgme_error_t ret = gpgme_op_encrypt_sign_ext_start(ctx, recp, recpstring, flags, plain, cipher);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_encrypt_sign_ext_start", ret);
+ return ret;
+}
diff --git a/op_encrypt_sign_start.c b/op_encrypt_sign_start.c
new file mode 100644
index 0000000..0ee9604
--- /dev/null
+++ b/op_encrypt_sign_start.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_encrypt_sign_start(gpgme_ctx_t ctx, gpgme_key_t recp[], gpgme_encrypt_flags_t flags,
+ gpgme_data_t plain, gpgme_data_t cipher)
+{
+ gpgme_error_t ret = gpgme_op_encrypt_sign_start(ctx, recp, flags, plain, cipher);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_encrypt_sign_start", ret);
+ return ret;
+}
diff --git a/op_encrypt_start.c b/op_encrypt_start.c
new file mode 100644
index 0000000..74e7c1c
--- /dev/null
+++ b/op_encrypt_start.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_encrypt_start(gpgme_ctx_t ctx, gpgme_key_t recp[], gpgme_encrypt_flags_t flags,
+ gpgme_data_t plain, gpgme_data_t cipher)
+{
+ gpgme_error_t ret = gpgme_op_encrypt_start(ctx, recp, flags, plain, cipher);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_encrypt_start", ret);
+ return ret;
+}
diff --git a/op_export.c b/op_export.c
new file mode 100644
index 0000000..039b0f3
--- /dev/null
+++ b/op_export.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_export(gpgme_ctx_t ctx, const char *pattern, gpgme_export_mode_t mode, gpgme_data_t keydata)
+{
+ gpgme_error_t ret = gpgme_op_export(ctx, pattern, mode, keydata);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_export", ret);
+ return ret;
+}
diff --git a/op_export_ext.c b/op_export_ext.c
new file mode 100644
index 0000000..0a854cd
--- /dev/null
+++ b/op_export_ext.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_export_ext(gpgme_ctx_t ctx, const char *pattern[], gpgme_export_mode_t mode, gpgme_data_t keydata)
+{
+ gpgme_error_t ret = gpgme_op_export_ext(ctx, pattern, mode, keydata);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_export_ext", ret);
+ return ret;
+}
diff --git a/op_export_ext_start.c b/op_export_ext_start.c
new file mode 100644
index 0000000..537c3f6
--- /dev/null
+++ b/op_export_ext_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_export_ext_start(gpgme_ctx_t ctx, const char *pattern[], gpgme_export_mode_t mode, gpgme_data_t keydata)
+{
+ gpgme_error_t ret = gpgme_op_export_ext_start(ctx, pattern, mode, keydata);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_export_ext_start", ret);
+ return ret;
+}
diff --git a/op_export_keys.c b/op_export_keys.c
new file mode 100644
index 0000000..5a7416d
--- /dev/null
+++ b/op_export_keys.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_export_keys(gpgme_ctx_t ctx, gpgme_key_t keys[], gpgme_export_mode_t mode, gpgme_data_t keydata)
+{
+ gpgme_error_t ret = gpgme_op_export_keys(ctx, keys, mode, keydata);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_export_keys", ret);
+ return ret;
+}
diff --git a/op_export_keys_start.c b/op_export_keys_start.c
new file mode 100644
index 0000000..68a6a7d
--- /dev/null
+++ b/op_export_keys_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_export_keys_start(gpgme_ctx_t ctx, gpgme_key_t keys[], gpgme_export_mode_t mode, gpgme_data_t keydata)
+{
+ gpgme_error_t ret = gpgme_op_export_keys_start(ctx, keys, mode, keydata);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_export_keys_start", ret);
+ return ret;
+}
diff --git a/op_export_start.c b/op_export_start.c
new file mode 100644
index 0000000..04e410a
--- /dev/null
+++ b/op_export_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_export_start(gpgme_ctx_t ctx, const char *pattern, gpgme_export_mode_t mode, gpgme_data_t keydata)
+{
+ gpgme_error_t ret = gpgme_op_export_start(ctx, pattern, mode, keydata);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_export_start", ret);
+ return ret;
+}
diff --git a/op_genkey.c b/op_genkey.c
new file mode 100644
index 0000000..7be8ed4
--- /dev/null
+++ b/op_genkey.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_genkey(gpgme_ctx_t ctx, const char *parms, gpgme_data_t pubkey, gpgme_data_t seckey)
+{
+ gpgme_error_t ret = gpgme_op_genkey(ctx, parms, pubkey, seckey);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_genkey", ret);
+ return ret;
+}
diff --git a/op_genkey_start.c b/op_genkey_start.c
new file mode 100644
index 0000000..6168618
--- /dev/null
+++ b/op_genkey_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_genkey_start(gpgme_ctx_t ctx, const char *parms, gpgme_data_t pubkey, gpgme_data_t seckey)
+{
+ gpgme_error_t ret = gpgme_op_genkey_start(ctx, parms, pubkey, seckey);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_genkey_start", ret);
+ return ret;
+}
diff --git a/op_getauditlog.c b/op_getauditlog.c
new file mode 100644
index 0000000..0277268
--- /dev/null
+++ b/op_getauditlog.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_getauditlog(gpgme_ctx_t ctx, gpgme_data_t output, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_getauditlog(ctx, output, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_getauditlog", ret);
+ return ret;
+}
diff --git a/op_getauditlog_start.c b/op_getauditlog_start.c
new file mode 100644
index 0000000..f8d6cb8
--- /dev/null
+++ b/op_getauditlog_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_getauditlog_start(gpgme_ctx_t ctx, gpgme_data_t output, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_getauditlog_start(ctx, output, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_getauditlog_start", ret);
+ return ret;
+}
diff --git a/op_import.c b/op_import.c
new file mode 100644
index 0000000..d24b792
--- /dev/null
+++ b/op_import.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_import(gpgme_ctx_t ctx, gpgme_data_t keydata)
+{
+ gpgme_error_t ret = gpgme_op_import(ctx, keydata);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_import", ret);
+ return ret;
+}
diff --git a/op_import_keys.c b/op_import_keys.c
new file mode 100644
index 0000000..278d08f
--- /dev/null
+++ b/op_import_keys.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_import_keys(gpgme_ctx_t ctx, gpgme_key_t keys[])
+{
+ gpgme_error_t ret = gpgme_op_import_keys(ctx, keys);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_import_keys", ret);
+ return ret;
+}
diff --git a/op_import_keys_start.c b/op_import_keys_start.c
new file mode 100644
index 0000000..2060a61
--- /dev/null
+++ b/op_import_keys_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_import_keys_start(gpgme_ctx_t ctx, gpgme_key_t keys[])
+{
+ gpgme_error_t ret = gpgme_op_import_keys_start(ctx, keys);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_import_keys_start", ret);
+ return ret;
+}
diff --git a/op_import_start.c b/op_import_start.c
new file mode 100644
index 0000000..f0b667a
--- /dev/null
+++ b/op_import_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_import_start(gpgme_ctx_t ctx, gpgme_data_t keydata)
+{
+ gpgme_error_t ret = gpgme_op_import_start(ctx, keydata);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_import_start", ret);
+ return ret;
+}
diff --git a/op_interact.c b/op_interact.c
new file mode 100644
index 0000000..a77eb94
--- /dev/null
+++ b/op_interact.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_interact(gpgme_ctx_t ctx, gpgme_key_t key, unsigned int flags,
+ gpgme_interact_cb_t fnc, void *fnc_value, gpgme_data_t out)
+{
+ gpgme_error_t ret = gpgme_op_interact(ctx, key, flags, fnc, fnc_value, out);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_interact", ret);
+ return ret;
+}
diff --git a/op_interact_start.c b/op_interact_start.c
new file mode 100644
index 0000000..f23d779
--- /dev/null
+++ b/op_interact_start.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_interact_start(gpgme_ctx_t ctx, gpgme_key_t key, unsigned int flags,
+ gpgme_interact_cb_t fnc, void *fnc_value, gpgme_data_t out)
+{
+ gpgme_error_t ret = gpgme_op_interact_start(ctx, key, flags, fnc, fnc_value, out);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_interact_start", ret);
+ return ret;
+}
diff --git a/op_keylist_end.c b/op_keylist_end.c
new file mode 100644
index 0000000..4b7cd84
--- /dev/null
+++ b/op_keylist_end.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_keylist_end(gpgme_ctx_t ctx)
+{
+ gpgme_error_t ret = gpgme_op_keylist_end(ctx);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_keylist_end", ret);
+ return ret;
+}
diff --git a/op_keylist_ext_start.c b/op_keylist_ext_start.c
new file mode 100644
index 0000000..9fb92d9
--- /dev/null
+++ b/op_keylist_ext_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_keylist_ext_start(gpgme_ctx_t ctx, const char *pattern[], int secret_only, int reserved)
+{
+ gpgme_error_t ret = gpgme_op_keylist_ext_start(ctx, pattern, secret_only, reserved);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_keylist_ext_start", ret);
+ return ret;
+}
diff --git a/op_keylist_from_data_start.c b/op_keylist_from_data_start.c
new file mode 100644
index 0000000..adc5f04
--- /dev/null
+++ b/op_keylist_from_data_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_keylist_from_data_start(gpgme_ctx_t ctx, gpgme_data_t data, int reserved)
+{
+ gpgme_error_t ret = gpgme_op_keylist_from_data_start(ctx, data, reserved);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_keylist_from_data_start", ret);
+ return ret;
+}
diff --git a/op_keylist_next.c b/op_keylist_next.c
new file mode 100644
index 0000000..6a81a40
--- /dev/null
+++ b/op_keylist_next.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_keylist_next(gpgme_ctx_t ctx, gpgme_key_t *r_key)
+{
+ gpgme_error_t ret = gpgme_op_keylist_next(ctx, r_key);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_keylist_next", ret);
+ return ret;
+}
diff --git a/op_keylist_start.c b/op_keylist_start.c
new file mode 100644
index 0000000..a70e751
--- /dev/null
+++ b/op_keylist_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_keylist_start(gpgme_ctx_t ctx, const char *pattern, int secret_only)
+{
+ gpgme_error_t ret = gpgme_op_keylist_start(ctx, pattern, secret_only);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_keylist_start", ret);
+ return ret;
+}
diff --git a/op_keysign.c b/op_keysign.c
new file mode 100644
index 0000000..849248d
--- /dev/null
+++ b/op_keysign.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_keysign(gpgme_ctx_t ctx, gpgme_key_t key, const char *userid, unsigned long expires, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_keysign(ctx, key, userid, expires, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_keysign", ret);
+ return ret;
+}
diff --git a/op_keysign_start.c b/op_keysign_start.c
new file mode 100644
index 0000000..36f9926
--- /dev/null
+++ b/op_keysign_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_keysign_start(gpgme_ctx_t ctx, gpgme_key_t key, const char *userid, unsigned long expires, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_keysign_start(ctx, key, userid, expires, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_keysign_start", ret);
+ return ret;
+}
diff --git a/op_passwd.c b/op_passwd.c
new file mode 100644
index 0000000..2c6f602
--- /dev/null
+++ b/op_passwd.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_passwd(gpgme_ctx_t ctx, gpgme_key_t key, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_passwd(ctx, key, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_passwd", ret);
+ return ret;
+}
diff --git a/op_passwd_start.c b/op_passwd_start.c
new file mode 100644
index 0000000..aaf8d3b
--- /dev/null
+++ b/op_passwd_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_passwd_start(gpgme_ctx_t ctx, gpgme_key_t key, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_passwd_start(ctx, key, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_passwd_start", ret);
+ return ret;
+}
diff --git a/op_query_swdb.c b/op_query_swdb.c
new file mode 100644
index 0000000..5cda5d1
--- /dev/null
+++ b/op_query_swdb.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_query_swdb(gpgme_ctx_t ctx, const char *name, const char *iversion, unsigned int reserved)
+{
+ gpgme_error_t ret = gpgme_op_query_swdb(ctx, name, iversion, reserved);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_query_swdb", ret);
+ return ret;
+}
diff --git a/op_revuid.c b/op_revuid.c
new file mode 100644
index 0000000..45b34c8
--- /dev/null
+++ b/op_revuid.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_revuid(gpgme_ctx_t ctx, gpgme_key_t key, const char *userid, unsigned int reserved)
+{
+ gpgme_error_t ret = gpgme_op_revuid(ctx, key, userid, reserved);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_revuid", ret);
+ return ret;
+}
diff --git a/op_revuid_start.c b/op_revuid_start.c
new file mode 100644
index 0000000..efbf307
--- /dev/null
+++ b/op_revuid_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_revuid_start(gpgme_ctx_t ctx, gpgme_key_t key, const char *userid, unsigned int reserved)
+{
+ gpgme_error_t ret = gpgme_op_revuid_start(ctx, key, userid, reserved);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_revuid_start", ret);
+ return ret;
+}
diff --git a/op_set_uid_flag.c b/op_set_uid_flag.c
new file mode 100644
index 0000000..df36809
--- /dev/null
+++ b/op_set_uid_flag.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_set_uid_flag(gpgme_ctx_t ctx, gpgme_key_t key, const char *userid, const char *name, const char *value)
+{
+ gpgme_error_t ret = gpgme_op_set_uid_flag(ctx, key, userid, name, value);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_set_uid_flag", ret);
+ return ret;
+}
diff --git a/op_set_uid_flag_start.c b/op_set_uid_flag_start.c
new file mode 100644
index 0000000..360524b
--- /dev/null
+++ b/op_set_uid_flag_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_set_uid_flag_start(gpgme_ctx_t ctx, gpgme_key_t key, const char *userid, const char *name, const char *value)
+{
+ gpgme_error_t ret = gpgme_op_set_uid_flag_start(ctx, key, userid, name, value);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_set_uid_flag_start", ret);
+ return ret;
+}
diff --git a/op_sign.c b/op_sign.c
new file mode 100644
index 0000000..07511d6
--- /dev/null
+++ b/op_sign.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_sign(gpgme_ctx_t ctx, gpgme_data_t plain, gpgme_data_t sig, gpgme_sig_mode_t mode)
+{
+ gpgme_error_t ret = gpgme_op_sign(ctx, plain, sig, mode);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_sign", ret);
+ return ret;
+}
diff --git a/op_sign_start.c b/op_sign_start.c
new file mode 100644
index 0000000..42fc39b
--- /dev/null
+++ b/op_sign_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_sign_start(gpgme_ctx_t ctx, gpgme_data_t plain, gpgme_data_t sig, gpgme_sig_mode_t mode)
+{
+ gpgme_error_t ret = gpgme_op_sign_start(ctx, plain, sig, mode);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_sign_start", ret);
+ return ret;
+}
diff --git a/op_spawn.c b/op_spawn.c
new file mode 100644
index 0000000..050bff0
--- /dev/null
+++ b/op_spawn.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_spawn(gpgme_ctx_t ctx, const char *file, const char *argv[], gpgme_data_t datain,
+ gpgme_data_t dataout, gpgme_data_t dataerr, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_spawn(ctx, file, argv, datain, dataout, dataerr, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_spawn", ret);
+ return ret;
+}
diff --git a/op_spawn_start.c b/op_spawn_start.c
new file mode 100644
index 0000000..d84dcac
--- /dev/null
+++ b/op_spawn_start.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_spawn_start(gpgme_ctx_t ctx, const char *file, const char *argv[], gpgme_data_t datain,
+ gpgme_data_t dataout, gpgme_data_t dataerr, unsigned int flags)
+{
+ gpgme_error_t ret = gpgme_op_spawn_start(ctx, file, argv, datain, dataout, dataerr, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_spawn_start", ret);
+ return ret;
+}
diff --git a/op_tofu_policy.c b/op_tofu_policy.c
new file mode 100644
index 0000000..d8d1f46
--- /dev/null
+++ b/op_tofu_policy.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_tofu_policy(gpgme_ctx_t ctx, gpgme_key_t key, gpgme_tofu_policy_t policy)
+{
+ gpgme_error_t ret = gpgme_op_tofu_policy(ctx, key, policy);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_tofu_policy", ret);
+ return ret;
+}
diff --git a/op_tofu_policy_start.c b/op_tofu_policy_start.c
new file mode 100644
index 0000000..9dceb70
--- /dev/null
+++ b/op_tofu_policy_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_tofu_policy_start(gpgme_ctx_t ctx, gpgme_key_t key, gpgme_tofu_policy_t policy)
+{
+ gpgme_error_t ret = gpgme_op_tofu_policy_start(ctx, key, policy);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_tofu_policy_start", ret);
+ return ret;
+}
diff --git a/op_trustlist_end.c b/op_trustlist_end.c
new file mode 100644
index 0000000..96b9863
--- /dev/null
+++ b/op_trustlist_end.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_trustlist_end(gpgme_ctx_t ctx)
+{
+ gpgme_error_t ret = gpgme_op_trustlist_end(ctx);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_trustlist_end", ret);
+ return ret;
+}
diff --git a/op_trustlist_next.c b/op_trustlist_next.c
new file mode 100644
index 0000000..f501b44
--- /dev/null
+++ b/op_trustlist_next.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_trustlist_next(gpgme_ctx_t ctx, gpgme_trust_item_t *r_item)
+{
+ gpgme_error_t ret = gpgme_op_trustlist_next(ctx, r_item);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_trustlist_next", ret);
+ return ret;
+}
diff --git a/op_trustlist_start.c b/op_trustlist_start.c
new file mode 100644
index 0000000..e54771c
--- /dev/null
+++ b/op_trustlist_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_trustlist_start(gpgme_ctx_t ctx, const char *pattern, int max_level)
+{
+ gpgme_error_t ret = gpgme_op_trustlist_start(ctx, pattern, max_level);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_trustlist_start", ret);
+ return ret;
+}
diff --git a/op_verify.c b/op_verify.c
new file mode 100644
index 0000000..bbd59d6
--- /dev/null
+++ b/op_verify.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_verify(gpgme_ctx_t ctx, gpgme_data_t sig, gpgme_data_t signed_text, gpgme_data_t plaintext)
+{
+ gpgme_error_t ret = gpgme_op_verify(ctx, sig, signed_text, plaintext);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_verify", ret);
+ return ret;
+}
diff --git a/op_verify_start.c b/op_verify_start.c
new file mode 100644
index 0000000..a945b2f
--- /dev/null
+++ b/op_verify_start.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_verify_start(gpgme_ctx_t ctx, gpgme_data_t sig, gpgme_data_t signed_text, gpgme_data_t plaintext)
+{
+ gpgme_error_t ret = gpgme_op_verify_start(ctx, sig, signed_text, plaintext);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_verify_start", ret);
+ return ret;
+}
diff --git a/op_vfs_create.c b/op_vfs_create.c
new file mode 100644
index 0000000..77005fe
--- /dev/null
+++ b/op_vfs_create.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_vfs_create(gpgme_ctx_t ctx, gpgme_key_t recp[], const char *container_file, unsigned int flags, gpgme_error_t *op_err)
+{
+ gpgme_error_t ret = gpgme_op_vfs_create(ctx, recp, container_file, flags, op_err);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_vfs_create", ret);
+ return ret;
+}
diff --git a/op_vfs_mount.c b/op_vfs_mount.c
new file mode 100644
index 0000000..81fc19a
--- /dev/null
+++ b/op_vfs_mount.c
@@ -0,0 +1,13 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_op_vfs_mount(gpgme_ctx_t ctx, const char *container_file, const char *mount_dir,
+ unsigned int flags, gpgme_error_t *op_err)
+{
+ gpgme_error_t ret = gpgme_op_vfs_mount(ctx, container_file, mount_dir, flags, op_err);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_op_vfs_mount", ret);
+ return ret;
+}
diff --git a/set_ctx_flag.c b/set_ctx_flag.c
new file mode 100644
index 0000000..4dd79a1
--- /dev/null
+++ b/set_ctx_flag.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_set_ctx_flag(gpgme_ctx_t ctx, const char *name, const char *value)
+{
+ gpgme_error_t ret = gpgme_set_ctx_flag(ctx, name, value);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_set_ctx_flag", ret);
+ return ret;
+}
diff --git a/set_engine_info.c b/set_engine_info.c
new file mode 100644
index 0000000..7ff70b5
--- /dev/null
+++ b/set_engine_info.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_set_engine_info(gpgme_protocol_t proto, const char *file_name, const char *home_dir)
+{
+ gpgme_error_t ret = gpgme_set_engine_info(proto, file_name, home_dir);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_set_engine_info", ret);
+ return ret;
+}
diff --git a/set_keylist_mode.c b/set_keylist_mode.c
new file mode 100644
index 0000000..749a825
--- /dev/null
+++ b/set_keylist_mode.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_set_keylist_mode(gpgme_ctx_t ctx, gpgme_keylist_mode_t mode)
+{
+ gpgme_error_t ret = gpgme_set_keylist_mode(ctx, mode);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_set_keylist_mode", ret);
+ return ret;
+}
diff --git a/set_locale.c b/set_locale.c
new file mode 100644
index 0000000..004d555
--- /dev/null
+++ b/set_locale.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_set_locale(gpgme_ctx_t ctx, int category, const char *value)
+{
+ gpgme_error_t ret = gpgme_set_locale(ctx, category, value);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_set_locale", ret);
+ return ret;
+}
diff --git a/set_pinentry_mode.c b/set_pinentry_mode.c
new file mode 100644
index 0000000..327d15d
--- /dev/null
+++ b/set_pinentry_mode.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_set_pinentry_mode(gpgme_ctx_t ctx, gpgme_pinentry_mode_t mode)
+{
+ gpgme_error_t ret = gpgme_set_pinentry_mode(ctx, mode);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_set_pinentry_mode", ret);
+ return ret;
+}
diff --git a/set_protocol.c b/set_protocol.c
new file mode 100644
index 0000000..24ee522
--- /dev/null
+++ b/set_protocol.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_set_protocol(gpgme_ctx_t ctx, gpgme_protocol_t proto)
+{
+ gpgme_error_t ret = gpgme_set_protocol(ctx, proto);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_set_protocol", ret);
+ return ret;
+}
diff --git a/set_sender.c b/set_sender.c
new file mode 100644
index 0000000..135233b
--- /dev/null
+++ b/set_sender.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_set_sender(gpgme_ctx_t ctx, const char *address)
+{
+ gpgme_error_t ret = gpgme_set_sender(ctx, address);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_set_sender", ret);
+ return ret;
+}
diff --git a/set_sub_protocol.c b/set_sub_protocol.c
new file mode 100644
index 0000000..14981cc
--- /dev/null
+++ b/set_sub_protocol.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_set_sub_protocol(gpgme_ctx_t ctx, gpgme_protocol_t proto)
+{
+ gpgme_error_t ret = gpgme_set_sub_protocol(ctx, proto);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_set_sub_protocol", ret);
+ return ret;
+}
diff --git a/sig_notation_add.c b/sig_notation_add.c
new file mode 100644
index 0000000..9259443
--- /dev/null
+++ b/sig_notation_add.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_sig_notation_add(gpgme_ctx_t ctx, const char *name, const char *value, gpgme_sig_notation_flags_t flags)
+{
+ gpgme_error_t ret = gpgme_sig_notation_add(ctx, name, value, flags);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_sig_notation_add", ret);
+ return ret;
+}
diff --git a/signers_add.c b/signers_add.c
new file mode 100644
index 0000000..302acba
--- /dev/null
+++ b/signers_add.c
@@ -0,0 +1,12 @@
+/* See LICENSE file for copyright and license details. */
+#include "internal.h"
+
+
+gpgme_error_t
+liberror_gpgme_signers_add(gpgme_ctx_t ctx, const gpgme_key_t key)
+{
+ gpgme_error_t ret = gpgme_signers_add(ctx, key);
+ if (ret)
+ liberror_gpgme_set_error("gpgme_signers_add", ret);
+ return ret;
+}