[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] 22/32: transport (quic): token validation check
From: |
gnunet |
Subject: |
[gnunet] 22/32: transport (quic): token validation check |
Date: |
Tue, 18 Jul 2023 17:16:11 +0200 |
This is an automated email from the git hooks/post-receive script.
marshall pushed a commit to branch master
in repository gnunet.
commit 63a18f014bfff83463b85498ca299e5e9a5edefc
Author: marshall <stmr@umich.edu>
AuthorDate: Mon Jun 26 09:12:20 2023 -0400
transport (quic): token validation check
---
src/transport/gnunet-communicator-quic.c | 47 ++++++++++++++++++++++++++++----
1 file changed, 41 insertions(+), 6 deletions(-)
diff --git a/src/transport/gnunet-communicator-quic.c
b/src/transport/gnunet-communicator-quic.c
index 8bd8deca7..dc6cca01c 100644
--- a/src/transport/gnunet-communicator-quic.c
+++ b/src/transport/gnunet-communicator-quic.c
@@ -176,6 +176,40 @@ mint_token (const uint8_t *dcid, size_t dcid_len,
}
+static bool
+validate_token (const uint8_t *token, size_t token_len,
+ struct sockaddr_storage *addr, socklen_t addr_len,
+ uint8_t *odcid, size_t *odcid_len)
+{
+ if ((token_len < sizeof("quiche") - 1) ||
+ memcmp (token, "quiche", sizeof("quiche") - 1))
+ {
+ return false;
+ }
+
+ token += sizeof("quiche") - 1;
+ token_len -= sizeof("quiche") - 1;
+
+ if ((token_len < addr_len) || memcmp (token, addr, addr_len))
+ {
+ return false;
+ }
+
+ token += addr_len;
+ token_len -= addr_len;
+
+ if (*odcid_len < token_len)
+ {
+ return false;
+ }
+
+ memcpy (odcid, token, token_len);
+ *odcid_len = token_len;
+
+ return true;
+}
+
+
static struct quic_conn*
create_conn (uint8_t *scid, size_t scid_len,
uint8_t *odcid, size_t odcid_len,
@@ -580,12 +614,13 @@ sock_read (void *cls)
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "sent %zd bytes\n", sent);
}
- // if (0 == validate_token (token, token_len, (struct sockaddr*) &sa,
salen,
- // odcid, &odcid_len))
- // {
- // GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- // "invalid address validation token created\n");
- // }
+ if (0 == validate_token (quic_header.token, quic_header.token_len,
+ &sa, salen,
+ quic_header.odcid, &quic_header.odcid_len))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "invalid address validation token created\n");
+ }
conn = create_conn (quic_header.dcid, quic_header.dcid_len,
quic_header.odcid, quic_header.odcid_len,
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet] 11/32: transport (quic): conn object implement, (continued)
- [gnunet] 11/32: transport (quic): conn object implement, gnunet, 2023/07/18
- [gnunet] 14/32: transport (quic): more logic for reading stream, gnunet, 2023/07/18
- [gnunet] 15/32: transport (quic): mint_token for generating tokens, gnunet, 2023/07/18
- [gnunet] 13/32: transport (quic): establish connection, gnunet, 2023/07/18
- [gnunet] 18/32: transport (quic): check for closed connections, gnunet, 2023/07/18
- [gnunet] 27/32: transport (quic): Add some pointers, gnunet, 2023/07/18
- [gnunet] 17/32: transport (quic): create connection functionality, gnunet, 2023/07/18
- [gnunet] 16/32: transport (quic): mint tokens, gnunet, 2023/07/18
- [gnunet] 20/32: transport (quic): cleanup, create header object, gnunet, 2023/07/18
- [gnunet] 19/32: transport (quic): minor cleanup, remove commented code, gnunet, 2023/07/18
- [gnunet] 22/32: transport (quic): token validation check,
gnunet <=
- [gnunet] 23/32: transport (quic): get random block for cid, gnunet, 2023/07/18
- [gnunet] 25/32: transport (quic): comm connect, gnunet, 2023/07/18
- [gnunet] 24/32: transport (quic): remove gen_streamid, gnunet, 2023/07/18
- [gnunet] 21/32: transport (quic): fix compiler warnings, gnunet, 2023/07/18
- [gnunet] 26/32: transport (quic): add functions for mq handling, gnunet, 2023/07/18
- [gnunet] 31/32: transport (quic): create peermap using address, gnunet, 2023/07/18
- [gnunet] 32/32: transport (quic): uncrustify, gnunet, 2023/07/18
- [gnunet] 30/32: transport(quic): cleanup conn, gnunet, 2023/07/18
- [gnunet] 29/32: transport (quic): mq handling fixes, gnunet, 2023/07/18
- [gnunet] 28/32: create PeerAddress, gnunet, 2023/07/18