16d49e1aeSJan Lentfer /* 26d49e1aeSJan Lentfer * TLSv1 credentials 36d49e1aeSJan Lentfer * Copyright (c) 2006-2007, Jouni Malinen <j@w1.fi> 46d49e1aeSJan Lentfer * 53ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license. 63ff40c12SJohn Marino * See README for more details. 76d49e1aeSJan Lentfer */ 86d49e1aeSJan Lentfer 96d49e1aeSJan Lentfer #ifndef TLSV1_CRED_H 106d49e1aeSJan Lentfer #define TLSV1_CRED_H 116d49e1aeSJan Lentfer 126d49e1aeSJan Lentfer struct tlsv1_credentials { 136d49e1aeSJan Lentfer struct x509_certificate *trusted_certs; 146d49e1aeSJan Lentfer struct x509_certificate *cert; 156d49e1aeSJan Lentfer struct crypto_private_key *key; 166d49e1aeSJan Lentfer 17*a1157835SDaniel Fojt unsigned int cert_probe:1; 18*a1157835SDaniel Fojt unsigned int ca_cert_verify:1; 19*a1157835SDaniel Fojt unsigned int server_cert_only:1; 20*a1157835SDaniel Fojt u8 srv_cert_hash[32]; 21*a1157835SDaniel Fojt 226d49e1aeSJan Lentfer /* Diffie-Hellman parameters */ 236d49e1aeSJan Lentfer u8 *dh_p; /* prime */ 246d49e1aeSJan Lentfer size_t dh_p_len; 256d49e1aeSJan Lentfer u8 *dh_g; /* generator */ 266d49e1aeSJan Lentfer size_t dh_g_len; 27*a1157835SDaniel Fojt 28*a1157835SDaniel Fojt char *ocsp_stapling_response; 29*a1157835SDaniel Fojt char *ocsp_stapling_response_multi; 306d49e1aeSJan Lentfer }; 316d49e1aeSJan Lentfer 326d49e1aeSJan Lentfer 336d49e1aeSJan Lentfer struct tlsv1_credentials * tlsv1_cred_alloc(void); 346d49e1aeSJan Lentfer void tlsv1_cred_free(struct tlsv1_credentials *cred); 356d49e1aeSJan Lentfer int tlsv1_set_ca_cert(struct tlsv1_credentials *cred, const char *cert, 366d49e1aeSJan Lentfer const u8 *cert_blob, size_t cert_blob_len, 376d49e1aeSJan Lentfer const char *path); 386d49e1aeSJan Lentfer int tlsv1_set_cert(struct tlsv1_credentials *cred, const char *cert, 396d49e1aeSJan Lentfer const u8 *cert_blob, size_t cert_blob_len); 406d49e1aeSJan Lentfer int tlsv1_set_private_key(struct tlsv1_credentials *cred, 416d49e1aeSJan Lentfer const char *private_key, 426d49e1aeSJan Lentfer const char *private_key_passwd, 436d49e1aeSJan Lentfer const u8 *private_key_blob, 446d49e1aeSJan Lentfer size_t private_key_blob_len); 456d49e1aeSJan Lentfer int tlsv1_set_dhparams(struct tlsv1_credentials *cred, const char *dh_file, 466d49e1aeSJan Lentfer const u8 *dh_blob, size_t dh_blob_len); 476d49e1aeSJan Lentfer 486d49e1aeSJan Lentfer #endif /* TLSV1_CRED_H */ 49