Skip to content
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

[do not review] feat: TlsSocket AsyncWriteSome and AsyncReadSome #376

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
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
1 change: 1 addition & 0 deletions util/fibers/epoll_socket.cc
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,7 @@ void EpollSocket::AsyncWriteSome(const iovec* v, uint32_t len, io::AsyncProgress
async_write_pending_ = 1;
}

// TODO implement async functionality
void EpollSocket::AsyncReadSome(const iovec* v, uint32_t len, io::AsyncProgressCb cb) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

epoll AsyncRead is synchronous

auto res = ReadSome(v, len);
cb(res);
Expand Down
2 changes: 2 additions & 0 deletions util/tls/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ add_library(tls_lib tls_engine.cc tls_socket.cc)

cxx_link(tls_lib fibers2 OpenSSL::SSL)
cxx_test(tls_engine_test tls_lib LABELS CI)
cxx_test(tls_socket_test tls_lib LABELS CI)
target_compile_definitions(tls_socket_test PRIVATE TEST_CERT_PATH="${CMAKE_SOURCE_DIR}/util/tls/certificates")
34 changes: 34 additions & 0 deletions util/tls/certificates/ca-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
-----BEGIN CERTIFICATE-----
Copy link
Contributor Author

@kostasrim kostasrim Feb 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think 50 years will be enough for this to last 🤓 (that's the --days I used to generate it)

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
NKAA0KWByKALMro4PBlpF/kTxr2CbKVeYBHV
-----END CERTIFICATE-----
52 changes: 52 additions & 0 deletions util/tls/certificates/ca-key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
kJqZvaQ0+xLiJzLEFcBbj9W9ifuI
-----END PRIVATE KEY-----
32 changes: 32 additions & 0 deletions util/tls/certificates/server-cert.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFkDCCA3gCFAl+cQgAc8X1kKpQRGpm1yuClHAyMA0GCSqGSIb3DQEBCwUAMIGB
MQswCQYDVQQGEwJHUjEMMAoGA1UECAwDU0tHMRUwEwYDVQQHDAxUaGVzc2Fsb25p
a2kxCzAJBgNVBAoMAktLMRQwEgYDVQQLDAtBY21lU3R1ZGlvczELMAkGA1UEAwwC
R3IxHTAbBgkqhkiG9w0BCQEWDmFjbWVAZ21haWwuY29tMCAXDTI1MDIwNzE0MzEx
N1oYDzIwNzUwMjA3MTQzMTE3WjCBhDELMAkGA1UEBhMCR1IxDDAKBgNVBAgMA1NL
RzEVMBMGA1UEBwwMVGhlc3NhbG9uaWtpMQswCQYDVQQKDAJLSzENMAsGA1UECwwE
Q29tcDELMAkGA1UEAwwCR3IxJzAlBgkqhkiG9w0BCQEWGGRvZXNfbm90X2V4aXN0
QGdtYWlsLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANPj8Dd0
1rMlAsO+sbusg8Lx+QM0gSHXsDSz9Gd7MAqGz+whj9bogmfkWQVuMZLtGXeYTFOX
BRve/VK+4v2ubr0S7qkQFOFJLsFhiFjjl5EdwqWroO38imRst5CVsEHopk9kF6L2
gd/W9Gh0OnZK2XY514N5l/dtn4YIsx5yApPdMk6eOwSzjYgHyWFmAxqAtr8fED2I
q8GoBCSuECe8Zg0Yisf53L0RVhlBnb4YYA9XGKpNo/B1kXJfy/mXAzqS255EsPuq
rIMy8Zdx08BxuOITvbaP1PsvBuhzB380KCcqnY1DGaeKm+t5mBI8a2hpjI+CZmif
ZYS1PfVDURq7tGCyW1zG5lv7rm0Z2FqT5IMwaOwvNzIdoZL4/wi5uUXfoVGu3NTR
llNNAc8lHFeBm5NjXn321BwfgoCvh0LRMxW7pogdkmUmozcrxK0YNGCRWO3vP0nU
xLJZUf5THEpL5YIIFSzngB1NlaFjxDMOMzEub4VQkpFulfjmH/BXTDM9nfe0zXyR
QCfTsqVWpLD6ZQvWgirB0ywwpVihB9B+XxFER6/qkkA5WY0M4CXg8nT3SY5G1Zql
4CPO4JLt2XZNkOze+mnTkAJ9LXCdvsiWPwsYsP6T8sw05DhRJGG0j1VQ1eyWXnwT
Pn6gH9Y3BX/gO/JKxQNIhxgdG9pDpcTIn5y5AgMBAAEwDQYJKoZIhvcNAQELBQAD
ggIBAEL1mvCUfpGZGBdH+1kkQjOuw0Cq7OCzsywEu/XM/I64Y4z5GoAVatB573VC
BGK40NhenKMk2o5KmIUs8iO3psOMWCu0/HQ1fZnz7hI0RiJLau51yfq8RzHx54Dd
8y5P7JcuezPFeD9DsZWis4OHG1B/XpETwpApzwFympWMSmr7Y1LxWNtHDvv6d0iQ
yjyojWkN7zh0lbPxVM8teeG4FsIE0EKUKUanS3aj67AtXmAjYWthVf/ptt2uMr81
BYMbwbotwsZ0KrDyyr3z/SZShocENV3l3Fsr2/vLBIlw4rDG815jChOo22YHut3V
2eLHkaCQ8nihRr0kqsIaiMlB9d2NzGobXxvx3g00GFUPiR8rOWer08Igb5HlEC87
oxrlgBcIohcJUAMYZJCBkLDfOejPxTbVvaMvI4DVo9ujIuWjQy3zn+l7ZzqrGMa+
Bt4UAMCarTMsv+j6zGlDMqVWyWWvtfD7iB28Y/UpsD6A2rbMGcVuRURwn2ZauTYE
PVgOCv7oFSgNzAGaHRFkbHgstWlY0RsW4kduFjcBf6fV71RO3OJGtePDLgQa7oIx
sw9CPJ/VeHEAOvBHVbFj1N3v490z597Z/lUzBGjsCGDsyIAj3z6BNfGT7gRn54NO
G2rnT9kvaqyC/46nrT24BaHFJAI05sLcN49Kr86WD8gTzNAU
-----END CERTIFICATE-----
52 changes: 52 additions & 0 deletions util/tls/certificates/server-key.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
VND/KvYrY0yf03p9a/p1DFIqLpRtGLs=
-----END PRIVATE KEY-----
Loading
Loading