A fork of the TLS_cyassl embedded SSL library with certificate validation disabled.

Dependencies:   cyassl-lib

Fork of TLS_cyassl by Francois Berder

Committer:
glbast
Date:
Sat Jan 24 00:30:50 2015 +0000
Revision:
7:5c1e73469291
Parent:
4:86a5029194b4
Disabled SSL certificate checking.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
feb11 4:86a5029194b4 1 #include "TLSServer.h"
feb11 4:86a5029194b4 2
feb11 4:86a5029194b4 3 #pragma once
feb11 4:86a5029194b4 4 const static unsigned char deviceCertificate[] = {
feb11 4:86a5029194b4 5
feb11 4:86a5029194b4 6 0x30, 0x82, 0x02, 0xad, 0x30, 0x82, 0x02, 0x16, 0xa0, 0x03, 0x02, 0x01,
feb11 4:86a5029194b4 7 0x02, 0x02, 0x02, 0x31, 0x33, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
feb11 4:86a5029194b4 8 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x67, 0x31, 0x0b,
feb11 4:86a5029194b4 9 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31,
feb11 4:86a5029194b4 10 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x09, 0x42, 0x65,
feb11 4:86a5029194b4 11 0x72, 0x6b, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06,
feb11 4:86a5029194b4 12 0x03, 0x55, 0x04, 0x07, 0x0c, 0x07, 0x4e, 0x65, 0x77, 0x62, 0x75, 0x72,
feb11 4:86a5029194b4 13 0x79, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08,
feb11 4:86a5029194b4 14 0x56, 0x6f, 0x64, 0x61, 0x66, 0x6f, 0x6e, 0x65, 0x31, 0x0c, 0x30, 0x0a,
feb11 4:86a5029194b4 15 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x52, 0x26, 0x44, 0x31, 0x11,
feb11 4:86a5029194b4 16 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x08, 0x44, 0x4d, 0x53,
feb11 4:86a5029194b4 17 0x65, 0x72, 0x76, 0x65, 0x72, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30,
feb11 4:86a5029194b4 18 0x39, 0x30, 0x33, 0x31, 0x34, 0x30, 0x36, 0x30, 0x39, 0x5a, 0x17, 0x0d,
feb11 4:86a5029194b4 19 0x32, 0x33, 0x30, 0x37, 0x31, 0x33, 0x31, 0x34, 0x30, 0x36, 0x30, 0x39,
feb11 4:86a5029194b4 20 0x5a, 0x30, 0x54, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
feb11 4:86a5029194b4 21 0x13, 0x02, 0x47, 0x42, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04,
feb11 4:86a5029194b4 22 0x08, 0x0c, 0x09, 0x42, 0x65, 0x72, 0x6b, 0x73, 0x68, 0x69, 0x72, 0x65,
feb11 4:86a5029194b4 23 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x56,
feb11 4:86a5029194b4 24 0x6f, 0x64, 0x61, 0x66, 0x6f, 0x6e, 0x65, 0x31, 0x0c, 0x30, 0x0a, 0x06,
feb11 4:86a5029194b4 25 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x52, 0x26, 0x44, 0x31, 0x10, 0x30,
feb11 4:86a5029194b4 26 0x0e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x07, 0x44, 0x65, 0x76, 0x69,
feb11 4:86a5029194b4 27 0x63, 0x65, 0x31, 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
feb11 4:86a5029194b4 28 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d,
feb11 4:86a5029194b4 29 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xc8, 0xa8, 0x06, 0x07,
feb11 4:86a5029194b4 30 0x81, 0x24, 0xb0, 0xb6, 0x92, 0x55, 0x87, 0x12, 0x12, 0x54, 0x50, 0x08,
feb11 4:86a5029194b4 31 0xd7, 0x39, 0xce, 0xba, 0xd1, 0xb3, 0x6d, 0xe7, 0xbb, 0x31, 0x8a, 0x30,
feb11 4:86a5029194b4 32 0xa3, 0xb7, 0xfe, 0x1f, 0xea, 0x0d, 0xab, 0x89, 0x22, 0xf2, 0x93, 0xc8,
feb11 4:86a5029194b4 33 0x5b, 0x48, 0xea, 0x73, 0x6f, 0x87, 0xae, 0x70, 0x1d, 0x94, 0x1c, 0x26,
feb11 4:86a5029194b4 34 0xbe, 0x08, 0x9d, 0xb1, 0xd2, 0x7c, 0xc1, 0xe4, 0xb6, 0x8f, 0x5e, 0xbb,
feb11 4:86a5029194b4 35 0x18, 0xe6, 0xb9, 0x19, 0x58, 0xb4, 0xcf, 0x06, 0x6f, 0x3f, 0x35, 0x0a,
feb11 4:86a5029194b4 36 0x0f, 0x94, 0x82, 0x88, 0xb1, 0x1e, 0x17, 0xa5, 0x52, 0x73, 0xa0, 0xf8,
feb11 4:86a5029194b4 37 0x6d, 0x0a, 0x17, 0x6e, 0x7a, 0x39, 0x47, 0x4c, 0x14, 0xfd, 0xdf, 0x9d,
feb11 4:86a5029194b4 38 0x62, 0x48, 0x0f, 0x7f, 0xe9, 0x97, 0x94, 0xc0, 0xb8, 0x8f, 0xb7, 0x76,
feb11 4:86a5029194b4 39 0xf4, 0xf0, 0x1f, 0xf1, 0xc1, 0x66, 0xbc, 0xf9, 0xf7, 0xe3, 0xf0, 0xb7,
feb11 4:86a5029194b4 40 0x66, 0xe5, 0xeb, 0x09, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x7b, 0x30,
feb11 4:86a5029194b4 41 0x79, 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00,
feb11 4:86a5029194b4 42 0x30, 0x2c, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42, 0x01,
feb11 4:86a5029194b4 43 0x0d, 0x04, 0x1f, 0x16, 0x1d, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x53, 0x4c,
feb11 4:86a5029194b4 44 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x43,
feb11 4:86a5029194b4 45 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x30, 0x1d,
feb11 4:86a5029194b4 46 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2d, 0x14, 0x06,
feb11 4:86a5029194b4 47 0x43, 0x3c, 0xae, 0xf8, 0x02, 0x0a, 0x1d, 0x21, 0xd8, 0x61, 0xd9, 0x96,
feb11 4:86a5029194b4 48 0x8f, 0xc6, 0xfa, 0x9d, 0xe9, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23,
feb11 4:86a5029194b4 49 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xaa, 0x27, 0x1a, 0x6f, 0x88, 0x72,
feb11 4:86a5029194b4 50 0x8c, 0x2d, 0x2d, 0xc2, 0x5a, 0xc5, 0x74, 0x82, 0xa5, 0x44, 0xd1, 0x3d,
feb11 4:86a5029194b4 51 0xa3, 0x15, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
feb11 4:86a5029194b4 52 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x90, 0x07, 0x5b,
feb11 4:86a5029194b4 53 0x99, 0x3c, 0xd4, 0xfe, 0x4f, 0x84, 0x65, 0xa8, 0x3b, 0xd0, 0xa4, 0x2b,
feb11 4:86a5029194b4 54 0xd2, 0xe4, 0x5f, 0xc0, 0x26, 0xaf, 0xbb, 0xb3, 0x4c, 0xad, 0x7d, 0xfb,
feb11 4:86a5029194b4 55 0x12, 0xb9, 0x13, 0x3f, 0x52, 0xee, 0x0b, 0x4f, 0xdf, 0x25, 0xec, 0x53,
feb11 4:86a5029194b4 56 0x29, 0xca, 0xb4, 0xad, 0xf7, 0xbf, 0xaf, 0xa5, 0x4c, 0xd9, 0xea, 0x08,
feb11 4:86a5029194b4 57 0xa9, 0x40, 0x8d, 0x19, 0x5a, 0x5a, 0xb9, 0x62, 0x14, 0x78, 0x3e, 0x0d,
feb11 4:86a5029194b4 58 0xf1, 0x87, 0xcc, 0x75, 0xc1, 0xb8, 0x14, 0xca, 0x5e, 0x4b, 0xde, 0x9e,
feb11 4:86a5029194b4 59 0xc7, 0x76, 0x85, 0xa2, 0x5d, 0x28, 0x62, 0x7c, 0x5c, 0x51, 0x96, 0xab,
feb11 4:86a5029194b4 60 0x4f, 0x7e, 0xbf, 0x67, 0xba, 0xa6, 0xb0, 0x63, 0xbe, 0xbc, 0x9e, 0x1f,
feb11 4:86a5029194b4 61 0xf9, 0xc5, 0x8a, 0xf5, 0xd2, 0xa5, 0x31, 0x29, 0xb1, 0x35, 0x90, 0xed,
feb11 4:86a5029194b4 62 0xc7, 0xaf, 0x2f, 0x63, 0x8b, 0xc2, 0x47, 0x2b, 0x9a, 0x65, 0xa3, 0xd7,
feb11 4:86a5029194b4 63 0x28, 0xe8, 0x19, 0xda, 0xbc
feb11 4:86a5029194b4 64
feb11 4:86a5029194b4 65 };
feb11 4:86a5029194b4 66
feb11 4:86a5029194b4 67 static const int deviceCertificateLength = sizeof(deviceCertificate); //689;
feb11 4:86a5029194b4 68
feb11 4:86a5029194b4 69 #pragma once
feb11 4:86a5029194b4 70 const static unsigned char devicePrivateKey[] = {
feb11 4:86a5029194b4 71
feb11 4:86a5029194b4 72 0x30, 0x82, 0x02, 0x5d, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xc8,
feb11 4:86a5029194b4 73 0xa8, 0x06, 0x07, 0x81, 0x24, 0xb0, 0xb6, 0x92, 0x55, 0x87, 0x12, 0x12,
feb11 4:86a5029194b4 74 0x54, 0x50, 0x08, 0xd7, 0x39, 0xce, 0xba, 0xd1, 0xb3, 0x6d, 0xe7, 0xbb,
feb11 4:86a5029194b4 75 0x31, 0x8a, 0x30, 0xa3, 0xb7, 0xfe, 0x1f, 0xea, 0x0d, 0xab, 0x89, 0x22,
feb11 4:86a5029194b4 76 0xf2, 0x93, 0xc8, 0x5b, 0x48, 0xea, 0x73, 0x6f, 0x87, 0xae, 0x70, 0x1d,
feb11 4:86a5029194b4 77 0x94, 0x1c, 0x26, 0xbe, 0x08, 0x9d, 0xb1, 0xd2, 0x7c, 0xc1, 0xe4, 0xb6,
feb11 4:86a5029194b4 78 0x8f, 0x5e, 0xbb, 0x18, 0xe6, 0xb9, 0x19, 0x58, 0xb4, 0xcf, 0x06, 0x6f,
feb11 4:86a5029194b4 79 0x3f, 0x35, 0x0a, 0x0f, 0x94, 0x82, 0x88, 0xb1, 0x1e, 0x17, 0xa5, 0x52,
feb11 4:86a5029194b4 80 0x73, 0xa0, 0xf8, 0x6d, 0x0a, 0x17, 0x6e, 0x7a, 0x39, 0x47, 0x4c, 0x14,
feb11 4:86a5029194b4 81 0xfd, 0xdf, 0x9d, 0x62, 0x48, 0x0f, 0x7f, 0xe9, 0x97, 0x94, 0xc0, 0xb8,
feb11 4:86a5029194b4 82 0x8f, 0xb7, 0x76, 0xf4, 0xf0, 0x1f, 0xf1, 0xc1, 0x66, 0xbc, 0xf9, 0xf7,
feb11 4:86a5029194b4 83 0xe3, 0xf0, 0xb7, 0x66, 0xe5, 0xeb, 0x09, 0x02, 0x03, 0x01, 0x00, 0x01,
feb11 4:86a5029194b4 84 0x02, 0x81, 0x80, 0x09, 0xdb, 0xd7, 0x8f, 0xfe, 0xd4, 0x62, 0xaa, 0x55,
feb11 4:86a5029194b4 85 0xbe, 0x46, 0x08, 0xa9, 0x45, 0xe3, 0x38, 0xcb, 0xfa, 0x57, 0x21, 0xee,
feb11 4:86a5029194b4 86 0xb3, 0xb6, 0x2e, 0xb0, 0x8f, 0xda, 0x8e, 0x51, 0x3c, 0xf5, 0x0b, 0x74,
feb11 4:86a5029194b4 87 0x60, 0x7f, 0x91, 0x19, 0x5a, 0x79, 0xd0, 0x5a, 0x4b, 0xd6, 0xd9, 0x1d,
feb11 4:86a5029194b4 88 0x1d, 0xb9, 0x80, 0x60, 0xb3, 0xaa, 0x3e, 0x6d, 0x0f, 0xd7, 0x4f, 0xa9,
feb11 4:86a5029194b4 89 0x5b, 0xdf, 0xda, 0xf0, 0xed, 0x52, 0x66, 0x20, 0x9f, 0xb4, 0x0d, 0x88,
feb11 4:86a5029194b4 90 0x23, 0x7d, 0xd2, 0x5a, 0x0a, 0x39, 0x6a, 0x82, 0xd8, 0x88, 0x75, 0x62,
feb11 4:86a5029194b4 91 0x11, 0x39, 0x6f, 0xd8, 0x36, 0xba, 0x30, 0x86, 0x15, 0x1b, 0x51, 0xee,
feb11 4:86a5029194b4 92 0x90, 0x7d, 0x58, 0x60, 0xd5, 0xb6, 0xc9, 0xd7, 0x2d, 0x23, 0x1b, 0xa3,
feb11 4:86a5029194b4 93 0xb5, 0x8d, 0xef, 0x5d, 0xb3, 0x4d, 0x12, 0x89, 0x20, 0xee, 0x7f, 0xec,
feb11 4:86a5029194b4 94 0x81, 0x40, 0x97, 0xc9, 0xee, 0xb9, 0x61, 0x21, 0x5a, 0x3e, 0x51, 0x02,
feb11 4:86a5029194b4 95 0x41, 0x00, 0xf0, 0x5b, 0x47, 0x31, 0xcb, 0xf4, 0xb3, 0x5d, 0x24, 0xd6,
feb11 4:86a5029194b4 96 0xd1, 0xf8, 0x41, 0x9d, 0xca, 0x3d, 0xc5, 0x90, 0x6e, 0x61, 0x32, 0xe9,
feb11 4:86a5029194b4 97 0xd0, 0x43, 0x12, 0x67, 0x70, 0x01, 0x45, 0x8d, 0xbd, 0xe3, 0x0a, 0x30,
feb11 4:86a5029194b4 98 0x06, 0xd0, 0x0e, 0xd4, 0x75, 0xff, 0x4b, 0x1f, 0xf8, 0x2d, 0xf9, 0xe1,
feb11 4:86a5029194b4 99 0x72, 0x60, 0xb3, 0xbd, 0x60, 0x4c, 0x3e, 0x00, 0xf1, 0x0e, 0x23, 0x19,
feb11 4:86a5029194b4 100 0x7f, 0x5a, 0xfe, 0x61, 0x86, 0x13, 0x02, 0x41, 0x00, 0xd5, 0xb7, 0x46,
feb11 4:86a5029194b4 101 0xdf, 0xe6, 0xfc, 0x0e, 0x79, 0xea, 0xf5, 0x4f, 0x4b, 0x58, 0x0e, 0xa0,
feb11 4:86a5029194b4 102 0x4a, 0x15, 0x52, 0xde, 0x4a, 0x08, 0xc1, 0x46, 0xc0, 0x25, 0x14, 0x64,
feb11 4:86a5029194b4 103 0x15, 0x9a, 0x3d, 0xd4, 0x64, 0x6a, 0xad, 0x70, 0x87, 0x86, 0x6a, 0x32,
feb11 4:86a5029194b4 104 0x16, 0x2d, 0xcb, 0xc1, 0x12, 0x4b, 0xfb, 0xf6, 0x64, 0x4f, 0x8d, 0x17,
feb11 4:86a5029194b4 105 0xfc, 0x68, 0xe8, 0xba, 0xfb, 0xd9, 0x5c, 0x77, 0x18, 0xc5, 0xbe, 0x9d,
feb11 4:86a5029194b4 106 0xf3, 0x02, 0x41, 0x00, 0xbb, 0x44, 0x12, 0xcb, 0x2c, 0x82, 0x41, 0xc1,
feb11 4:86a5029194b4 107 0x1f, 0x73, 0xb3, 0xf2, 0x3d, 0x85, 0x67, 0xce, 0x0b, 0x00, 0x85, 0xcf,
feb11 4:86a5029194b4 108 0x7b, 0x30, 0x8a, 0x8f, 0xc7, 0x66, 0x09, 0xf1, 0x23, 0xb4, 0xd4, 0xae,
feb11 4:86a5029194b4 109 0x71, 0x00, 0x8c, 0x3e, 0x4c, 0x5f, 0xa2, 0x73, 0xbe, 0x9f, 0x70, 0xe8,
feb11 4:86a5029194b4 110 0xb9, 0x58, 0xba, 0x99, 0xb7, 0x50, 0xa4, 0x17, 0xa2, 0xf3, 0x6e, 0xdc,
feb11 4:86a5029194b4 111 0xb9, 0xe2, 0x22, 0xc4, 0xcd, 0x8f, 0x44, 0x3b, 0x02, 0x41, 0x00, 0xaa,
feb11 4:86a5029194b4 112 0x4f, 0xe3, 0x50, 0x5d, 0x60, 0x33, 0x1d, 0x1f, 0x8c, 0x1c, 0x83, 0xdb,
feb11 4:86a5029194b4 113 0x89, 0xd4, 0x5d, 0x15, 0x7f, 0x33, 0x9c, 0x66, 0x3b, 0xb8, 0x69, 0x39,
feb11 4:86a5029194b4 114 0x63, 0x75, 0x9a, 0xed, 0x8f, 0x26, 0x6a, 0x5b, 0xc5, 0x19, 0xef, 0x36,
feb11 4:86a5029194b4 115 0xc3, 0xfc, 0x64, 0x46, 0x5c, 0xa0, 0xe1, 0x36, 0xe2, 0x75, 0x69, 0x5d,
feb11 4:86a5029194b4 116 0x28, 0x00, 0x9c, 0x6a, 0xf2, 0x44, 0xc8, 0x9d, 0x60, 0x9d, 0x9c, 0x85,
feb11 4:86a5029194b4 117 0x41, 0xb1, 0xd7, 0x02, 0x40, 0x71, 0xf2, 0xf4, 0x2f, 0x5f, 0xe7, 0x9a,
feb11 4:86a5029194b4 118 0x81, 0x43, 0x6b, 0x37, 0xa9, 0x92, 0x29, 0x0a, 0x64, 0xaf, 0x82, 0x8a,
feb11 4:86a5029194b4 119 0x3d, 0x6a, 0x93, 0xb6, 0xd8, 0xb3, 0xd6, 0x8c, 0xd8, 0xf3, 0x66, 0xbd,
feb11 4:86a5029194b4 120 0x9b, 0x59, 0x86, 0x23, 0xf5, 0xae, 0xaa, 0x3c, 0xcd, 0xc2, 0xdc, 0x91,
feb11 4:86a5029194b4 121 0x16, 0x43, 0xdd, 0xec, 0x85, 0x4b, 0x7d, 0x4f, 0xc5, 0x27, 0xb5, 0x1f,
feb11 4:86a5029194b4 122 0x04, 0x7e, 0xb6, 0x42, 0x75, 0x0a, 0x10, 0xcb, 0x38
feb11 4:86a5029194b4 123
feb11 4:86a5029194b4 124 };
feb11 4:86a5029194b4 125
feb11 4:86a5029194b4 126 const static int devicePrivateKeyLength = sizeof(devicePrivateKey);
feb11 4:86a5029194b4 127
feb11 4:86a5029194b4 128 #pragma once
feb11 4:86a5029194b4 129
feb11 4:86a5029194b4 130 const static unsigned char rootCertificate[] = {
feb11 4:86a5029194b4 131 0x30, 0x82, 0x02, 0x95, 0x30, 0x82, 0x01, 0xfe, 0xa0, 0x03, 0x02, 0x01,
feb11 4:86a5029194b4 132 0x02, 0x02, 0x02, 0x11, 0x11, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
feb11 4:86a5029194b4 133 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x67, 0x31, 0x0b,
feb11 4:86a5029194b4 134 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31,
feb11 4:86a5029194b4 135 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x09, 0x42, 0x65,
feb11 4:86a5029194b4 136 0x72, 0x6b, 0x73, 0x68, 0x69, 0x72, 0x65, 0x31, 0x10, 0x30, 0x0e, 0x06,
feb11 4:86a5029194b4 137 0x03, 0x55, 0x04, 0x07, 0x0c, 0x07, 0x4e, 0x65, 0x77, 0x62, 0x75, 0x72,
feb11 4:86a5029194b4 138 0x79, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08,
feb11 4:86a5029194b4 139 0x56, 0x6f, 0x64, 0x61, 0x66, 0x6f, 0x6e, 0x65, 0x31, 0x0c, 0x30, 0x0a,
feb11 4:86a5029194b4 140 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x52, 0x26, 0x44, 0x31, 0x11,
feb11 4:86a5029194b4 141 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x08, 0x44, 0x4d, 0x53,
feb11 4:86a5029194b4 142 0x65, 0x72, 0x76, 0x65, 0x72, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x33, 0x30,
feb11 4:86a5029194b4 143 0x39, 0x30, 0x33, 0x31, 0x34, 0x30, 0x36, 0x30, 0x38, 0x5a, 0x17, 0x0d,
feb11 4:86a5029194b4 144 0x32, 0x33, 0x30, 0x37, 0x31, 0x33, 0x31, 0x34, 0x30, 0x36, 0x30, 0x38,
feb11 4:86a5029194b4 145 0x5a, 0x30, 0x67, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
feb11 4:86a5029194b4 146 0x13, 0x02, 0x47, 0x42, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04,
feb11 4:86a5029194b4 147 0x08, 0x0c, 0x09, 0x42, 0x65, 0x72, 0x6b, 0x73, 0x68, 0x69, 0x72, 0x65,
feb11 4:86a5029194b4 148 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x07, 0x4e,
feb11 4:86a5029194b4 149 0x65, 0x77, 0x62, 0x75, 0x72, 0x79, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03,
feb11 4:86a5029194b4 150 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x56, 0x6f, 0x64, 0x61, 0x66, 0x6f, 0x6e,
feb11 4:86a5029194b4 151 0x65, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03,
feb11 4:86a5029194b4 152 0x52, 0x26, 0x44, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x03,
feb11 4:86a5029194b4 153 0x0c, 0x08, 0x44, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x30, 0x81,
feb11 4:86a5029194b4 154 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
feb11 4:86a5029194b4 155 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02,
feb11 4:86a5029194b4 156 0x81, 0x81, 0x00, 0xba, 0x95, 0x99, 0x1e, 0x6e, 0x75, 0x45, 0xb3, 0x24,
feb11 4:86a5029194b4 157 0x12, 0x4b, 0xca, 0x02, 0xf8, 0x25, 0x33, 0xde, 0x81, 0x71, 0x65, 0x52,
feb11 4:86a5029194b4 158 0x73, 0x15, 0xbb, 0x29, 0xa5, 0xc5, 0x86, 0x6d, 0x40, 0xae, 0xdb, 0x75,
feb11 4:86a5029194b4 159 0xd5, 0x59, 0xb9, 0x29, 0x30, 0xb4, 0xac, 0x8f, 0xb4, 0x92, 0x21, 0xb9,
feb11 4:86a5029194b4 160 0xe2, 0x4c, 0x61, 0xbd, 0x8e, 0xde, 0xb9, 0x67, 0x94, 0x71, 0x0a, 0x89,
feb11 4:86a5029194b4 161 0x28, 0x7c, 0x54, 0x4c, 0x58, 0xd4, 0x5a, 0xff, 0x13, 0x70, 0x9a, 0xf3,
feb11 4:86a5029194b4 162 0x9a, 0x32, 0x1e, 0xe4, 0x4b, 0x61, 0x8a, 0x92, 0xe9, 0x74, 0xdf, 0x95,
feb11 4:86a5029194b4 163 0xfc, 0xf2, 0x42, 0x3b, 0xf1, 0x62, 0x2d, 0x74, 0xa2, 0xca, 0x44, 0x2c,
feb11 4:86a5029194b4 164 0x0b, 0xe5, 0x61, 0xc9, 0x4f, 0x01, 0x28, 0xd6, 0x2b, 0xa6, 0xca, 0x72,
feb11 4:86a5029194b4 165 0x89, 0x0d, 0x74, 0xf4, 0xa3, 0xe8, 0xc9, 0xb1, 0xfc, 0x90, 0xae, 0xd6,
feb11 4:86a5029194b4 166 0xd8, 0x85, 0xdf, 0xd9, 0xdf, 0x40, 0x68, 0xba, 0xf3, 0x72, 0x05, 0x02,
feb11 4:86a5029194b4 167 0x03, 0x01, 0x00, 0x01, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03,
feb11 4:86a5029194b4 168 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xaa, 0x27, 0x1a, 0x6f, 0x88,
feb11 4:86a5029194b4 169 0x72, 0x8c, 0x2d, 0x2d, 0xc2, 0x5a, 0xc5, 0x74, 0x82, 0xa5, 0x44, 0xd1,
feb11 4:86a5029194b4 170 0x3d, 0xa3, 0x15, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18,
feb11 4:86a5029194b4 171 0x30, 0x16, 0x80, 0x14, 0xaa, 0x27, 0x1a, 0x6f, 0x88, 0x72, 0x8c, 0x2d,
feb11 4:86a5029194b4 172 0x2d, 0xc2, 0x5a, 0xc5, 0x74, 0x82, 0xa5, 0x44, 0xd1, 0x3d, 0xa3, 0x15,
feb11 4:86a5029194b4 173 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01,
feb11 4:86a5029194b4 174 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
feb11 4:86a5029194b4 175 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x7d, 0x38, 0x65,
feb11 4:86a5029194b4 176 0xbb, 0x6b, 0xbb, 0xde, 0x19, 0xb7, 0xaa, 0xe6, 0x49, 0x5f, 0x9e, 0xe3,
feb11 4:86a5029194b4 177 0xa0, 0xc4, 0x67, 0xfc, 0xdf, 0xa5, 0xd8, 0xa6, 0x38, 0xab, 0x5e, 0x98,
feb11 4:86a5029194b4 178 0x23, 0xe8, 0x19, 0x22, 0x82, 0x65, 0x2c, 0x5f, 0xee, 0x21, 0x9c, 0x3a,
feb11 4:86a5029194b4 179 0xe0, 0xeb, 0xb1, 0x7c, 0xa3, 0x5f, 0x22, 0xf2, 0xaf, 0x08, 0xbe, 0x78,
feb11 4:86a5029194b4 180 0x2d, 0x0f, 0xbf, 0xa6, 0x58, 0x7e, 0xf0, 0x2c, 0xec, 0x99, 0x97, 0x63,
feb11 4:86a5029194b4 181 0x75, 0x5f, 0x52, 0xff, 0x5f, 0x89, 0x79, 0xf7, 0xbe, 0x46, 0x11, 0x28,
feb11 4:86a5029194b4 182 0x82, 0x34, 0xaf, 0x16, 0x3b, 0x36, 0xa3, 0x25, 0x5a, 0x30, 0x28, 0xd9,
feb11 4:86a5029194b4 183 0x3b, 0x15, 0xae, 0x8e, 0xf6, 0x49, 0xdd, 0x77, 0x61, 0xa5, 0x76, 0x49,
feb11 4:86a5029194b4 184 0xb1, 0xd9, 0xc4, 0xc7, 0x8a, 0xe0, 0x98, 0x78, 0xa3, 0xdd, 0xeb, 0x37,
feb11 4:86a5029194b4 185 0x4b, 0x36, 0xab, 0x4d, 0x28, 0xcf, 0x55, 0x6f, 0x0c, 0xa4, 0x15, 0x38,
feb11 4:86a5029194b4 186 0x1f, 0xc3, 0x4a, 0x95, 0x62
feb11 4:86a5029194b4 187 };
feb11 4:86a5029194b4 188
feb11 4:86a5029194b4 189 static const int rootCertificateLength = sizeof(rootCertificate);
feb11 4:86a5029194b4 190
feb11 4:86a5029194b4 191
feb11 4:86a5029194b4 192 static int receiveFunc(CYASSL* ssl, char *buf, int sz, void *ctx)
feb11 4:86a5029194b4 193 {
feb11 4:86a5029194b4 194 int fd = *(int*)ctx;
feb11 4:86a5029194b4 195 fd_set rfds;
feb11 4:86a5029194b4 196 FD_ZERO(&rfds);
feb11 4:86a5029194b4 197 FD_SET(fd, &rfds);
feb11 4:86a5029194b4 198
feb11 4:86a5029194b4 199 int ret = lwip_select(FD_SETSIZE, &rfds, NULL, NULL, NULL);
feb11 4:86a5029194b4 200 if(ret <= 0 || !FD_ISSET(fd, &rfds))
feb11 4:86a5029194b4 201 return -1;
feb11 4:86a5029194b4 202 return lwip_recv(fd, buf, sz, 0);
feb11 4:86a5029194b4 203 }
feb11 4:86a5029194b4 204
feb11 4:86a5029194b4 205 static int sendFunc(CYASSL* ssl, char *buf, int sz, void *ctx)
feb11 4:86a5029194b4 206 {
feb11 4:86a5029194b4 207 int fd = *(int*)ctx;
feb11 4:86a5029194b4 208 fd_set wfds;
feb11 4:86a5029194b4 209 FD_ZERO(&wfds);
feb11 4:86a5029194b4 210 FD_SET(fd, &wfds);
feb11 4:86a5029194b4 211
feb11 4:86a5029194b4 212 int ret = lwip_select(FD_SETSIZE, NULL, &wfds, NULL, NULL);
feb11 4:86a5029194b4 213 if(ret <= 0 || !FD_ISSET(fd, &wfds))
feb11 4:86a5029194b4 214 return -1;
feb11 4:86a5029194b4 215
feb11 4:86a5029194b4 216 return lwip_send(fd, buf, sz, 0);
feb11 4:86a5029194b4 217 }
feb11 4:86a5029194b4 218
feb11 4:86a5029194b4 219 const static int HTTPS_PORT = 443;
feb11 4:86a5029194b4 220
feb11 4:86a5029194b4 221 TLSServer::TLSServer():
feb11 4:86a5029194b4 222 _ssl_ctx(NULL)
feb11 4:86a5029194b4 223 {
feb11 4:86a5029194b4 224 }
feb11 4:86a5029194b4 225
feb11 4:86a5029194b4 226 TLSServer::~TLSServer()
feb11 4:86a5029194b4 227 {
feb11 4:86a5029194b4 228
feb11 4:86a5029194b4 229 }
feb11 4:86a5029194b4 230
feb11 4:86a5029194b4 231 bool TLSServer::init()
feb11 4:86a5029194b4 232 {
feb11 4:86a5029194b4 233 if (init_socket(SOCK_STREAM) < 0)
feb11 4:86a5029194b4 234 return false;
feb11 4:86a5029194b4 235
feb11 4:86a5029194b4 236 struct sockaddr_in localHost;
feb11 4:86a5029194b4 237 memset(&localHost, 0, sizeof(localHost));
feb11 4:86a5029194b4 238
feb11 4:86a5029194b4 239 localHost.sin_family = AF_INET;
feb11 4:86a5029194b4 240 localHost.sin_port = htons(HTTPS_PORT);
feb11 4:86a5029194b4 241 localHost.sin_addr.s_addr = INADDR_ANY;
feb11 4:86a5029194b4 242
feb11 4:86a5029194b4 243 if (lwip_bind(_sock_fd, (const struct sockaddr *) &localHost, sizeof(localHost)) < 0) {
feb11 4:86a5029194b4 244 close();
feb11 4:86a5029194b4 245 return false;
feb11 4:86a5029194b4 246 }
feb11 4:86a5029194b4 247 if (lwip_listen(_sock_fd, 4) < 0) {
feb11 4:86a5029194b4 248 close();
feb11 4:86a5029194b4 249 return false;
feb11 4:86a5029194b4 250 }
feb11 4:86a5029194b4 251
feb11 4:86a5029194b4 252 CyaSSL_Init();
feb11 4:86a5029194b4 253
feb11 4:86a5029194b4 254 CYASSL_METHOD* method = CyaTLSv1_server_method();
feb11 4:86a5029194b4 255 if(method == NULL)
feb11 4:86a5029194b4 256 return false;
feb11 4:86a5029194b4 257
feb11 4:86a5029194b4 258 _ssl_ctx = CyaSSL_CTX_new(method);
feb11 4:86a5029194b4 259 if(_ssl_ctx == NULL)
feb11 4:86a5029194b4 260 return false;
feb11 4:86a5029194b4 261
feb11 4:86a5029194b4 262 CyaSSL_SetIOSend(_ssl_ctx, &sendFunc);
feb11 4:86a5029194b4 263 CyaSSL_SetIORecv(_ssl_ctx, &receiveFunc);
feb11 4:86a5029194b4 264 CyaSSL_CTX_load_verify_buffer(_ssl_ctx,rootCertificate, rootCertificateLength,SSL_FILETYPE_ASN1);
feb11 4:86a5029194b4 265 CyaSSL_CTX_use_certificate_buffer(_ssl_ctx, deviceCertificate, deviceCertificateLength, SSL_FILETYPE_ASN1);
feb11 4:86a5029194b4 266 CyaSSL_CTX_use_PrivateKey_buffer(_ssl_ctx, devicePrivateKey, devicePrivateKeyLength, SSL_FILETYPE_ASN1);
feb11 4:86a5029194b4 267
feb11 4:86a5029194b4 268
feb11 4:86a5029194b4 269 return true;
feb11 4:86a5029194b4 270 }
feb11 4:86a5029194b4 271
feb11 4:86a5029194b4 272 bool TLSServer::accept(TLSConnection &con)
feb11 4:86a5029194b4 273 {
feb11 4:86a5029194b4 274 if(_ssl_ctx == NULL)
feb11 4:86a5029194b4 275 return false;
feb11 4:86a5029194b4 276
feb11 4:86a5029194b4 277 fd_set fdSet;
feb11 4:86a5029194b4 278 FD_ZERO(&fdSet);
feb11 4:86a5029194b4 279 FD_SET(_sock_fd, &fdSet);
feb11 4:86a5029194b4 280
feb11 4:86a5029194b4 281
feb11 4:86a5029194b4 282 int ret = lwip_select(FD_SETSIZE, &fdSet, NULL, NULL, NULL);
feb11 4:86a5029194b4 283 if(ret <= 0 || !FD_ISSET(_sock_fd, &fdSet))
feb11 4:86a5029194b4 284 return -1;
feb11 4:86a5029194b4 285
feb11 4:86a5029194b4 286 con.reset_address();
feb11 4:86a5029194b4 287 socklen_t newSockRemoteHostLen = sizeof(con._remoteHost);
feb11 4:86a5029194b4 288 int fd = lwip_accept(_sock_fd, (struct sockaddr*) &con._remoteHost, &newSockRemoteHostLen);
feb11 4:86a5029194b4 289 if (fd < 0)
feb11 4:86a5029194b4 290 return false;
feb11 4:86a5029194b4 291 con._sock_fd = fd;
feb11 4:86a5029194b4 292
feb11 4:86a5029194b4 293 con._ssl_ctx = _ssl_ctx;
feb11 4:86a5029194b4 294 con._ssl = CyaSSL_new(_ssl_ctx);
feb11 4:86a5029194b4 295 if(con._ssl == NULL)
feb11 4:86a5029194b4 296 return false;
feb11 4:86a5029194b4 297 CyaSSL_set_fd(con._ssl, fd);
feb11 4:86a5029194b4 298 if(CyaSSL_accept(con._ssl) < 0)
feb11 4:86a5029194b4 299 {
feb11 4:86a5029194b4 300 CyaSSL_free(con._ssl);
feb11 4:86a5029194b4 301 return false;
feb11 4:86a5029194b4 302 }
feb11 4:86a5029194b4 303
feb11 4:86a5029194b4 304 con._is_connected = true;
feb11 4:86a5029194b4 305 return true;
feb11 4:86a5029194b4 306 }
feb11 4:86a5029194b4 307