139beb93cSSam Leffler /* 239beb93cSSam Leffler * TLSv1 credentials 339beb93cSSam Leffler * Copyright (c) 2006-2007, Jouni Malinen <j@w1.fi> 439beb93cSSam Leffler * 5f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6f05cddf9SRui Paulo * See README for more details. 739beb93cSSam Leffler */ 839beb93cSSam Leffler 939beb93cSSam Leffler #ifndef TLSV1_CRED_H 1039beb93cSSam Leffler #define TLSV1_CRED_H 1139beb93cSSam Leffler 1239beb93cSSam Leffler struct tlsv1_credentials { 1339beb93cSSam Leffler struct x509_certificate *trusted_certs; 1439beb93cSSam Leffler struct x509_certificate *cert; 1539beb93cSSam Leffler struct crypto_private_key *key; 1639beb93cSSam Leffler 17*780fb4a2SCy Schubert unsigned int cert_probe:1; 18*780fb4a2SCy Schubert unsigned int ca_cert_verify:1; 19*780fb4a2SCy Schubert unsigned int server_cert_only:1; 20*780fb4a2SCy Schubert u8 srv_cert_hash[32]; 21*780fb4a2SCy Schubert 2239beb93cSSam Leffler /* Diffie-Hellman parameters */ 2339beb93cSSam Leffler u8 *dh_p; /* prime */ 2439beb93cSSam Leffler size_t dh_p_len; 2539beb93cSSam Leffler u8 *dh_g; /* generator */ 2639beb93cSSam Leffler size_t dh_g_len; 27*780fb4a2SCy Schubert 28*780fb4a2SCy Schubert char *ocsp_stapling_response; 29*780fb4a2SCy Schubert char *ocsp_stapling_response_multi; 3039beb93cSSam Leffler }; 3139beb93cSSam Leffler 3239beb93cSSam Leffler 3339beb93cSSam Leffler struct tlsv1_credentials * tlsv1_cred_alloc(void); 3439beb93cSSam Leffler void tlsv1_cred_free(struct tlsv1_credentials *cred); 3539beb93cSSam Leffler int tlsv1_set_ca_cert(struct tlsv1_credentials *cred, const char *cert, 3639beb93cSSam Leffler const u8 *cert_blob, size_t cert_blob_len, 3739beb93cSSam Leffler const char *path); 3839beb93cSSam Leffler int tlsv1_set_cert(struct tlsv1_credentials *cred, const char *cert, 3939beb93cSSam Leffler const u8 *cert_blob, size_t cert_blob_len); 4039beb93cSSam Leffler int tlsv1_set_private_key(struct tlsv1_credentials *cred, 4139beb93cSSam Leffler const char *private_key, 4239beb93cSSam Leffler const char *private_key_passwd, 4339beb93cSSam Leffler const u8 *private_key_blob, 4439beb93cSSam Leffler size_t private_key_blob_len); 4539beb93cSSam Leffler int tlsv1_set_dhparams(struct tlsv1_credentials *cred, const char *dh_file, 4639beb93cSSam Leffler const u8 *dh_blob, size_t dh_blob_len); 4739beb93cSSam Leffler 4839beb93cSSam Leffler #endif /* TLSV1_CRED_H */ 49