spandsp 3.0.0
ssl_fax.h
Go to the documentation of this file.
1/*
2 * The code in this file was derived from sources taken from (1) HylaFAX+ on
3 * 13 June 2022. That source states that it was derived from (2) GitHub user,
4 * "mrwicks", on 9 Oct 2018. That source, itself, was derived from work by
5 * "Amlendra" published at Aticleworld on 21 May 2017 (3). That work, then,
6 * references programs (4) Copyright (c) 2000 Sean Walton and Macmillan
7 * Publishers (The "Linux Socket Programming" book) and are licensed under
8 * the GPL.
9 *
10 * 1. https://hylafax.sourceforge.net
11 * 2. https://github.com/mrwicks/miscellaneous/tree/master/tls_1.2_example
12 * 3. https://aticleworld.com/ssl-server-client-using-openssl-in-c/
13 * 4. http://www.cs.utah.edu/~swalton/listings/sockets/programs/
14 *
15 * It is, therefore, presumed that this work is either under the* public
16 * domain or is licensed under the GPL. A copy of the GPL is as follows...
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 */
30/*! \file */
31
32#if !defined(_SPANDSP_SSLFAX_H_)
33#define _SPANDSP_SSLFAX_H_
34
35#if defined(SPANDSP_SUPPORT_SSLFAX)
36#include <openssl/ssl.h>
37#include <openssl/err.h>
38#endif
39
40typedef struct sslfax_state_s sslfax_state_t;
41
42#if defined(__cplusplus)
43extern "C"
44{
45#endif
46
47SPAN_DECLARE(sslfax_state_t *) sslfax_init(sslfax_state_t *s);
48
49SPAN_DECLARE(bool) sslfax_start_client(sslfax_state_t *s);
50
51SPAN_DECLARE(void) sslfax_cleanup(sslfax_state_t *s, bool sustain);
52
53SPAN_DECLARE(int) sslfax_tx(sslfax_state_t *s, int16_t amp[], int len);
54
55SPAN_DECLARE(int) sslfax_rx(sslfax_state_t *s, const int16_t amp[], int len);
56
57SPAN_DECLARE(void) sslfax_setup(sslfax_state_t *s,
58 span_put_msg_func_t put_msg,
59 span_get_msg_func_t get_msg,
60 hdlc_frame_handler_t hdlc_accept,
61 hdlc_underflow_handler_t hdlc_tx_underflow,
62 bool tx_use_hdlc,
63 bool rx_use_hdlc,
64 span_get_byte_func_t get_phase,
65 void *user_data);
66
67SPAN_DECLARE(int) sslfax_write(sslfax_state_t *s, const uint8_t *buf, unsigned int count, int modem_fd, long int ms, bool filter, bool sustain);
68
69SPAN_DECLARE(int) sslfax_read(sslfax_state_t *s, void *buf, size_t count, int modem_fd, long ms, bool sustain, bool carryon);
70
71#if defined(__cplusplus)
72}
73#endif
74
75#endif
76/*- End of file ------------------------------------------------------------*/
int(* span_get_msg_func_t)(void *user_data, uint8_t *msg, int max_len)
Definition async.h:111
int(* span_get_byte_func_t)(void *user_data)
Definition async.h:119
void(* span_put_msg_func_t)(void *user_data, const uint8_t *msg, int len)
Definition async.h:107