7 #include "LibEndian.hpp"
10 const Tls::CIPHER_SUITE Tls::mCiphers[] = {
23 Tls::RESULT Tls::handshake(LibStreamIn& in, LibStreamOut& out) {
24 uint16_t len = (uint16_t) (
sizeof(HANDSHAKE) +
sizeof(RANDOM) + 1 + 2 + (CIPHER_COUNT * 2) + 2);
28 tlsHeader.type = CT_HANDSHAKE;
29 tlsHeader.version.major = 3;
30 tlsHeader.version.minor = 1;
31 tlsHeader.length = LibEndian::hwToBe(len);
32 out.write(&tlsHeader,
sizeof(tlsHeader));
38 handshake.msg_type = AT_CLIENT_HELLO;
40 handshake.length = LibEndian::hwToBe(len);
41 handshake.version.major = 3;
42 handshake.version.minor = 1;
43 out.write(&handshake,
sizeof(handshake));
48 random.gmt_unix_time = LibEndian::hwToBe(LibRtc::getGmtUnixTime());
50 out.write(&random,
sizeof(random));
58 len = CIPHER_COUNT * 2;
59 len = LibEndian::hwToBe(len);
60 out.write(&len,
sizeof(len));
61 for (
int i = 0; i < CIPHER_COUNT; i++) {
62 out.write(&mCiphers[i].idHi, 2);