From 9082b43dd06fcd8888eebd95857ef2fb8177d475 Mon Sep 17 00:00:00 2001 From: Mathias Raoul Date: Fri, 12 Jul 2019 19:11:49 +0200 Subject: quic: integrate vpp crypto api for quic packets encryption Type: feature Change-Id: I740f15a5ef959d31e94e59d652aa9f691db1f289 Signed-off-by: Mathias Raoul --- ...function-ptr-in-ptls-ctx-for-aead_encrypt.patch | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 build/external/patches/quicly_0.0.2-vpp/0001-Add-function-ptr-in-ptls-ctx-for-aead_encrypt.patch (limited to 'build') diff --git a/build/external/patches/quicly_0.0.2-vpp/0001-Add-function-ptr-in-ptls-ctx-for-aead_encrypt.patch b/build/external/patches/quicly_0.0.2-vpp/0001-Add-function-ptr-in-ptls-ctx-for-aead_encrypt.patch new file mode 100644 index 00000000000..80f3bcb684f --- /dev/null +++ b/build/external/patches/quicly_0.0.2-vpp/0001-Add-function-ptr-in-ptls-ctx-for-aead_encrypt.patch @@ -0,0 +1,33 @@ +diff --git a/deps/picotls/include/picotls.h b/deps/picotls/include/picotls.h +index 06d62f9..de33b86 100644 +--- a/deps/picotls/include/picotls.h ++++ b/deps/picotls/include/picotls.h +@@ -276,6 +276,8 @@ typedef struct st_ptls_aead_context_t { + size_t (*do_encrypt_final)(struct st_ptls_aead_context_t *ctx, void *output); + size_t (*do_decrypt)(struct st_ptls_aead_context_t *ctx, void *output, const void *input, size_t inlen, const void *iv, + const void *aad, size_t aadlen); ++ size_t (*do_encrypt)(struct st_ptls_aead_context_t *ctx, void *output, const void *input, size_t inlen, uint64_t seq, ++ const void *iv, const void *aad, size_t aadlen); + } ptls_aead_context_t; + + /** +diff --git a/deps/picotls/lib/picotls.c b/deps/picotls/lib/picotls.c +index 70d2fef..f98f7b4 100644 +--- a/deps/picotls/lib/picotls.c ++++ b/deps/picotls/lib/picotls.c +@@ -4890,6 +4890,13 @@ size_t ptls_aead_encrypt(ptls_aead_context_t *ctx, void *output, const void *inp + { + size_t off = 0; + ++ if(ctx->do_encrypt) ++ { ++ uint8_t iv[PTLS_MAX_IV_SIZE]; ++ ptls_aead__build_iv(ctx, iv, seq); ++ return ctx->do_encrypt(ctx, output, input, inlen, seq, iv, aad, aadlen); ++ } ++ + ptls_aead_encrypt_init(ctx, seq, aad, aadlen); + off += ptls_aead_encrypt_update(ctx, ((uint8_t *)output) + off, input, inlen); + off += ptls_aead_encrypt_final(ctx, ((uint8_t *)output) + off); + + -- cgit 1.2.3-korg