From 4e3925227a65ade92f3052ee54a810f5d6c4e96e Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Tue, 22 Sep 2015 11:08:25 +0100 Subject: [PATCH] Add defines for pipeline capable ciphers Add a flag to indicate that a cipher is capable of performing "pipelining", i.e. multiple encrypts/decrypts in parallel. Also add some new ctrls that ciphers will need to implement if they are pipeline capable. Reviewed-by: Tim Hudson --- include/openssl/evp.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/openssl/evp.h b/include/openssl/evp.h index 0b6b82a0f9..aecb871e6b 100644 --- a/include/openssl/evp.h +++ b/include/openssl/evp.h @@ -307,6 +307,8 @@ int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, # define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 # define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 # define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 +/* Cipher can handle pipeline operations */ +# define EVP_CIPH_FLAG_PIPELINE 0X800000 /* * Cipher context flag to indicate we can handle wrap mode: if allowed in @@ -373,6 +375,13 @@ int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, /* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */ # define EVP_CTRL_BLOCK_PADDING_MODE 0x21 +/* Set the output buffers to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22 +/* Set the input buffers to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23 +/* Set the input buffer lengths to use for a pipelined operation */ +# define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24 + /* Padding modes */ #define EVP_PADDING_PKCS7 1 #define EVP_PADDING_ISO7816_4 2 -- GitLab