Blob Blame History Raw
/*
 * 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;
}