summaryrefslogtreecommitdiffstats
path: root/build/external/patches/quicly_0.0.5-vpp/0001-Add-function-ptr-in-ptls-ctx-for-aead_encrypt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'build/external/patches/quicly_0.0.5-vpp/0001-Add-function-ptr-in-ptls-ctx-for-aead_encrypt.patch')
-rw-r--r--build/external/patches/quicly_0.0.5-vpp/0001-Add-function-ptr-in-ptls-ctx-for-aead_encrypt.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/build/external/patches/quicly_0.0.5-vpp/0001-Add-function-ptr-in-ptls-ctx-for-aead_encrypt.patch b/build/external/patches/quicly_0.0.5-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.5-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);
+
+