summaryrefslogtreecommitdiffstats
path: root/lib/openpgp_compat.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/openpgp_compat.c844
1 files changed, 844 insertions, 0 deletions
diff --git a/lib/openpgp_compat.c b/lib/openpgp_compat.c
new file mode 100644
index 0000000..d96ee8d
--- /dev/null
+++ b/lib/openpgp_compat.c
@@ -0,0 +1,844 @@
+/*
+ * Copyright (C) 2017 Nikos Mavrogiannopoulos
+ *
+ * Author: Nikos Mavrogiannopoulos
+ *
+ * This file is part of GnuTLS.
+ *
+ * The GnuTLS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>
+ *
+ */
+
+/* This file contains the definitions of OpenPGP stub functions
+ * for ABI compatibility.
+ */
+
+#include "gnutls_int.h"
+#include <gnutls/openpgp.h>
+#include <gnutls/abstract.h>
+
+int gnutls_openpgp_crt_init(gnutls_openpgp_crt_t * key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+void gnutls_openpgp_crt_deinit(gnutls_openpgp_crt_t key)
+{
+ return;
+}
+
+int gnutls_openpgp_crt_import(gnutls_openpgp_crt_t key,
+ const gnutls_datum_t * data,
+ gnutls_openpgp_crt_fmt_t format)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_export(gnutls_openpgp_crt_t key,
+ gnutls_openpgp_crt_fmt_t format,
+ void *output_data,
+ size_t * output_data_size)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_export2(gnutls_openpgp_crt_t key,
+ gnutls_openpgp_crt_fmt_t format,
+ gnutls_datum_t * out)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_print(gnutls_openpgp_crt_t cert,
+ gnutls_certificate_print_formats_t
+ format, gnutls_datum_t * out)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_get_key_usage(gnutls_openpgp_crt_t key,
+ unsigned int *key_usage)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_get_fingerprint(gnutls_openpgp_crt_t key,
+ void *fpr, size_t * fprlen)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_get_subkey_fingerprint(gnutls_openpgp_crt_t
+ key,
+ unsigned int idx,
+ void *fpr, size_t * fprlen)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_get_name(gnutls_openpgp_crt_t key,
+ int idx, char *buf, size_t * sizeof_buf)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+gnutls_pk_algorithm_t
+gnutls_openpgp_crt_get_pk_algorithm(gnutls_openpgp_crt_t key,
+ unsigned int *bits)
+{
+ return GNUTLS_PK_UNKNOWN;
+}
+
+
+int gnutls_openpgp_crt_get_version(gnutls_openpgp_crt_t key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+time_t gnutls_openpgp_crt_get_creation_time(gnutls_openpgp_crt_t key)
+{
+ return (time_t)-1;
+}
+
+time_t gnutls_openpgp_crt_get_expiration_time(gnutls_openpgp_crt_t key)
+{
+ return (time_t)-1;
+}
+
+
+int gnutls_openpgp_crt_get_key_id(gnutls_openpgp_crt_t key,
+ gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_check_hostname(gnutls_openpgp_crt_t key,
+ const char *hostname)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_check_hostname2(gnutls_openpgp_crt_t key,
+ const char *hostname, unsigned int flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+gnutls_openpgp_crt_check_email(gnutls_openpgp_crt_t key, const char *email, unsigned flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_get_revoked_status(gnutls_openpgp_crt_t key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_get_subkey_count(gnutls_openpgp_crt_t key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_get_subkey_idx(gnutls_openpgp_crt_t key,
+ const gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_get_subkey_revoked_status
+ (gnutls_openpgp_crt_t key, unsigned int idx)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+gnutls_pk_algorithm_t
+gnutls_openpgp_crt_get_subkey_pk_algorithm(gnutls_openpgp_crt_t
+ key,
+ unsigned int idx,
+ unsigned int *bits)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+time_t
+ gnutls_openpgp_crt_get_subkey_creation_time
+ (gnutls_openpgp_crt_t key, unsigned int idx)
+{
+ return (time_t)-1;
+}
+
+time_t
+ gnutls_openpgp_crt_get_subkey_expiration_time
+ (gnutls_openpgp_crt_t key, unsigned int idx)
+{
+ return (time_t)-1;
+}
+
+int gnutls_openpgp_crt_get_subkey_id(gnutls_openpgp_crt_t key,
+ unsigned int idx,
+ gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_get_subkey_usage(gnutls_openpgp_crt_t key,
+ unsigned int idx,
+ unsigned int *key_usage)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_get_subkey_pk_dsa_raw(gnutls_openpgp_crt_t
+ crt, unsigned int idx,
+ gnutls_datum_t * p,
+ gnutls_datum_t * q,
+ gnutls_datum_t * g,
+ gnutls_datum_t * y)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_get_subkey_pk_rsa_raw(gnutls_openpgp_crt_t
+ crt, unsigned int idx,
+ gnutls_datum_t * m,
+ gnutls_datum_t * e)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_get_pk_dsa_raw(gnutls_openpgp_crt_t crt,
+ gnutls_datum_t * p,
+ gnutls_datum_t * q,
+ gnutls_datum_t * g,
+ gnutls_datum_t * y)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_crt_get_pk_rsa_raw(gnutls_openpgp_crt_t crt,
+ gnutls_datum_t * m,
+ gnutls_datum_t * e)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_get_preferred_key_id(gnutls_openpgp_crt_t
+ key,
+ gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+gnutls_openpgp_crt_set_preferred_key_id(gnutls_openpgp_crt_t key,
+ const
+ gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+/* privkey stuff.
+ */
+int gnutls_openpgp_privkey_init(gnutls_openpgp_privkey_t * key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+void gnutls_openpgp_privkey_deinit(gnutls_openpgp_privkey_t key)
+{
+ return;
+}
+
+gnutls_pk_algorithm_t
+ gnutls_openpgp_privkey_get_pk_algorithm
+ (gnutls_openpgp_privkey_t key, unsigned int *bits)
+{
+ return GNUTLS_PK_UNKNOWN;
+}
+
+gnutls_sec_param_t
+gnutls_openpgp_privkey_sec_param(gnutls_openpgp_privkey_t key)
+{
+ return 0;
+}
+
+int gnutls_openpgp_privkey_import(gnutls_openpgp_privkey_t key,
+ const gnutls_datum_t * data,
+ gnutls_openpgp_crt_fmt_t format,
+ const char *password,
+ unsigned int flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_privkey_get_fingerprint(gnutls_openpgp_privkey_t
+ key, void *fpr,
+ size_t * fprlen)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_privkey_get_subkey_fingerprint
+ (gnutls_openpgp_privkey_t key, unsigned int idx, void *fpr,
+ size_t * fprlen)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_privkey_get_key_id(gnutls_openpgp_privkey_t key,
+ gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_privkey_get_subkey_count(gnutls_openpgp_privkey_t key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_privkey_get_subkey_idx(gnutls_openpgp_privkey_t
+ key,
+ const
+ gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_privkey_get_subkey_revoked_status
+ (gnutls_openpgp_privkey_t key, unsigned int idx)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_privkey_get_revoked_status
+ (gnutls_openpgp_privkey_t key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+gnutls_pk_algorithm_t
+ gnutls_openpgp_privkey_get_subkey_pk_algorithm
+ (gnutls_openpgp_privkey_t key, unsigned int idx, unsigned int *bits)
+{
+ return GNUTLS_PK_UNKNOWN;
+}
+
+
+time_t
+ gnutls_openpgp_privkey_get_subkey_expiration_time
+ (gnutls_openpgp_privkey_t key, unsigned int idx)
+{
+ return (time_t)-1;
+}
+
+int gnutls_openpgp_privkey_get_subkey_id(gnutls_openpgp_privkey_t
+ key, unsigned int idx,
+ gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+time_t
+ gnutls_openpgp_privkey_get_subkey_creation_time
+ (gnutls_openpgp_privkey_t key, unsigned int idx)
+{
+ return (time_t)-1;
+}
+
+
+int gnutls_openpgp_privkey_export_subkey_dsa_raw
+ (gnutls_openpgp_privkey_t pkey, unsigned int idx,
+ gnutls_datum_t * p, gnutls_datum_t * q, gnutls_datum_t * g,
+ gnutls_datum_t * y, gnutls_datum_t * x)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_privkey_export_subkey_rsa_raw
+ (gnutls_openpgp_privkey_t pkey, unsigned int idx,
+ gnutls_datum_t * m, gnutls_datum_t * e, gnutls_datum_t * d,
+ gnutls_datum_t * p, gnutls_datum_t * q, gnutls_datum_t * u)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_privkey_export_dsa_raw(gnutls_openpgp_privkey_t
+ pkey, gnutls_datum_t * p,
+ gnutls_datum_t * q,
+ gnutls_datum_t * g,
+ gnutls_datum_t * y,
+ gnutls_datum_t * x)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_privkey_export_rsa_raw(gnutls_openpgp_privkey_t
+ pkey, gnutls_datum_t * m,
+ gnutls_datum_t * e,
+ gnutls_datum_t * d,
+ gnutls_datum_t * p,
+ gnutls_datum_t * q,
+ gnutls_datum_t * u)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_privkey_export(gnutls_openpgp_privkey_t key,
+ gnutls_openpgp_crt_fmt_t format,
+ const char *password,
+ unsigned int flags,
+ void *output_data,
+ size_t * output_data_size)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_privkey_export2(gnutls_openpgp_privkey_t key,
+ gnutls_openpgp_crt_fmt_t format,
+ const char *password,
+ unsigned int flags,
+ gnutls_datum_t * out)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_privkey_set_preferred_key_id
+ (gnutls_openpgp_privkey_t key, const gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_openpgp_privkey_get_preferred_key_id
+ (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_get_auth_subkey(gnutls_openpgp_crt_t crt,
+ gnutls_openpgp_keyid_t
+ keyid, unsigned int flag)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+/* Keyring stuff.
+ */
+
+int gnutls_openpgp_keyring_init(gnutls_openpgp_keyring_t * keyring)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+void gnutls_openpgp_keyring_deinit(gnutls_openpgp_keyring_t keyring)
+{
+ return;
+}
+
+int gnutls_openpgp_keyring_import(gnutls_openpgp_keyring_t keyring,
+ const gnutls_datum_t * data,
+ gnutls_openpgp_crt_fmt_t format)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_keyring_check_id(gnutls_openpgp_keyring_t ring,
+ const gnutls_openpgp_keyid_t
+ keyid, unsigned int flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+
+int gnutls_openpgp_crt_verify_ring(gnutls_openpgp_crt_t key,
+ gnutls_openpgp_keyring_t
+ keyring, unsigned int flags,
+ unsigned int *verify
+ /* the output of the verification */
+ )
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_crt_verify_self(gnutls_openpgp_crt_t key,
+ unsigned int flags,
+ unsigned int *verify)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_keyring_get_crt(gnutls_openpgp_keyring_t ring,
+ unsigned int idx,
+ gnutls_openpgp_crt_t * cert)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_openpgp_keyring_get_crt_count(gnutls_openpgp_keyring_t ring)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+
+
+void
+gnutls_openpgp_set_recv_key_function(gnutls_session_t session,
+ gnutls_openpgp_recv_key_func func)
+{
+ return;
+}
+
+int gnutls_certificate_set_openpgp_key
+ (gnutls_certificate_credentials_t res,
+ gnutls_openpgp_crt_t crt, gnutls_openpgp_privkey_t pkey)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int
+gnutls_certificate_get_openpgp_key(gnutls_certificate_credentials_t res,
+ unsigned index,
+ gnutls_openpgp_privkey_t *key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+gnutls_certificate_get_openpgp_crt(gnutls_certificate_credentials_t res,
+ unsigned index,
+ gnutls_openpgp_crt_t **crt_list,
+ unsigned *crt_list_size)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int
+ gnutls_certificate_set_openpgp_key_file
+ (gnutls_certificate_credentials_t res, const char *certfile,
+ const char *keyfile, gnutls_openpgp_crt_fmt_t format)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int gnutls_certificate_set_openpgp_key_mem
+ (gnutls_certificate_credentials_t res,
+ const gnutls_datum_t * cert, const gnutls_datum_t * key,
+ gnutls_openpgp_crt_fmt_t format)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int
+ gnutls_certificate_set_openpgp_key_file2
+ (gnutls_certificate_credentials_t res, const char *certfile,
+ const char *keyfile, const char *subkey_id,
+ gnutls_openpgp_crt_fmt_t format)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+int
+ gnutls_certificate_set_openpgp_key_mem2
+ (gnutls_certificate_credentials_t res,
+ const gnutls_datum_t * cert, const gnutls_datum_t * key,
+ const char *subkey_id, gnutls_openpgp_crt_fmt_t format)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_certificate_set_openpgp_keyring_mem
+ (gnutls_certificate_credentials_t c, const unsigned char *data,
+ size_t dlen, gnutls_openpgp_crt_fmt_t format)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+
+int gnutls_certificate_set_openpgp_keyring_file
+ (gnutls_certificate_credentials_t c, const char *file,
+ gnutls_openpgp_crt_fmt_t format)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_pubkey_import_openpgp:
+ * @key: The public key
+ * @crt: The certificate to be imported
+ * @flags: should be zero
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 2.12.0
+ **/
+int gnutls_pubkey_import_openpgp(gnutls_pubkey_t key,
+ gnutls_openpgp_crt_t crt,
+ unsigned int flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_pubkey_import_openpgp_raw:
+ * @pkey: The public key
+ * @data: The public key data to be imported
+ * @format: The format of the public key
+ * @keyid: The key id to use (optional)
+ * @flags: Should be zero
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 3.1.3
+ **/
+int gnutls_pubkey_import_openpgp_raw(gnutls_pubkey_t pkey,
+ const gnutls_datum_t * data,
+ gnutls_openpgp_crt_fmt_t
+ format,
+ const gnutls_openpgp_keyid_t
+ keyid, unsigned int flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_pubkey_get_key_id:
+ * @key: Holds the public key
+ * @flags: should be one of the flags from %gnutls_keyid_flags_t
+ * @output_data: will contain the key ID
+ * @output_data_size: holds the size of output_data (and will be
+ * replaced by the actual size of parameters)
+ * @subkey: ignored
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 2.12.0
+ **/
+int
+gnutls_pubkey_get_openpgp_key_id(gnutls_pubkey_t key,
+ unsigned int flags,
+ unsigned char *output_data,
+ size_t * output_data_size,
+ unsigned int *subkey)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_privkey_import_openpgp:
+ * @pkey: The private key
+ * @key: The private key to be imported
+ * @flags: Flags for the import
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 2.12.0
+ **/
+int gnutls_privkey_import_openpgp(gnutls_privkey_t pkey,
+ gnutls_openpgp_privkey_t key,
+ unsigned int flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_privkey_export_openpgp:
+ * @pkey: The private key
+ * @key: Location for the key to be exported.
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 3.4.0
+ */
+int gnutls_privkey_export_openpgp(gnutls_privkey_t pkey,
+ gnutls_openpgp_privkey_t * key)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_privkey_import_openpgp_raw:
+ * @pkey: The private key
+ * @data: The private key data to be imported
+ * @format: The format of the private key
+ * @keyid: The key id to use (optional)
+ * @password: A password (optional)
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 3.1.0
+ **/
+int gnutls_privkey_import_openpgp_raw(gnutls_privkey_t pkey,
+ const gnutls_datum_t * data,
+ gnutls_openpgp_crt_fmt_t
+ format,
+ const gnutls_openpgp_keyid_t
+ keyid, const char *password)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_pcert_import_openpgp_raw:
+ * @pcert: The pcert structure
+ * @cert: The raw certificate to be imported
+ * @format: The format of the certificate
+ * @keyid: The key ID to use (NULL for the master key)
+ * @flags: zero for now
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 3.0
+ **/
+int gnutls_pcert_import_openpgp_raw(gnutls_pcert_st * pcert,
+ const gnutls_datum_t * cert,
+ gnutls_openpgp_crt_fmt_t
+ format,
+ gnutls_openpgp_keyid_t keyid,
+ unsigned int flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_pcert_import_openpgp:
+ * @pcert: The pcert structure
+ * @crt: The raw certificate to be imported
+ * @flags: zero for now
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 3.0
+ **/
+int gnutls_pcert_import_openpgp(gnutls_pcert_st * pcert,
+ gnutls_openpgp_crt_t crt,
+ unsigned int flags)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_pcert_export_x509:
+ * @pcert: The pcert structure.
+ * @crt: An initialized #gnutls_openpgp_crt_t.
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 3.4.0
+ */
+int gnutls_pcert_export_openpgp(gnutls_pcert_st * pcert,
+ gnutls_openpgp_crt_t * crt)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_openpgp_privkey_sign_hash:
+ * @session: is a gnutls session
+ * @status: is ignored
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ */
+void
+gnutls_openpgp_send_cert(gnutls_session_t session,
+ gnutls_openpgp_crt_status_t status)
+{
+ return;
+}
+
+/**
+ * gnutls_certificate_get_peers_subkey_id:
+ * @session: is a gnutls session
+ * @id: will contain the ID
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ *
+ * Since: 3.1.3
+ **/
+int gnutls_certificate_get_peers_subkey_id(gnutls_session_t session,
+ gnutls_datum_t * id)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+
+/**
+ * gnutls_openpgp_privkey_sign_hash:
+ * @key: Holds the key
+ * @hash: holds the data to be signed
+ * @signature: will contain newly allocated signature
+ *
+ * This function is no-op.
+ *
+ * Returns: %GNUTLS_E_UNIMPLEMENTED_FEATURE.
+ */
+int
+gnutls_openpgp_privkey_sign_hash(gnutls_openpgp_privkey_t key,
+ const gnutls_datum_t * hash,
+ gnutls_datum_t * signature)
+{
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+}
+