-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPicoTLSTest.h
57 lines (47 loc) · 1.23 KB
/
PicoTLSTest.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*
* PicoTLS.h
*
* Created on: 10.12.2018
* Author: Denis Lugowski
*/
#ifndef PICOTLSTEST_H_
#define PICOTLSTEST_H_
#include <netinet/in.h>
#include <cstddef>
#include "picotls/openssl.h"
class PicoTLSTest
{
public:
PicoTLSTest();
virtual ~PicoTLSTest();
// Socket functions
void createClientSocket();
void createServerSocket(int port);
void connectToServer(int port);
void waitForIncomingConnection();
void writeToSocket();
char* readFromSocket();
void closeSocket();
// OpenSSL_BIO_Client functions
void initPicoTLS();
void cleanupPicoTLS();
void doSSLHandshake();
private:
void setupCertVerification();
void readCert();
void readPrivateKey();
void writeAll(ptls_buffer_t& sendbuf);
int port;
int clientSocket;
int serverSocket;
struct sockaddr_in serverAddress;
struct sockaddr_in clientAddress;
bool isServer = false;
ptls_context_t context;
ptls_openssl_verify_certificate_t verifier;
ptls_t* tls = nullptr;
const int BUFFER_SIZE = 4096;
const char* CERT_FILE = "/home/denis/workspace_cpp/OpenSSL/assets/cert.pem";
const char* KEY_FILE = "/home/denis/workspace_cpp/OpenSSL/assets/key.pem";
};
#endif /* PICOTLSTEST_H_ */