-
Notifications
You must be signed in to change notification settings - Fork 8
feat(wish): add TLS support (BoringSSL for now) + some tweaks #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,25 +17,43 @@ FetchContent_Declare( | |
| GIT_REPOSITORY https://github.com/libevent/libevent.git | ||
| GIT_TAG master | ||
| ) | ||
| # Disable OpenSSL and other heavy features for libevent to keep build fast/simple if possible | ||
|
|
||
| FetchContent_Declare( | ||
| boringssl | ||
| GIT_REPOSITORY https://boringssl.googlesource.com/boringssl | ||
| GIT_TAG main | ||
| ) | ||
|
|
||
| # Disable OpenSSL and Mbed TLS. We use BoringSSL instead. | ||
| set(EVENT__DISABLE_OPENSSL ON CACHE BOOL "" FORCE) | ||
| set(EVENT__DISABLE_MBEDTLS ON CACHE BOOL "" FORCE) | ||
|
|
||
| # Exclude tests, sample files, etc. that we don't need. | ||
| set(EVENT__DISABLE_BENCHMARKS ON CACHE BOOL "" FORCE) | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. removing benchmark code, too |
||
| set(EVENT__DISABLE_TESTS ON CACHE BOOL "" FORCE) | ||
| set(EVENT__DISABLE_REGRESS ON CACHE BOOL "" FORCE) | ||
| set(EVENT__DISABLE_SAMPLES ON CACHE BOOL "" FORCE) | ||
|
|
||
| FetchContent_MakeAvailable(wslay libevent) | ||
| FetchContent_MakeAvailable(wslay libevent boringssl) | ||
|
|
||
| include_directories(${wslay_SOURCE_DIR}/lib/includes) | ||
| include_directories(${libevent_SOURCE_DIR}/include) | ||
| include_directories(${libevent_BINARY_DIR}/include) | ||
| include_directories(${boringssl_SOURCE_DIR}/include) | ||
| include_directories(src) | ||
|
|
||
| # We will compile libevent's bufferevent_openssl.c inside our library | ||
| # since we disabled it in libevent's own build. | ||
| add_library(wish_handler | ||
| src/wish_handler.cc | ||
| src/wish_handler.h | ||
| ${libevent_SOURCE_DIR}/bufferevent_openssl.c | ||
| ${libevent_SOURCE_DIR}/bufferevent_ssl.c | ||
| src/tls_context.cc | ||
| src/tls_context.h | ||
| ) | ||
| target_link_libraries(wish_handler wslay event) | ||
| # BoringSSL targets: ssl and crypto | ||
| target_link_libraries(wish_handler wslay event ssl crypto) | ||
|
|
||
| add_executable(wish-server examples/server.cc) | ||
| target_link_libraries(wish-server wish_handler) | ||
|
|
||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. certificates and keys for testing generated by using |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| -----BEGIN CERTIFICATE----- | ||
| MIIDAzCCAeugAwIBAgIULUllQ/GTW3bJoBxzDeGx+PnANfgwDQYJKoZIhvcNAQEL | ||
| BQAwETEPMA0GA1UEAwwGVGVzdENBMB4XDTI2MDIyNTA0NTIwM1oXDTI3MDIyNTA0 | ||
| NTIwM1owETEPMA0GA1UEAwwGVGVzdENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A | ||
| MIIBCgKCAQEA2WlzLjr4zzS4mNp37NUUl/nJrC17QmNt7fsNszR7u8PuY8Opw9F6 | ||
| BBMsP0V4TT3Vht8BBgFJcOrC6cbMURxk2b+Qflzbn4WNKwx014BGIFwDoG3x3LT7 | ||
| 3cTdVweHm9x6HX23XF7NZr//TOJ2Dkkix8jmvxjinn1ebfJOC+oMDYeUkO7UpolB | ||
| 2KF+b+oPurVL8690Db6iVb3X4goCW+vE9VdDBRrujo7zSztg8TVGilIuv3W2WKzF | ||
| hzd1EXt8MwSLR5HXWpoVm6wuIt/wiylkvzayc3yUCYMS+Z7dCZibhLdYIkITzCb/ | ||
| +k8p9B+nXY6lHKfeChryqOOcsgp8sliBmQIDAQABo1MwUTAdBgNVHQ4EFgQUulOC | ||
| wCKuUv1iwoNFir55WHgiunwwHwYDVR0jBBgwFoAUulOCwCKuUv1iwoNFir55WHgi | ||
| unwwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAjkYV7MyJHlJS | ||
| lzHXUSTKQxwchllofsNPJ6BXEeNKPvfOTTe+KJKjSyldvzmQmVQpoqBpi5NBPNuC | ||
| yYesF7A002MSlH6udsBYiDlMr0z0oj0fdJZkXSxQgMKtigw7Qr60uNhT5Cb3Sn95 | ||
| PHAOfUnwH2iQ8omd7OnCOs/80xp//cwMKlOuMbq7X4YOQxRP04RK8AU0fyrrpuj6 | ||
| A+opTHhTQBr81OngLf4DKl9L7sS8fmHmo31pGHALP2+goDVB5YT6m4Hysp9PeVdc | ||
| zKlGbV/OZRNaEqqZdhkr6gUiV6TxLb3eaAN55AlTsVMS2CPGljsf9gyXnX0HdeOO | ||
| R80+cmIbmg== | ||
| -----END CERTIFICATE----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| -----BEGIN PRIVATE KEY----- | ||
| MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDZaXMuOvjPNLiY | ||
| 2nfs1RSX+cmsLXtCY23t+w2zNHu7w+5jw6nD0XoEEyw/RXhNPdWG3wEGAUlw6sLp | ||
| xsxRHGTZv5B+XNufhY0rDHTXgEYgXAOgbfHctPvdxN1XB4eb3HodfbdcXs1mv/9M | ||
| 4nYOSSLHyOa/GOKefV5t8k4L6gwNh5SQ7tSmiUHYoX5v6g+6tUvzr3QNvqJVvdfi | ||
| CgJb68T1V0MFGu6OjvNLO2DxNUaKUi6/dbZYrMWHN3URe3wzBItHkddamhWbrC4i | ||
| 3/CLKWS/NrJzfJQJgxL5nt0JmJuEt1giQhPMJv/6Tyn0H6ddjqUcp94KGvKo45yy | ||
| CnyyWIGZAgMBAAECggEAFfW7YTjqawZ+m0zc1maG6htcQhiFddUUdFhaf8Z+NX7i | ||
| wD+yEPICjrEPk/P8xOOJIvJ5OF2uqPnDdojCmDJDowVhD0xqkBQ1qDqdvisqGihl | ||
| IuIcDxCWTKYO+9SKP2VfjcVGHS3DtjxQKZhJt6NuQIsDuJtnP343CKiz9qrdLQv8 | ||
| JqqbIETgJD2i/JOhmVFB00Xx1sGSGUe7LpDGtZ0S4Yv6deoRM1OFZ8wLJyf1rmlh | ||
| c0FJqRGyKAsSERYYBUnKsVB8MOMDgucmrFkSowslPQW1F3TeX1Jq3fS3DX0ie7pt | ||
| +CO15FhKc7EEKEsgtgRt4o49nXTscmaQwkM/vDh+sQKBgQD7EEdzYeBhYWnt+keb | ||
| /h4tAkKiRnQGYXMJbIhvsGHx+eFo+eV/2ntZAQq1MOVpVF6p4aM41Z4r3+GiurLe | ||
| ymt7mTrLYpkNQ02tkL6cMqEF8EghuAMHSTPY29/ZiiihU5bckhIfmCXX9YEjNskA | ||
| vWEO5Ed73GxiL02Zu8+mBpEY6QKBgQDdr8lAPJnlABu5vAxrLqqYySCNW77ihMpU | ||
| 7/SuiwDnK3CDvCGaclL4C3R7HMKOCa7SbK9nGgllEs2hfTQrcbP0Qz47qYdhnXdr | ||
| S8KcSZMgAH0L3sA3dKO9QsbvumMRBN+8kxN0o3PkYqpE+L0Zmq+ZYd9awB2Cy98q | ||
| MoGNUIa1MQKBgQCrA4a3+Iafrnw6Zw4aGrmxTOXYpYboxb5XP/+bnJjK+7voBrim | ||
| I0t77/K8QycxXQ/yRckpsJDCMAkBEI1Apr8Z/OEIowu/9gVWYc8ElJQMeISZuz8M | ||
| 2ncfk33iL3LHmSmc6z6/GKNGfGtPckTuZRFU1HhAzX9iTfhc7Ipf+/8f6QKBgBK4 | ||
| K0hPVbduoOi4JlxOnn00TplhK+c4y1UMxh6PAk6C7odRNY0zJipn3TggH5Wa37ZJ | ||
| Ey6jljOAuPhv+B3LBiUUIIctM49cmp7m0NIdrFzBbc24y4ZjRQhQQTgxBviC7tmf | ||
| mb75pmmco0AbuOwWkclj6FZjbpqC2J9ZkHL8X8OhAoGAGCky9qOEZSIGwOFGwnM/ | ||
| Y1a1xI0kZSYfA7AnacqAXUQ0tjMMTB1O8t+qKFLCRWVgnphWKpJ5WCGabZ0uFywM | ||
| O7MS5FFhmkNFdlS4ajJVscY4yWtPbb9SGHW572zqYEaI0kUbvSDXqqpUBh+9fvLk | ||
| URpPRg1F1oO2Lgox3tYamCw= | ||
| -----END PRIVATE KEY----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| 4881D8895D13397DC3319D6AFCE4BD764D28B887 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| -----BEGIN CERTIFICATE----- | ||
| MIIC9jCCAd6gAwIBAgIUSIHYiV0TOX3DMZ1q/OS9dk0ouIcwDQYJKoZIhvcNAQEL | ||
| BQAwETEPMA0GA1UEAwwGVGVzdENBMB4XDTI2MDIyNTA0NTIwM1oXDTI3MDIyNTA0 | ||
| NTIwM1owFTETMBEGA1UEAwwKVGVzdENsaWVudDCCASIwDQYJKoZIhvcNAQEBBQAD | ||
| ggEPADCCAQoCggEBAL7UV/B4sfiqkHPY8BrwprfXc6zuvCKQmK9wSVSHB12dFNnN | ||
| /05B05cTjCtwx+k/OvqOAqtfm4Fj5h5Gzv0VYcJvOkoOGtG/+Fwm3J2yCcjQLuhe | ||
| osgONk+5PG5emSbtjkmt1NWP8gdzydm93eCIp7CdQDNEqQHPsxLgLwUeiSXWNIw2 | ||
| TKZ/9/jEavkI7T/ex3Wowpc8qk2sQdXHOQSDhERZ2xKbrenujTfu3xjis/ajhdg5 | ||
| P78qiVmK2BVtxp+m/tIIrn5vJJHQXiO3QObWUxKGJqiDgDn3YX3P23cRcM6jiD/7 | ||
| jPH9qi9EMatnznUqdG9W9+n9VouE3bDbo4yMTesCAwEAAaNCMEAwHQYDVR0OBBYE | ||
| FLEyhA7GYfN1bFgtCg2ZaMrzPJMIMB8GA1UdIwQYMBaAFLpTgsAirlL9YsKDRYq+ | ||
| eVh4Irp8MA0GCSqGSIb3DQEBCwUAA4IBAQAdWTsNALb5EC4zdUSeLOOPUMIuAyuE | ||
| kce1gIqrJz6+dFdm4VFQzd+t69q2VDHaMjoJYUGaFj9LRngtXVZVhNktk27KtIst | ||
| 62TzdvOwGZ0SxieI9ZNyaPw4d55TNH5JLroA0P7Xs/lSZxBiidJUPSGEAEQBi7Kn | ||
| nHJUk2NzVnglsT+s32B/i2+w/Kab3U1GLZxqZcf2rWBgv/gKvSXmKY1tsoRQAcFs | ||
| ZLVBo+3WPmbOa6uh6bIZ/mCLtpZ9fn+Sg5uJsjhSOIrVLReY5sncTuhuX/XGY2Mx | ||
| LhJvlTsy9arpWQCGAbKkllQglzSYPrCO4ne9wiEtHZe3kFGEZPSJ9pYz | ||
| -----END CERTIFICATE----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| -----BEGIN CERTIFICATE REQUEST----- | ||
| MIICWjCCAUICAQAwFTETMBEGA1UEAwwKVGVzdENsaWVudDCCASIwDQYJKoZIhvcN | ||
| AQEBBQADggEPADCCAQoCggEBAL7UV/B4sfiqkHPY8BrwprfXc6zuvCKQmK9wSVSH | ||
| B12dFNnN/05B05cTjCtwx+k/OvqOAqtfm4Fj5h5Gzv0VYcJvOkoOGtG/+Fwm3J2y | ||
| CcjQLuheosgONk+5PG5emSbtjkmt1NWP8gdzydm93eCIp7CdQDNEqQHPsxLgLwUe | ||
| iSXWNIw2TKZ/9/jEavkI7T/ex3Wowpc8qk2sQdXHOQSDhERZ2xKbrenujTfu3xji | ||
| s/ajhdg5P78qiVmK2BVtxp+m/tIIrn5vJJHQXiO3QObWUxKGJqiDgDn3YX3P23cR | ||
| cM6jiD/7jPH9qi9EMatnznUqdG9W9+n9VouE3bDbo4yMTesCAwEAAaAAMA0GCSqG | ||
| SIb3DQEBCwUAA4IBAQCTBMs1gqu0wKetW81iJ+7Px37NONLgSXzXUmAU0OYID5w4 | ||
| 7UH9EhgfSbiOWxagJeTngiDIUDl4ZqpGMKqszY2BYpEQKm/Cg1pVmsfIBWWoOa1o | ||
| dlQngoxMP1M8TE5KE0/I855l8vWoHoNGG6YCIlkvmkUReolYrT2uksry5ph2a8lG | ||
| xu16uoiHuukKalw9p04tfopYgEsstmgIigNR/uEvF/CMhtFOmwM0UCkuqYJAy5Mi | ||
| m56I3fZqtCqgOj8i5JEgOPtFYV7mzLEkkmoFXKpBSDjutzf49ph+AVaQsA2kMif8 | ||
| 5lO9LFWelCH5xQYBYXMQfpcp8xB+/qsRvki5fNNG | ||
| -----END CERTIFICATE REQUEST----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| -----BEGIN PRIVATE KEY----- | ||
| MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC+1FfweLH4qpBz | ||
| 2PAa8Ka313Os7rwikJivcElUhwddnRTZzf9OQdOXE4wrcMfpPzr6jgKrX5uBY+Ye | ||
| Rs79FWHCbzpKDhrRv/hcJtydsgnI0C7oXqLIDjZPuTxuXpkm7Y5JrdTVj/IHc8nZ | ||
| vd3giKewnUAzRKkBz7MS4C8FHokl1jSMNkymf/f4xGr5CO0/3sd1qMKXPKpNrEHV | ||
| xzkEg4REWdsSm63p7o037t8Y4rP2o4XYOT+/KolZitgVbcafpv7SCK5+bySR0F4j | ||
| t0Dm1lMShiaog4A592F9z9t3EXDOo4g/+4zx/aovRDGrZ851KnRvVvfp/VaLhN2w | ||
| 26OMjE3rAgMBAAECggEANnq82GQ8uvdG4ivu8GH/1sBlv9swTtXlIUD3TnB2Q92S | ||
| lFPhLWBRnfHwtH4wNIDev6VHUdGrvZbdnYstkMdH75B9naLFOViK+RQHK+YmMPRu | ||
| T9yksGSOUNhbTk8nfhuX4aUE/CtqN4Jw//7alz2sUhmyuHBDp8a6IwtpoRaEpQ4x | ||
| 8gNgN8QLFCGGMypK//bJCIFaZeWwwXqvdzhtWjsJ98g4/cHsmY5TqAjrn/nsh+es | ||
| LMHAQP867NIPn9kzhXC8mho1bjdl13q/Fc43kvzdXvi//BviHf4hy3Iq6MZVDkSl | ||
| 9ii+46Hz0Hm+hEv/z9eaA9P7DHeW/Eu5xmq9Thp1MQKBgQDpeuQcuiUe3c08nMyG | ||
| qoAc6CLH02y1ZnK8kTuKZ9xfKcnlBdmO9kEby2JjL2tB9unReUkOsJsJ4P+eyQ0m | ||
| eldUsz+yOkKZUL8wfWumO3aorN8OVKpXeoC5XgWPsBh8enQOqM2h9Z0kkaQxpH54 | ||
| 27tJTCNcs/as1H147THueVyrtwKBgQDRPFIhGmgbyqQRpRoxMNVjtuTegc5/U7UW | ||
| k9LZyPOZo+en0D3cWjqhTtKLD1iSErbGggxyJej0kLGVYgoNGsWperh2nA8nMhAh | ||
| du+cg4Yw0QEO5vbt4yvl+ZbRR0UrGv8eJyMfKnLBLv6BYYmVJKX0jVLDWXR8gmxs | ||
| pLu+pCRXbQKBgEBPvW28SGVMKzA68ItXg5pyxsHMFvGQmqIeTww8t5Lu69HN3rNm | ||
| WWDSkPNJKH4vCRDOG7WUJ+B8vWx7bMfggxWtmin5qkaY21D7+x762iB0HazQ3Wrj | ||
| L3nf0CBYHSaMhFNVY+7svLBJ/bQ+3ydjPx9dfZAXcicBEN6yV0Kc403ZAoGBALY5 | ||
| 17l22xbhPFUVuqL+ycnnPpq+6I4h5AP+yFLeXbIAer+/cDDZ8FgOYvWzbssBO2fV | ||
| WWuMsr9UySS11tUk7OM2uzKppdTYGA5dHD/umE8pp8dHxeTWxaOr5PrtHEN3Zprn | ||
| MQJyoLC48fTSctWOrm43Ks5xuS67FBzmt5BIOlJdAoGAGlDOnrIq3kBsCzjltUMi | ||
| NKcC9Zv2U45lxLpFXDn88EJjK822P41nFEPOrFxz92rU+m6tLh+v9oxzeVyTXz0t | ||
| 2wFOpUmyqp3dx+ao0MmZ2osnTHDy4CZlbDsq2Zgutp6FJIuwrnGqQvrm5dzLi7K1 | ||
| EUN76mURJTkwNGavgFB+QUw= | ||
| -----END PRIVATE KEY----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| -----BEGIN CERTIFICATE----- | ||
| MIIC9TCCAd2gAwIBAgIUSIHYiV0TOX3DMZ1q/OS9dk0ouIYwDQYJKoZIhvcNAQEL | ||
| BQAwETEPMA0GA1UEAwwGVGVzdENBMB4XDTI2MDIyNTA0NTIwM1oXDTI3MDIyNTA0 | ||
| NTIwM1owFDESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0BAQEFAAOC | ||
| AQ8AMIIBCgKCAQEAx+Nj4qUS5OHJFk+ododRkifW2Av/rHj+w90e8riOTYYl4JfS | ||
| kymur/ytAgg6cmXg0t9BNwfogOxPPdSI7pHEW9uo7Ckt6HsvkjNiEgIKhpoM6cee | ||
| RovXvUMfZz87oaTgWJLAVIuy9KDAbiH2S6YsWBeHVYW6gG6/+DzOp4EtR2mIatL9 | ||
| oNYhymbT92Wh94kEwS08rYkDkpely36C1pY4JrQSbi56FTTly796MHXVdbKwJ/iA | ||
| HWCVrwLJO2KR2alLlanGeDzI80PvOis2VoLk73Rip1KtN82uVQaGLj/Ue87ra6Er | ||
| /UAIh7xeNLBwJy+ms/eUN+Qb1RHxLxoYUVlffQIDAQABo0IwQDAdBgNVHQ4EFgQU | ||
| ELOIoZF2Uon8O0zVTay9IbotxZ8wHwYDVR0jBBgwFoAUulOCwCKuUv1iwoNFir55 | ||
| WHgiunwwDQYJKoZIhvcNAQELBQADggEBABjGHfP9mwhYM/7cQX+zPWrgx/SdoiCB | ||
| ddNytI7P3zodQLyiArwn03gmO1XG4J/7dXfdxL64Y8Ome41XfgnqOoSFcT3GAaWD | ||
| l1BfWxbwe7QwoZLNrV4oUjX9BzjAIOYVcxuHc9d46aiX3q3USf9oZRVkimEMlXVI | ||
| MpRaGEmJ83mjyzdk/ECKmOilFMWB5fgOwTiKI2vt0rL0Q3UJ/jxz+AzaX0flGvym | ||
| hTiwFTUmR4y+VZDb0qvQX/gY+EqJwXiNZN8QO7BmKdPxhdtFuxbkdMjbVOR9IkgJ | ||
| X1MiZsrMdQTAohJ4nCLgKdiCXdOhSWJWyKjKl3orn52zHHVgBqhwZtU= | ||
| -----END CERTIFICATE----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| -----BEGIN CERTIFICATE REQUEST----- | ||
| MIICWTCCAUECAQAwFDESMBAGA1UEAwwJMTI3LjAuMC4xMIIBIjANBgkqhkiG9w0B | ||
| AQEFAAOCAQ8AMIIBCgKCAQEAx+Nj4qUS5OHJFk+ododRkifW2Av/rHj+w90e8riO | ||
| TYYl4JfSkymur/ytAgg6cmXg0t9BNwfogOxPPdSI7pHEW9uo7Ckt6HsvkjNiEgIK | ||
| hpoM6ceeRovXvUMfZz87oaTgWJLAVIuy9KDAbiH2S6YsWBeHVYW6gG6/+DzOp4Et | ||
| R2mIatL9oNYhymbT92Wh94kEwS08rYkDkpely36C1pY4JrQSbi56FTTly796MHXV | ||
| dbKwJ/iAHWCVrwLJO2KR2alLlanGeDzI80PvOis2VoLk73Rip1KtN82uVQaGLj/U | ||
| e87ra6Er/UAIh7xeNLBwJy+ms/eUN+Qb1RHxLxoYUVlffQIDAQABoAAwDQYJKoZI | ||
| hvcNAQELBQADggEBABgXHLjpfS5F+ELiq+ouMMFbgZvcopB5+aO6serFg+bCcFPe | ||
| EfEwbmggF6vUnfXg3YOV8IHw+sYmaN02f1xydRtupeIbyLB2drsmS/5Nd8iwcO0w | ||
| GQlLIhY0L8a85sjNfoy2qn4GFkAo7YRFUkOU0PcE7LWNQqUMccovUtCddI2chEuB | ||
| XAfE4LNQd7z6o//Fh4AReOY+Z98qMU9jJe+Of9QPqzXdI+27gLKj9aGrKl4LuqE7 | ||
| vVjkjCCuWn7VoEv5Re5X/sa37K3DxWtr6ee1q2DnDqBLCxZh7cgHNjWx8MLZCQtP | ||
| JhFJfpScoBTVlM8rc7KmYD9yycoFgacZ+qTCPDE= | ||
| -----END CERTIFICATE REQUEST----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| -----BEGIN PRIVATE KEY----- | ||
| MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDH42PipRLk4ckW | ||
| T6h2h1GSJ9bYC/+seP7D3R7yuI5NhiXgl9KTKa6v/K0CCDpyZeDS30E3B+iA7E89 | ||
| 1IjukcRb26jsKS3oey+SM2ISAgqGmgzpx55Gi9e9Qx9nPzuhpOBYksBUi7L0oMBu | ||
| IfZLpixYF4dVhbqAbr/4PM6ngS1HaYhq0v2g1iHKZtP3ZaH3iQTBLTytiQOSl6XL | ||
| foLWljgmtBJuLnoVNOXLv3owddV1srAn+IAdYJWvAsk7YpHZqUuVqcZ4PMjzQ+86 | ||
| KzZWguTvdGKnUq03za5VBoYuP9R7zutroSv9QAiHvF40sHAnL6az95Q35BvVEfEv | ||
| GhhRWV99AgMBAAECggEAAtT5Zs4g6OY8A5loURmUscXnuNLesfJa5ap91EGCHp4O | ||
| blKoVJZsF6k0SEmWjmVcHJC2K1Hs3Nq8OquGrx6YkhaYG5RvxpHsOB2LP6cQwBxx | ||
| n2RJHUXA7jkDumI+dYlQ9mBJ4kjCZc3bPBQ2GZdGnI7kx3ToEga/qIQwB1aArjjN | ||
| nANPbyP1ttLi5cM0wrXlYaBwpLFaxdPBdDUCvx3ER2gpC7D8PbKBMgjGkQI+KR1m | ||
| NZ785s57lTdTPRF/t41Iw0mzCwXcYH9XMglNls5EOZJkRzf6ycMvQD8yk199tL3+ | ||
| vCkmPw0HGe2LTAOLwUMSVJmw14ZfzNsJoyBfhRCzsQKBgQD1mNEUnVUWSw1+7txV | ||
| 2AcUrIJWQWHmRQqr35WIGNT08faXw1v1psJqIU4KW0b1dC4T/PRpveRfwtUXt39b | ||
| bwvNorOeUuhvnKi93o/aDrOOMradExXICl8BRp+xc7fl7ta28QC+zlYs9urLh5/E | ||
| az6pSvvHTW39I1wW5zTnOO8zWQKBgQDQWuveIvbz2IO7JOf/orQ67kE6M+hmLdX2 | ||
| fEF/DHetCDqqi2HoMHtV4d6XdQL9aJ5MwcbfbMBXpISxi2d588hHVoEpvSLi0hDe | ||
| ijPu7hrgOZt8n1VLQzih6KSjxSCnxA6LSSr/iCtMNPdIoYdKmRyG8ZgCEbDlJQDZ | ||
| RUXtSW48xQKBgGzf8wg9eyPn37K+tyTDINh0ZU9RqtHHF6T7+DEeOQHhZhz/OPwc | ||
| kiE0ZIFI15smhurLf5qE2QHuwELEUQw6nTPrBc+RF4OrIk8RpBnZ3JWUO8pEVKqa | ||
| lmVdZpvnHcYr7Dmre1Ya6K8EQzA5DoWnuV6ZZCaFV9YZX9CzbIt4fOn5AoGAHbGX | ||
| g+T/xOjKfVVZKvmJLgzehuj26fkGUUaMHwsr0yElG0EaBvlB2o+CJZurfWn3hYDo | ||
| Utcw4ky0DImNibfQhzow1j36RtEhTlXr6NVORz5uhmg+w6ck3w5EyIJDkSVD3V3k | ||
| Ht7NLOMvis5adas0gZbUzxauWznW0SAqQxL//vECgYEAoqNdpO/hvOaIRKZLrzfR | ||
| fp/v0Kth2v8p5GF1ukdYGtmuP4qDLekxgkn6AO9ocv/orBtF1ec/pOUG6+rqlZX0 | ||
| 3IJvNF9N0FBEieFxlWpMwIAQr2/VtSOyyyNknhNpxpHBTKWX1nPmjB6pm+AEB8KW | ||
| HmCOYVwhpOyitHAfHC7s3hk= | ||
| -----END PRIVATE KEY----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,14 +1,31 @@ | ||
| #include <iostream> | ||
| #include <cstring> | ||
| #include <iostream> | ||
| #include <string> | ||
|
|
||
| #include <event2/event.h> | ||
| // To use BoringSSL | ||
| #define EVENT__HAVE_OPENSSL 1 | ||
| #include <event2/bufferevent.h> | ||
| #include <event2/bufferevent_ssl.h> | ||
| #include <event2/dns.h> | ||
| #include <event2/event.h> | ||
| #include <openssl/ssl.h> | ||
|
|
||
| #include "../src/tls_context.h" | ||
|
Comment on lines
+8
to
+13
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. adjusted include order to comply with Google C++ Style Guide. The same about the other files. |
||
| #include "../src/wish_handler.h" | ||
|
|
||
| int main() { | ||
| // Initialize BoringSSL | ||
| SSL_library_init(); | ||
| SSL_load_error_strings(); | ||
|
|
||
| TlsContext tls_ctx; | ||
| tls_ctx.set_ca_file("../certs/ca.crt"); | ||
| tls_ctx.set_certificate_file("../certs/client.crt"); | ||
| tls_ctx.set_private_key_file("../certs/client.key"); | ||
| if (!tls_ctx.Init(false)) { | ||
| std::cerr << "Failed to init TLS context" << std::endl; | ||
| return 1; | ||
| } | ||
| struct event_base *base = event_base_new(); | ||
| if (!base) { | ||
| std::cerr << "Could not initialize libevent!" << std::endl; | ||
|
|
@@ -21,31 +38,35 @@ int main() { | |
| return 1; | ||
| } | ||
|
|
||
| struct bufferevent *bev = bufferevent_socket_new(base, -1, BEV_OPT_CLOSE_ON_FREE); | ||
| SSL *ssl = SSL_new(tls_ctx.ssl_ctx()); | ||
| struct bufferevent *bev = | ||
| bufferevent_openssl_socket_new(base, -1, ssl, BUFFEREVENT_SSL_CONNECTING, | ||
| BEV_OPT_CLOSE_ON_FREE); | ||
| if (!bev) { | ||
| std::cerr << "Could not create bufferevent!" << std::endl; | ||
| return 1; | ||
| } | ||
|
|
||
| if (bufferevent_socket_connect_hostname(bev, dns_base, AF_INET, "127.0.0.1", 8080) < 0) { | ||
| if (bufferevent_socket_connect_hostname(bev, dns_base, AF_INET, "127.0.0.1", | ||
| 8080) < 0) { | ||
| std::cerr << "Could not connect!" << std::endl; | ||
| return 1; | ||
| } | ||
|
|
||
| // Handler manages its own lifecycle (deletes itself on close) | ||
| WishHandler* handler = new WishHandler(bev, false); // is_server = false | ||
| handler->SetOnOpen([handler]() { | ||
| std::cout << "Connected and Handshake Complete!" << std::endl; | ||
| handler->SendText("Hello WiSH Text!"); | ||
| handler->SendBinary("Hello WiSH Binary!"); | ||
| handler->SendMetadata(true, "Hello WiSH Metadata!"); | ||
| }); | ||
|
|
||
| handler->SetOnMessage([](uint8_t opcode, const std::string& msg) { | ||
| std::cout << "Server says [opcode " << (int)opcode << "]: " << msg << std::endl; | ||
| }); | ||
| WishHandler *handler = new WishHandler(bev, false); // is_server = false | ||
|
|
||
| handler->SetOnOpen([handler]() | ||
| { | ||
| std::cout << "Connected and Handshake Complete!" << std::endl; | ||
|
|
||
| handler->SendText("Hello WiSH Text!"); | ||
| handler->SendBinary("Hello WiSH Binary!"); | ||
| handler->SendMetadata(true, "Hello WiSH Metadata!"); }); | ||
|
|
||
| handler->SetOnMessage([](uint8_t opcode, const std::string &msg) | ||
| { std::cout << "Server says [opcode " << (int)opcode << "]: " << msg | ||
| << std::endl; }); | ||
|
|
||
| handler->Start(); | ||
|
|
||
|
|
@@ -54,6 +75,6 @@ int main() { | |
|
|
||
| evdns_base_free(dns_base, 0); | ||
| event_base_free(base); | ||
|
|
||
| return 0; | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
updated