FreeRTOS
aws_tls.h
1 /*
2  * FreeRTOS
3  * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of
6  * this software and associated documentation files (the "Software"), to deal in
7  * the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9  * the Software, and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * http://aws.amazon.com/freertos
23  * http://www.FreeRTOS.org
24  */
25 
26 
27 #ifndef __AWS__TLS__H__
28 #define __AWS__TLS__H__
29 
39 typedef BaseType_t ( * NetworkRecv_t ) ( void * pvCallerContext,
40  unsigned char * pucReceiveBuffer,
41  size_t xReceiveLength );
42 
52 typedef BaseType_t ( * NetworkSend_t ) ( void * pvCallerContext,
53  const unsigned char * pucData,
54  size_t xDataLength );
55 
69 typedef struct xTLS_PARAMS
70 {
71  uint32_t ulSize;
72  const char * pcDestination;
73  const char * pcServerCertificate;
74  uint32_t ulServerCertificateLength;
75  const char ** ppcAlpnProtocols;
76  uint32_t ulAlpnProtocolsCount;
77 
78  NetworkRecv_t pxNetworkRecv;
79  NetworkSend_t pxNetworkSend;
80  void * pvCallerContext;
81 } TLSParams_t;
82 
91 BaseType_t TLS_Init( void ** ppvContext,
92  TLSParams_t * pxParams );
93 
101 BaseType_t TLS_Connect( void * pvContext );
102 
113 BaseType_t TLS_Recv( void * pvContext,
114  unsigned char * pucReadBuffer,
115  size_t xReadLength );
116 
126 BaseType_t TLS_Send( void * pvContext,
127  const unsigned char * pucMsg,
128  size_t xMsgLength );
129 
135 void TLS_Cleanup( void * pvContext );
136 
137 #endif /* ifndef __AWS__TLS__H__ */
Defines parameter structure for initializing the TLS interface.
Definition: aws_tls.h:69