From: Stephan Mueller <smueller@chronox.de>
To: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: crypto: user - crypto_alg_match removal
Date: Mon, 24 Nov 2014 13:29:10 +0100 [thread overview]
Message-ID: <1480327.kK94DiIqOk@tachyon.chronox.de> (raw)
In-Reply-To: <20141124072246.GX6390@secunet.com>
Am Montag, 24. November 2014, 08:22:46 schrieb Steffen Klassert:
Hi Steffen,
> Hi Stephan.
>
> On Sat, Nov 22, 2014 at 11:25:05PM +0100, Stephan Mueller wrote:
> > Hi Steffen, Herbert,
> >
> > may I ask for the reasons why crypto_alg_match exists? Doesn't it
> > implement crypto_alg_lookup -- and that not even complete? Is there a
> > particular reason why this exact flag of crypto_alg_match is really
> > needed in the context of crypto_user?
> >
> > Unless there is such valid reason, may I ask whether we can remove
> > crypto_alg_match and simply use crypto_alg_lookup in all instances where
> > crypto_alg_match is invoked using the following replacement:
> >
> > alg = crypto_alg_lookup(p->cru_name, p->cru_type, p->cru_mask)
> >
> > The only problem with this replacement is that p->cru_driver_name is not
> > considered with that.
>
> With crypto_alg_lookup() we don't know whether the match is based on
> the driver or the algorithm name. That's why we have crypto_alg_match(),
> here we can ask for a driver or an algorithm match. In some situations it
> is important to have an exact match on the crypto driver name. For example
> if a user wants to instantiate or delete a certain inplementation of an
> algorithm. In this case we need to know whether this exact algorithm
> driver is registered in the system.
I understand. But going with the logic of the kernel crypto API, if one needs
an exact match, you pick the driver name. Otherwise the generic name.
crypto_alg_lookup returns the exact algo when you supply a driver name. It
returns the algo with the highest prio when you supply a generic name.
I do not see a difference for the scenarios you describe. What I am worried
about is that the logic of how a name versus a driver name is applied differs
between the kernel crypto API and crypto_user.
>
> > Do you think a double invocation of
> > crypto_alg_lookup should be done or that even the user space interface
> > should be changed such that cru_driver_name is removed from it?
>
> Whatever we do, we can't remove cru_driver_name as this is exported
> to userspace and tools already use it.
That is definitely an issue. But the more I think about it, the more I see
that we do not need to change the interface.
Something like that would work in the kernel:
if (p->cru_driver_name[0])
alg = crypto_alg_lookup(p->cru_driver_name, p->cru_type, p->cru_mask)
else
alg = crypto_alg_lookup(p->cru_name, p->cru_type, p->cru_mask)
--
Ciao
Stephan
next prev parent reply other threads:[~2014-11-24 12:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-22 22:25 crypto: user - crypto_alg_match removal Stephan Mueller
2014-11-24 7:22 ` Steffen Klassert
2014-11-24 12:29 ` Stephan Mueller [this message]
2014-11-25 8:42 ` Steffen Klassert
2014-11-25 9:00 ` Stephan Mueller
2014-11-25 9:06 ` Herbert Xu
2014-11-25 9:24 ` Steffen Klassert
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=1480327.kK94DiIqOk@tachyon.chronox.de \
--to=smueller@chronox.de \
--cc=herbert@gondor.apana.org.au \
--cc=linux-kernel@vger.kernel.org \
--cc=steffen.klassert@secunet.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