qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: "Longpeng(Mike)" <longpeng2@huawei.com>
Cc: xuquan8@huawei.com, arei.gonglei@huawei.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH for-2.10 13/19] crypto: introduce some common functions for af_alg backend
Date: Mon, 10 Apr 2017 11:15:52 +0100	[thread overview]
Message-ID: <20170410101552.GH3655@redhat.com> (raw)
In-Reply-To: <1491814847-63240-1-git-send-email-longpeng2@huawei.com>

On Mon, Apr 10, 2017 at 05:00:47PM +0800, Longpeng(Mike) wrote:
> This patch introduces some common functions for af_alg backend,
> they would be used in af_alg-backend cipher/hash/hmac latter.
> 
> Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
> ---
>  crypto/Makefile.objs        |  1 +
>  crypto/afalg-comm.c         | 71 +++++++++++++++++++++++++++++++++++++++++++++
>  include/crypto/afalg-comm.h | 61 ++++++++++++++++++++++++++++++++++++++
>  3 files changed, 133 insertions(+)
>  create mode 100644 crypto/afalg-comm.c
>  create mode 100644 include/crypto/afalg-comm.h
> 
> diff --git a/crypto/Makefile.objs b/crypto/Makefile.objs
> index 1f749f2..6f244a3 100644
> --- a/crypto/Makefile.objs
> +++ b/crypto/Makefile.objs
> @@ -10,6 +10,7 @@ crypto-obj-$(if $(CONFIG_NETTLE),n,$(if $(CONFIG_GCRYPT_HMAC),n,y)) += hmac-glib
>  crypto-obj-y += aes.o
>  crypto-obj-y += desrfb.o
>  crypto-obj-y += cipher.o
> +crypto-obj-$(CONFIG_AF_ALG) += afalg-comm.o
>  crypto-obj-y += tlscreds.o
>  crypto-obj-y += tlscredsanon.o
>  crypto-obj-y += tlscredsx509.o
> diff --git a/crypto/afalg-comm.c b/crypto/afalg-comm.c
> new file mode 100644
> index 0000000..27bc88c
> --- /dev/null
> +++ b/crypto/afalg-comm.c

Just calls this  crypto/afalg.c


> +void afalg_comm_format_type(AfalgSocketAddress *afalg,
> +                            const char *type)
> +{
> +    afalg->type = (char *)g_new0(int8_t, SALG_TYPE_LEN_MAX);
> +    pstrcpy(afalg->type, SALG_TYPE_LEN_MAX, type);
> +}

Needs an 'Error **errp' for reporting if 'type' is too long


> diff --git a/include/crypto/afalg-comm.h b/include/crypto/afalg-comm.h
> new file mode 100644
> index 0000000..b6b9464
> --- /dev/null
> +++ b/include/crypto/afalg-comm.h
> @@ -0,0 +1,61 @@
> +/*
> + * QEMU Crypto af_alg support
> + *
> + * Copyright (c) 2017 HUAWEI TECHNOLOGIES CO., LTD.
> + *
> + * Authors:
> + *    Longpeng(Mike) <longpeng2@huawei.com>
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or
> + * (at your option) any later version.  See the COPYING file in the
> + * top-level directory.
> + */
> +#ifndef QCRYPTO_AFALG_H
> +#define QCRYPTO_AFALG_H
> +
> +#include "qapi-types.h"
> +
> +#ifndef SOL_ALG
> +#define SOL_ALG 279
> +#endif

This can be in the .c file as I don't se it used elsewhere.

> +
> +typedef struct QCryptoAfalg QCryptoAfalg;
> +struct QCryptoAfalg {

Name it 'QCryptoAFAlg'  since the letters 'af' are an abbreviation.

> +    int tfmfd;
> +    int opfd;
> +    struct msghdr *msg;
> +    struct cmsghdr *cmsg;
> +};
> +
> +
> +/**
> + * afalg_comm_format_type:
> + * @afalg: the AfalgSocketAddress object
> + * @type: the type of crypto alg.
> + *
> + * Set the type field of the @afalg according to @type.
> + */
> +void afalg_comm_format_type(AfalgSocketAddress *afalg,
> +                            const char *type);
> +
> +/**
> + * afalg_comm_alloc:
> + * @saddr: the SocketAddress object
> + *
> + * Allocate a QCryptoAfalg object and bind itself to
> + * a AF_ALG socket.
> + *
> + * Returns:
> + *  a new QCryptoAfalg object, or NULL in error.
> + */
> +QCryptoAfalg *afalg_comm_alloc(SocketAddress *saddr);
> +
> +/**
> + * afalg_comm_free:
> + * @afalg: the QCryptoAfalg object
> + *
> + * Free the @afalg.
> + */
> +void afalg_comm_free(QCryptoAfalg *afalg);
> +
> +#endif

This is all for internal use by the crypto/ code, so should be in a header
crypto/afalgpriv.h

> -- 
> 1.8.3.1
> 
> 

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|

      reply	other threads:[~2017-04-10 10:16 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-10  9:00 [Qemu-devel] [PATCH for-2.10 13/19] crypto: introduce some common functions for af_alg backend Longpeng(Mike)
2017-04-10 10:15 ` Daniel P. Berrange [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170410101552.GH3655@redhat.com \
    --to=berrange@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=longpeng2@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=xuquan8@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).