auth_cert.c File Reference

#include <gnutls_int.h>
#include "gnutls_auth_int.h"
#include "gnutls_errors.h"
#include <gnutls_cert.h>
#include <auth_cert.h>
#include "gnutls_dh.h"
#include "gnutls_num.h"
#include "libtasn1.h"
#include "gnutls_datum.h"
#include <gnutls_pk.h>
#include <gnutls_algorithms.h>
#include <gnutls_global.h>
#include <gnutls_record.h>
#include <gnutls_sig.h>
#include <gnutls_state.h>
#include <gnutls_x509.h>
#include "debug.h"

Include dependency graph for auth_cert.c:

Go to the source code of this file.

Defines

#define CLEAR_CERTS   for(x=0;x<peer_certificate_list_size;x++) MHD_gtls_gcert_deinit(&peer_certificate_list[x])
#define CLEAR_CERTS   for(x=0;x<peer_certificate_list_size;x++) MHD_gtls_gcert_deinit(&peer_certificate_list[x])
#define MAX_SIGN_ALGOS   2
#define CERTTYPE_SIZE   3

Enumerations

enum  CertificateSigType { RSA_SIGN = 1, DSA_SIGN }

Functions

static MHD_gnutls_certalloc_and_load_x509_certs (MHD_gnutls_x509_crt_t *certs, unsigned)
static MHD_gnutls_privkeyalloc_and_load_x509_key (MHD_gnutls_x509_privkey_t key)
static int MHD__gnutls_copy_certificate_auth_info (cert_auth_info_t info, MHD_gnutls_cert *cert, int ncerts)
static int MHD__gnutls_check_pk_algo_in_list (const enum MHD_GNUTLS_PublicKeyAlgorithm *pk_algos, int pk_algos_length, enum MHD_GNUTLS_PublicKeyAlgorithm algo_to_check)
static int MHD__gnutls_cert_get_issuer_dn (MHD_gnutls_cert *cert, MHD_gnutls_datum_t *odn)
static int _find_x509_cert (const MHD_gtls_cert_credentials_t cred, opaque *_data, size_t _data_size, const enum MHD_GNUTLS_PublicKeyAlgorithm *pk_algos, int pk_algos_length, int *indx)
static int get_issuers_num (MHD_gtls_session_t session, opaque *data, ssize_t data_size)
static int get_issuers (MHD_gtls_session_t session, MHD_gnutls_datum_t *issuers_dn, int issuers_len, opaque *data, size_t data_size)
static int call_get_cert_callback (MHD_gtls_session_t session, MHD_gnutls_datum_t *issuers_dn, int issuers_dn_length, enum MHD_GNUTLS_PublicKeyAlgorithm *pk_algos, int pk_algos_length)
static int _select_client_cert (MHD_gtls_session_t session, opaque *_data, size_t _data_size, enum MHD_GNUTLS_PublicKeyAlgorithm *pk_algos, int pk_algos_length)
static int MHD_gtls_gen_x509_crt (MHD_gtls_session_t session, opaque **data)
int MHD_gtls_gen_cert_client_certificate (MHD_gtls_session_t session, opaque **data)
int MHD_gtls_gen_cert_server_certificate (MHD_gtls_session_t session, opaque **data)
static int MHD_gtls_proc_x509_server_certificate (MHD_gtls_session_t session, opaque *data, size_t data_size)
int MHD_gtls_proc_cert_server_certificate (MHD_gtls_session_t session, opaque *data, size_t data_size)
static int MHD__gnutls_check_supported_sign_algo (CertificateSigType algo)
int MHD_gtls_proc_cert_cert_req (MHD_gtls_session_t session, opaque *data, size_t data_size)
int MHD_gtls_gen_cert_client_cert_vrfy (MHD_gtls_session_t session, opaque **data)
int MHD_gtls_proc_cert_client_cert_vrfy (MHD_gtls_session_t session, opaque *data, size_t data_size)
int MHD_gtls_gen_cert_server_cert_req (MHD_gtls_session_t session, opaque **data)
int MHD_gtls_get_selected_cert (MHD_gtls_session_t session, MHD_gnutls_cert **apr_cert_list, int *apr_cert_list_length, MHD_gnutls_privkey **apr_pkey)
void MHD_gtls_selected_certs_deinit (MHD_gtls_session_t session)
void MHD_gtls_selected_certs_set (MHD_gtls_session_t session, MHD_gnutls_cert *certs, int ncerts, MHD_gnutls_privkey *key, int need_free)
int MHD_gtls_server_select_cert (MHD_gtls_session_t session, enum MHD_GNUTLS_PublicKeyAlgorithm requested_algo)
void MHD_gtls_free_rsa_info (rsa_info_st *rsa)


Define Documentation

#define CERTTYPE_SIZE   3

Definition at line 1019 of file auth_cert.c.

Referenced by MHD_gtls_gen_cert_server_cert_req().

#define CLEAR_CERTS   for(x=0;x<peer_certificate_list_size;x++) MHD_gtls_gcert_deinit(&peer_certificate_list[x])

Definition at line 785 of file auth_cert.c.

#define CLEAR_CERTS   for(x=0;x<peer_certificate_list_size;x++) MHD_gtls_gcert_deinit(&peer_certificate_list[x])

Definition at line 785 of file auth_cert.c.

Referenced by MHD_gtls_proc_x509_server_certificate().

#define MAX_SIGN_ALGOS   2

Definition at line 801 of file auth_cert.c.

Referenced by MHD_gtls_proc_cert_cert_req().


Enumeration Type Documentation

Enumerator:
RSA_SIGN 
DSA_SIGN 

Definition at line 802 of file auth_cert.c.


Function Documentation

static int _find_x509_cert ( const MHD_gtls_cert_credentials_t  cred,
opaque _data,
size_t  _data_size,
const enum MHD_GNUTLS_PublicKeyAlgorithm pk_algos,
int  pk_algos_length,
int *  indx 
) [static]

static int _select_client_cert ( MHD_gtls_session_t  session,
opaque _data,
size_t  _data_size,
enum MHD_GNUTLS_PublicKeyAlgorithm pk_algos,
int  pk_algos_length 
) [static]

static MHD_gnutls_cert * alloc_and_load_x509_certs ( MHD_gnutls_x509_crt_t certs,
unsigned  ncerts 
) [static]

Definition at line 1141 of file auth_cert.c.

References MHD_gnutls_assert, MHD_gnutls_free, MHD_gnutls_malloc, MHD_gtls_gcert_deinit(), and MHD_gtls_x509_crt_to_gcert().

Referenced by call_get_cert_callback().

Here is the call graph for this function:

Here is the caller graph for this function:

static MHD_gnutls_privkey * alloc_and_load_x509_key ( MHD_gnutls_x509_privkey_t  key  )  [static]

Definition at line 1182 of file auth_cert.c.

References MHD__gnutls_x509_privkey_to_gkey(), MHD_gnutls_assert, and MHD_gnutls_malloc.

Referenced by call_get_cert_callback().

Here is the call graph for this function:

Here is the caller graph for this function:

static int call_get_cert_callback ( MHD_gtls_session_t  session,
MHD_gnutls_datum_t issuers_dn,
int  issuers_dn_length,
enum MHD_GNUTLS_PublicKeyAlgorithm pk_algos,
int  pk_algos_length 
) [static]

static int get_issuers ( MHD_gtls_session_t  session,
MHD_gnutls_datum_t issuers_dn,
int  issuers_len,
opaque data,
size_t  data_size 
) [static]

Definition at line 311 of file auth_cert.c.

References MHD_gnutls_datum_t::data, MHD_gnutls_certificate_type_get(), MHD_GNUTLS_CRT_X509, MHD_gtls_read_uint16(), and MHD_gnutls_datum_t::size.

Referenced by _select_client_cert().

Here is the call graph for this function:

Here is the caller graph for this function:

static int get_issuers_num ( MHD_gtls_session_t  session,
opaque data,
ssize_t  data_size 
) [static]

Definition at line 262 of file auth_cert.c.

References DECR_LENGTH_COM, GNUTLS_E_UNEXPECTED_PACKET_LENGTH, and MHD_gtls_read_uint16().

Referenced by _select_client_cert().

Here is the call graph for this function:

Here is the caller graph for this function:

static int MHD__gnutls_cert_get_issuer_dn ( MHD_gnutls_cert cert,
MHD_gnutls_datum_t odn 
) [static]

static int MHD__gnutls_check_pk_algo_in_list ( const enum MHD_GNUTLS_PublicKeyAlgorithm pk_algos,
int  pk_algos_length,
enum MHD_GNUTLS_PublicKeyAlgorithm  algo_to_check 
) [inline, static]

Definition at line 116 of file auth_cert.c.

Referenced by _find_x509_cert().

Here is the caller graph for this function:

static int MHD__gnutls_check_supported_sign_algo ( CertificateSigType  algo  )  [inline, static]

Definition at line 811 of file auth_cert.c.

References MHD_GNUTLS_PK_RSA, and RSA_SIGN.

Referenced by MHD_gtls_proc_cert_cert_req().

Here is the caller graph for this function:

static int MHD__gnutls_copy_certificate_auth_info ( cert_auth_info_t  info,
MHD_gnutls_cert cert,
int  ncerts 
) [static]

void MHD_gtls_free_rsa_info ( rsa_info_st rsa  ) 

Definition at line 1325 of file auth_cert.c.

References MHD_gtls_rsa_info_st::exponent, MHD__gnutls_free_datum, and MHD_gtls_rsa_info_st::modulus.

Referenced by MHD_gtls_free_auth_info().

Here is the caller graph for this function:

int MHD_gtls_gen_cert_client_cert_vrfy ( MHD_gtls_session_t  session,
opaque **  data 
)

int MHD_gtls_gen_cert_client_certificate ( MHD_gtls_session_t  session,
opaque **  data 
)

int MHD_gtls_gen_cert_server_cert_req ( MHD_gtls_session_t  session,
opaque **  data 
)

int MHD_gtls_gen_cert_server_certificate ( MHD_gtls_session_t  session,
opaque **  data 
)

static int MHD_gtls_gen_x509_crt ( MHD_gtls_session_t  session,
opaque **  data 
) [static]

int MHD_gtls_get_selected_cert ( MHD_gtls_session_t  session,
MHD_gnutls_cert **  apr_cert_list,
int *  apr_cert_list_length,
MHD_gnutls_privkey **  apr_pkey 
)

int MHD_gtls_proc_cert_cert_req ( MHD_gtls_session_t  session,
opaque data,
size_t  data_size 
)

int MHD_gtls_proc_cert_client_cert_vrfy ( MHD_gtls_session_t  session,
opaque data,
size_t  data_size 
)

int MHD_gtls_proc_cert_server_certificate ( MHD_gtls_session_t  session,
opaque data,
size_t  data_size 
)

static int MHD_gtls_proc_x509_server_certificate ( MHD_gtls_session_t  session,
opaque data,
size_t  data_size 
) [static]

void MHD_gtls_selected_certs_deinit ( MHD_gtls_session_t  session  ) 

void MHD_gtls_selected_certs_set ( MHD_gtls_session_t  session,
MHD_gnutls_cert certs,
int  ncerts,
MHD_gnutls_privkey key,
int  need_free 
)

int MHD_gtls_server_select_cert ( MHD_gtls_session_t  session,
enum MHD_GNUTLS_PublicKeyAlgorithm  requested_algo 
)


Generated on Fri Feb 27 18:32:50 2009 for GNU libmicrohttpd by  doxygen 1.5.7.1