Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 20 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ IF (WITH_DTRACE)
MESSAGE(STATUS "Enabling USDT support")
ENDIF ()

SET(CMAKE_C_FLAGS "-std=c99 -Wall -g ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}")
SET(CMAKE_C_FLAGS "-std=c99 -Wall -DHAVE_ATTR_TEST=0 ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}")
SET(BPF_LDFLAGS "-g -lbpf -lelf -lz")
INCLUDE_DIRECTORIES(
deps/cifra/src/ext
deps/cifra/src
Expand All @@ -21,6 +22,7 @@ INCLUDE_DIRECTORIES(
include
${CMAKE_CURRENT_BINARY_DIR})
SET(MINICRYPTO_LIBRARY_FILES
lib/bpf/loader.c
deps/micro-ecc/uECC.c
deps/cifra/src/aes.c
deps/cifra/src/blockwise.c
Expand All @@ -35,6 +37,8 @@ SET(MINICRYPTO_LIBRARY_FILES
deps/cifra/src/poly1305.c
deps/cifra/src/sha256.c
deps/cifra/src/sha512.c)


SET(CORE_FILES
lib/picotls.c
lib/picotcpls.c
Expand Down Expand Up @@ -63,6 +67,7 @@ IF (BROTLI_DEC_FOUND AND BROTLI_ENC_FOUND)
LIST(APPEND CORE_EXTRA_LIBS ${BROTLI_DEC_LIBRARIES} ${BROTLI_ENC_LIBRARIES})
ENDIF ()


ADD_LIBRARY(picotls-core ${CORE_FILES})
TARGET_LINK_LIBRARIES(picotls-core ${CORE_EXTRA_LIBS})
ADD_LIBRARY(picotls-minicrypto
Expand All @@ -77,7 +82,7 @@ ADD_LIBRARY(picotls-minicrypto
lib/uecc.c
lib/asn1.c
lib/ffx.c)
TARGET_LINK_LIBRARIES(picotls-minicrypto picotls-core)
TARGET_LINK_LIBRARIES(picotls-minicrypto picotls-core )
ADD_EXECUTABLE(test-minicrypto.t
${MINICRYPTO_LIBRARY_FILES}
deps/picotest/picotest.c
Expand All @@ -91,20 +96,25 @@ ADD_EXECUTABLE(test-minicrypto.t
lib/cifra/aes128.c
lib/cifra/aes256.c
lib/cifra/random.c)

TARGET_LINK_LIBRARIES(test-minicrypto.t ${BPF_LDFLAGS})
SET(TEST_EXES test-minicrypto.t)

FIND_PACKAGE(OpenSSL)
IF (OPENSSL_FOUND AND NOT (OPENSSL_VERSION VERSION_LESS "1.0.1"))
MESSAGE(STATUS " Enabling OpenSSL support")
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}
lib/bpf/samples/bpf
lib/bpf/tools/perf
lib/bpf/tools/include
lib/bpf/include/uapi
lib/bpf/include)
ADD_LIBRARY(picotls-openssl lib/openssl.c)
TARGET_LINK_LIBRARIES(picotls-openssl ${OPENSSL_LIBRARIES} picotls-core ${CMAKE_DL_LIBS})
TARGET_LINK_LIBRARIES(picotls-openssl ${OPENSSL_LIBRARIES} picotls-core ${CMAKE_DL_LIBS} ${BPF_LDFLAGS})
ADD_EXECUTABLE(cli t/cli.c lib/pembase64.c)
TARGET_LINK_LIBRARIES(cli picotls-openssl picotls-core)
ADD_EXECUTABLE(picotls-esni src/esni.c)
TARGET_LINK_LIBRARIES(picotls-esni picotls-openssl picotls-core ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})

TARGET_LINK_LIBRARIES(picotls-esni picotls-openssl picotls-core ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS} ${BPF_LDFLAGS})
ADD_EXECUTABLE(test-openssl.t
${MINICRYPTO_LIBRARY_FILES}
lib/cifra.c
Expand All @@ -121,11 +131,11 @@ IF (OPENSSL_FOUND AND NOT (OPENSSL_VERSION VERSION_LESS "1.0.1"))
${CORE_TEST_FILES}
t/openssl.c)
SET_TARGET_PROPERTIES(test-openssl.t PROPERTIES COMPILE_FLAGS "-DPTLS_MEMORY_DEBUG=1")
TARGET_LINK_LIBRARIES(test-openssl.t ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})
TARGET_LINK_LIBRARIES(test-openssl.t ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS} ${BPF_LDFLAGS})

ADD_EXECUTABLE(ptlsbench t/ptlsbench.c)
SET_TARGET_PROPERTIES(ptlsbench PROPERTIES COMPILE_FLAGS "-DPTLS_MEMORY_DEBUG=1")
TARGET_LINK_LIBRARIES(ptlsbench picotls-minicrypto picotls-openssl picotls-core ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})
SET_TARGET_PROPERTIES(ptlsbench PROPERTIES COMPILE_FLAGS "-DPTLS_MEMORY_DEBUG=1 -lbpf -lz")
TARGET_LINK_LIBRARIES(ptlsbench picotls-minicrypto picotls-openssl picotls-core ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS} ${BPF_LDFLAGS})

SET(TEST_EXES ${TEST_EXES} test-openssl.t)
ELSE ()
Expand Down
6 changes: 6 additions & 0 deletions include/bpf_loader.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#ifndef bpf_loader_h
#define bpf_loader_h

int load_bpf_prog(uint8_t *base, size_t len);

#endif
14 changes: 14 additions & 0 deletions include/picotls.h
Original file line number Diff line number Diff line change
Expand Up @@ -748,6 +748,7 @@ extern "C" {
* if set, EOED will not be emitted or accepted
*/
unsigned omit_end_of_early_data : 1;

/**
* if set, we will communicate our ability to send TCP options
* at the handshake
Expand All @@ -759,6 +760,19 @@ extern "C" {
* options
*/
unsigned tcpls_options_confirmed : 1;

/**
* Set to support failover, if the peer support tcpls_options
* options
*/
unsigned support_tcpls_options_failover : 1;

/**
* Set to support ebpf congestion control, if the peer support tcpls_options
* options
*/
unsigned support_tcpls_options_cc : 1;

/**
* Socket on which eventually applies local and received tcpls_options
*/
Expand Down
Loading