auth_cert.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef AUTH_CERT_H
00026 #define AUTH_CERT_H
00027
00028 #include "gnutls_cert.h"
00029 #include "gnutls_auth.h"
00030 #include "auth_dh_common.h"
00031 #include "x509.h"
00032
00033
00034
00035
00036
00037 typedef struct MHD_gtls_certificate_credentials_st
00038 {
00039 MHD_gtls_dh_params_t dh_params;
00040 MHD_gtls_rsa_params_t rsa_params;
00041
00042
00043
00044 MHD_gnutls_params_function *params_func;
00045
00046 MHD_gnutls_cert **cert_list;
00047
00048
00049
00050
00051
00052 unsigned *cert_list_length;
00053
00054
00055
00056 unsigned ncerts;
00057
00058
00059
00060 MHD_gnutls_privkey *pkey;
00061
00062
00063
00064
00065
00066
00067
00068 #ifndef KEYRING_HACK
00069 MHD_gnutls_openpgp_keyring_t keyring;
00070 #else
00071 MHD_gnutls_datum_t keyring;
00072 int keyring_format;
00073 #endif
00074
00075
00076
00077 MHD_gnutls_x509_crt_t *x509_ca_list;
00078 unsigned x509_ncas;
00079
00080
00081 MHD_gnutls_x509_crl_t *x509_crl_list;
00082 unsigned x509_ncrls;
00083
00084
00085 unsigned int verify_flags;
00086
00087
00088 unsigned int verify_depth;
00089 unsigned int verify_bits;
00090
00091
00092
00093
00094
00095
00096 MHD_gnutls_datum_t x509_rdn_sequence;
00097
00098 MHD_gnutls_certificate_client_retrieve_function *client_get_cert_callback;
00099 MHD_gnutls_certificate_server_retrieve_function *server_get_cert_callback;
00100 } MHD_gtls_cert_credentials_st;
00101
00102 typedef struct MHD_gtls_rsa_info_st
00103 {
00104 MHD_gnutls_datum_t modulus;
00105 MHD_gnutls_datum_t exponent;
00106 } rsa_info_st;
00107
00108 typedef struct MHD_gtls_cert_auth_info_st
00109 {
00110 int certificate_requested;
00111
00112
00113
00114
00115
00116
00117 MHD_gtls_dh_info_st dh;
00118 rsa_info_st rsa_export;
00119
00120 MHD_gnutls_datum_t *raw_certificate_list;
00121
00122
00123 unsigned int ncerts;
00124 } *cert_auth_info_t;
00125
00126 typedef struct MHD_gtls_cert_auth_info_st cert_auth_info_st;
00127
00128 void MHD_gtls_free_rsa_info (rsa_info_st * rsa);
00129
00130
00131 int MHD_gtls_gen_cert_server_certificate (MHD_gtls_session_t, opaque **);
00132 int MHD_gtls_gen_cert_client_certificate (MHD_gtls_session_t, opaque **);
00133 int MHD_gtls_gen_cert_client_cert_vrfy (MHD_gtls_session_t, opaque **);
00134 int MHD_gtls_gen_cert_server_cert_req (MHD_gtls_session_t, opaque **);
00135 int MHD_gtls_proc_cert_cert_req (MHD_gtls_session_t, opaque *, size_t);
00136 int MHD_gtls_proc_cert_client_cert_vrfy (MHD_gtls_session_t, opaque *,
00137 size_t);
00138 int MHD_gtls_proc_cert_server_certificate (MHD_gtls_session_t, opaque *,
00139 size_t);
00140 int MHD_gtls_get_selected_cert (MHD_gtls_session_t session,
00141 MHD_gnutls_cert ** apr_cert_list,
00142 int *apr_cert_list_length,
00143 MHD_gnutls_privkey ** apr_pkey);
00144
00145 int MHD_gtls_server_select_cert (struct MHD_gtls_session_int *,
00146 enum MHD_GNUTLS_PublicKeyAlgorithm);
00147 void MHD_gtls_selected_certs_deinit (MHD_gtls_session_t session);
00148 void MHD_gtls_selected_certs_set (MHD_gtls_session_t session,
00149 MHD_gnutls_cert * certs, int ncerts,
00150 MHD_gnutls_privkey * key, int need_free);
00151
00152 #define MHD__gnutls_proc_cert_client_certificate MHD_gtls_proc_cert_server_certificate
00153
00154 MHD_gtls_rsa_params_t
00155 MHD_gtls_certificate_get_rsa_params (MHD_gtls_rsa_params_t rsa_params,
00156 MHD_gnutls_params_function * func,
00157 MHD_gtls_session_t);
00158
00159 #endif