1e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#ifndef HEADER_CURL_AXTLS_H 2e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define HEADER_CURL_AXTLS_H 3e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET/*************************************************************************** 4e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * _ _ ____ _ 5e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * Project ___| | | | _ \| | 6e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * / __| | | | |_) | | 7e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * | (__| |_| | _ <| |___ 8e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * \___|\___/|_| \_\_____| 9e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 10e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * Copyright (C) 2010, DirecTV, Contact: Eric Hu <ehu@directv.com> 11e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * Copyright (C) 2010 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. 12e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 13e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * This software is licensed as described in the file COPYING, which 14e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * you should have received as part of this distribution. The terms 15d15eaac64ca1a7244824d660ea84e8815a23d058Alex Deymo * are also available at https://curl.haxx.se/docs/copyright.html. 16e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 17e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * You may opt to use, copy, modify, merge, publish, distribute and/or sell 18e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * copies of the Software, and permit persons to whom the Software is 19e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * furnished to do so, under the terms of the COPYING file. 20e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 21e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 22e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * KIND, either express or implied. 23e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET * 24e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET ***************************************************************************/ 25e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 26e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#ifdef USE_AXTLS 27e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#include "curl/curl.h" 28e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#include "urldata.h" 29e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 30e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETint Curl_axtls_init(void); 31e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETint Curl_axtls_cleanup(void); 32e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETCURLcode Curl_axtls_connect(struct connectdata *conn, int sockindex); 33e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETCURLcode Curl_axtls_connect_nonblocking( 34e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET struct connectdata *conn, 35e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET int sockindex, 36e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET bool *done); 37e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 38e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET /* close a SSL connection */ 39e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETvoid Curl_axtls_close(struct connectdata *conn, int sockindex); 40e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 41e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETvoid Curl_axtls_session_free(void *ptr); 42e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETsize_t Curl_axtls_version(char *buffer, size_t size); 43e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETint Curl_axtls_shutdown(struct connectdata *conn, int sockindex); 44e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNETint Curl_axtls_check_cxn(struct connectdata *conn); 45e3149cc1cf501b46caba8d47652ac90b95c78eacAlex Deymoint Curl_axtls_random(struct Curl_easy *data, 46e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET unsigned char *entropy, 47e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET size_t length); 48e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 49e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET/* Set the API backend definition to axTLS */ 50e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define CURL_SSL_BACKEND CURLSSLBACKEND_AXTLS 51e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 52e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET/* API setup for axTLS */ 53e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_init Curl_axtls_init 54e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_cleanup Curl_axtls_cleanup 55e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_connect Curl_axtls_connect 56e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_connect_nonblocking Curl_axtls_connect_nonblocking 57e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_session_free(x) Curl_axtls_session_free(x) 58e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_close_all(x) ((void)x) 59e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_close Curl_axtls_close 60e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_shutdown(x,y) Curl_axtls_shutdown(x,y) 61e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_set_engine(x,y) ((void)x, (void)y, CURLE_NOT_BUILT_IN) 62e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_set_engine_default(x) ((void)x, CURLE_NOT_BUILT_IN) 63e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_engines_list(x) ((void)x, (struct curl_slist *)NULL) 64e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_version Curl_axtls_version 65e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_check_cxn(x) Curl_axtls_check_cxn(x) 66e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_data_pending(x,y) ((void)x, (void)y, 0) 67e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#define curlssl_random(x,y,z) Curl_axtls_random(x,y,z) 68e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 69e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#endif /* USE_AXTLS */ 70e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET#endif /* HEADER_CURL_AXTLS_H */ 71e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET 72