[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 12/18] crypto: introduce some common function
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] [PATCH v6 12/18] crypto: introduce some common functions for af_alg backend |
Date: |
Tue, 18 Jul 2017 10:49:31 +0100 |
User-agent: |
Mutt/1.8.3 (2017-05-23) |
On Fri, Jul 14, 2017 at 02:04:05PM -0400, address@hidden wrote:
> From: "Longpeng(Mike)" <address@hidden>
>
> The AF_ALG socket family is the userspace interface for linux
> crypto API, this patch adds af_alg family support and some common
> functions for af_alg backend. It'll be used by afalg-backend crypto
> latter.
>
> Signed-off-by: Longpeng(Mike) <address@hidden>
> ---
> configure | 30 +++++++++++++
> crypto/Makefile.objs | 1 +
> crypto/afalg.c | 116
> +++++++++++++++++++++++++++++++++++++++++++++++++++
> crypto/afalgpriv.h | 54 ++++++++++++++++++++++++
> 4 files changed, 201 insertions(+)
> create mode 100644 crypto/afalg.c
> create mode 100644 crypto/afalgpriv.h
>
> diff --git a/configure b/configure
> index 902653a..4beab2a 100755
> --- a/configure
> +++ b/configure
> @@ -375,6 +375,7 @@ libnfs=""
> coroutine=""
> coroutine_pool=""
> debug_stack_usage="no"
> +crypto_afalg="no"
> seccomp=""
> glusterfs=""
> glusterfs_xlator_opt="no"
> @@ -1124,6 +1125,8 @@ for opt do
> ;;
> --enable-debug-stack-usage) debug_stack_usage="yes"
> ;;
> + --enable-crypto-afalg) crypto_afalg="yes"
> + ;;
We should have an --disable flag too for consistency, even though it is
the default currently.
> --disable-docs) docs="no"
> ;;
> --enable-docs) docs="yes"
> @@ -1443,6 +1446,8 @@ Advanced options (experts only):
> xen pv domain builder
> --enable-debug-stack-usage
> track the maximum stack usage of stacks created
> by qemu_alloc_stack
> + --enable-crypto-afalg
> + enable afalg-backend crypto and try to use it
> first.
>
> Optional features, enabled with --enable-FEATURE and
> disabled with --disable-FEATURE, default is enabled if available:
> @@ -4834,6 +4839,24 @@ if compile_prog "" "" ; then
> have_af_vsock=yes
> fi
>
> +##########################################
> +# check for usable AF_ALG environment
> +hava_af_alg=no
typo s/af_alg/afalg/
> +cat > $TMPC << EOF
> +#include <errno.h>
> +#include <sys/types.h>
> +#include <sys/socket.h>
> +#include <linux/if_alg.h>
> +int main(void) {
> + int sock;
> + sock = socket(AF_ALG, SOCK_SEQPACKET, 0);
> + return sock;
> +}
> +EOF
> +if compile_prog "" "" ; then
> + have_afalg=yes
> +fi
If the user requests afalg and the compile test fails, we should
report an error.
> +
> #################################################
> # Sparc implicitly links with --relax, which is
> # incompatible with -r, so --no-relax should be
> @@ -5300,6 +5323,7 @@ echo "seccomp support $seccomp"
> echo "coroutine backend $coroutine"
> echo "coroutine pool $coroutine_pool"
> echo "debug stack usage $debug_stack_usage"
> +echo "crypto afalg $crypto_afalg"
> echo "GlusterFS support $glusterfs"
> echo "gcov $gcov_tool"
> echo "gcov enabled $gcov"
> @@ -5811,6 +5835,12 @@ if test "$debug_stack_usage" = "yes" ; then
> echo "CONFIG_DEBUG_STACK_USAGE=y" >> $config_host_mak
> fi
>
> +if test "$crypto_afalg" = "yes" ; then
> + if test "$have_afalg" = "yes" ; then
The check for have_afalg=yes is redundant if we report an error
earlier
> + echo "CONFIG_AF_ALG=y" >> $config_host_mak
> + fi
> +fi
> +
> if test "$open_by_handle_at" = "yes" ; then
> echo "CONFIG_OPEN_BY_HANDLE=y" >> $config_host_mak
> fi
These are minor points, so I'm going to squash the following into your
change when merging:
diff --git a/configure b/configure
index 83e6f9772f..9237b50b99 100755
--- a/configure
+++ b/configure
@@ -1127,6 +1127,8 @@ for opt do
;;
--enable-crypto-afalg) crypto_afalg="yes"
;;
+ --disable-crypto-afalg) crypto_afalg="no"
+ ;;
--disable-docs) docs="no"
;;
--enable-docs) docs="yes"
@@ -1446,8 +1448,6 @@ Advanced options (experts only):
xen pv domain builder
--enable-debug-stack-usage
track the maximum stack usage of stacks created by
qemu_alloc_stack
- --enable-crypto-afalg
- enable afalg-backend crypto and try to use it first.
Optional features, enabled with --enable-FEATURE and
disabled with --disable-FEATURE, default is enabled if available:
@@ -1523,6 +1523,7 @@ disabled with --disable-FEATURE, default is enabled if
available:
qom-cast-debug cast debugging support
tools build qemu-io, qemu-nbd and qemu-image tools
vxhs Veritas HyperScale vDisk backend support
+ crypto-afalg Linux AF_ALG crypto backend driver
NOTE: The object files are built at the place where configure is launched
EOF
@@ -4841,7 +4842,7 @@ fi
##########################################
# check for usable AF_ALG environment
-hava_af_alg=no
+hava_afalg=no
cat > $TMPC << EOF
#include <errno.h>
#include <sys/types.h>
@@ -4856,6 +4857,14 @@ EOF
if compile_prog "" "" ; then
have_afalg=yes
fi
+if test "$crypto_afalg" = "yes"
+then
+ if test "$have_afalg" != "yes"
+ then
+ error_exit "AF_ALG requested but could not be detected"
+ fi
+fi
+
#################################################
# Sparc implicitly links with --relax, which is
@@ -5836,9 +5845,7 @@ if test "$debug_stack_usage" = "yes" ; then
fi
if test "$crypto_afalg" = "yes" ; then
- if test "$have_afalg" = "yes" ; then
- echo "CONFIG_AF_ALG=y" >> $config_host_mak
- fi
+ echo "CONFIG_AF_ALG=y" >> $config_host_mak
fi
if test "$open_by_handle_at" = "yes" ; then
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- [Qemu-devel] [PATCH v6 02/18] crypto: cipher: introduce qcrypto_cipher_ctx_new for gcrypt-backend, (continued)
- [Qemu-devel] [PATCH v6 02/18] crypto: cipher: introduce qcrypto_cipher_ctx_new for gcrypt-backend, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 03/18] crypto: cipher: introduce qcrypto_cipher_ctx_new for nettle-backend, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 04/18] crypto: cipher: introduce qcrypto_cipher_ctx_new for builtin-backend, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 05/18] crypto: cipher: add cipher driver framework, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 06/18] crypto: hash: add hash driver framework, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 07/18] crypto: hmac: move crypto/hmac.h into include/crypto/, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 10/18] crypto: hmac: introduce qcrypto_hmac_ctx_new for glib-backend, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 08/18] crypto: hmac: introduce qcrypto_hmac_ctx_new for gcrypt-backend, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 11/18] crypto: hmac: add hmac driver framework, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 12/18] crypto: introduce some common functions for af_alg backend, longpeng . mike, 2017/07/14
- Re: [Qemu-devel] [PATCH v6 12/18] crypto: introduce some common functions for af_alg backend,
Daniel P. Berrange <=
- [Qemu-devel] [PATCH v6 09/18] crypto: hmac: introduce qcrypto_hmac_ctx_new for nettle-backend, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 13/18] crypto: cipher: add afalg-backend cipher support, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 15/18] crypto: hmac: add af_alg-backend hmac support, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 17/18] tests: crypto: add hash speed benchmark support, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 14/18] crypto: hash: add afalg-backend hash support, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 16/18] tests: crypto: add cipher speed benchmark support, longpeng . mike, 2017/07/14
- [Qemu-devel] [PATCH v6 18/18] tests: crypto: add hmac speed benchmark support, longpeng . mike, 2017/07/14
- Re: [Qemu-devel] [PATCH v6 00/18] crypto: add afalg-backend support, Daniel P. Berrange, 2017/07/18