All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vitaly Chikunov <vt@altlinux.org>
To: Mimi Zohar <zohar@linux.ibm.com>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>,
	Dmitry Kasatkin <dmitry.kasatkin@gmail.com>,
	linux-integrity@vger.kernel.org
Subject: Re: [PATCH 2/2] ima-evm-utils: try to load digest by its alias
Date: Thu, 4 Apr 2019 00:37:40 +0300	[thread overview]
Message-ID: <20190403213739.afjtakg5nujke477@altlinux.org> (raw)
In-Reply-To: <1554325820.3839.27.camel@linux.ibm.com>

On Wed, Apr 03, 2019 at 05:10:20PM -0400, Mimi Zohar wrote:
> On Thu, 2019-04-04 at 00:04 +0300, Vitaly Chikunov wrote:
> > Mimi,
> > 
> > On Wed, Apr 03, 2019 at 04:41:04PM -0400, Mimi Zohar wrote:
> > > On Sat, 2019-03-23 at 04:41 +0300, Vitaly Chikunov wrote:
> > > > Primary names of the algorithms are different for OpenSSL and Kernel.
> > > > Allow to use both of them.
> > > 
> > > Can we add a line here explaining the two names?  Perhaps something
> > > like, "GOST R 34.11-2012 is the Russian national standard based on the
> > > Streebog set of hash functions." 
> > 
> > Ok. But, "GOST R 34.11-2012" is not mentioned, and there is other
> > standards with Streebog, such as RFC 6986, ISO/IEC 10118-3:2018, GOST
> > 34.11-2018.
> > 
> > Point of this patch is that Kernel calls this hash function by it's
> > proper name "StreebogX", but older version of OpenSSL reference it by
> > acronym "md_gost12_X". (While newer should support Streebog name too.)
> > And we try to be user friendly and allow to use both names.
> 
> If "Streebog" will be supported by OpenSSL, then why make md_gost12_x
> the primary name, and the kernel name the alias?  Shouldn't it be the
> reverse (eg. "pkey_hash_algo_alias")?

Because ima-evm-utils is using OpenSSL and not Kernel's Crypto API,
OpenSSL names are "primary" for ima-evm-utils. It's happened that most
names are the same for both APIs.

"md_gost12_X" is supported for years by more versions of OpenSSL. While
"StreebogX" name is just committed a few months ago to gost-engine. Thus,

  1) "md_gost12_x" name could be used on conservative distros. Users
   will not need to wait [possible] a few years when new name reach
   their distro.

  2) PKEY_HASH_STREEBOG_X is resolved to "md_gost12_X" names (to the
  names that are present in OpenSSL with much more probability).

`pkey_hash_algo_kern` only contains names that are different between
the Kernel and OpenSSL.

I used "primary" for the both arrays so that no names are offended by
being not-primary.

> > > > Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
> > > 
> > > Reviewed-by:  Mimi Zohar <zohar@linux.ibm.com>
> > > 
> > > > ---
> > > >  src/libimaevm.c | 12 ++++++++++++
> > > >  1 file changed, 12 insertions(+)
> > > > 
> > > > diff --git a/src/libimaevm.c b/src/libimaevm.c
> > > > index bc7be1e..6783110 100644
> > > > --- a/src/libimaevm.c
> > > > +++ b/src/libimaevm.c
> > > > @@ -61,6 +61,7 @@
> > > >  #include "imaevm.h"
> > > >  #include "hash_info.h"
> > > > 
> > > > +/* Names that are primary for OpenSSL. */
> > > >  const char *const pkey_hash_algo[PKEY_HASH__LAST] = {
> > > >  	[PKEY_HASH_MD4]		= "md4",
> > > >  	[PKEY_HASH_MD5]		= "md5",
> > > > @@ -70,6 +71,12 @@ const char *const pkey_hash_algo[PKEY_HASH__LAST] = {
> > > >  	[PKEY_HASH_SHA384]	= "sha384",
> > > >  	[PKEY_HASH_SHA512]	= "sha512",
> > > >  	[PKEY_HASH_SHA224]	= "sha224",
> > > > +	[PKEY_HASH_STREEBOG_256] = "md_gost12_256",
> > > > +	[PKEY_HASH_STREEBOG_512] = "md_gost12_512",
> > > > +};
> > > > +
> > > > +/* Names that are primary for the kernel. */
> > > > +const char *const pkey_hash_algo_kern[PKEY_HASH__LAST] = {
> > > >  	[PKEY_HASH_STREEBOG_256] = "streebog256",
> > > >  	[PKEY_HASH_STREEBOG_512] = "streebog512",
> > > >  };
> > > > @@ -551,6 +558,11 @@ int get_hash_algo(const char *algo)
> > > >  		    !strcmp(algo, pkey_hash_algo[i]))
> > > >  			return i;
> > > > 
> > > > +	for (i = 0; i < PKEY_HASH__LAST; i++)
> > > > +		if (pkey_hash_algo_kern[i] &&
> > > > +		    !strcmp(algo, pkey_hash_algo_kern[i]))
> > > > +			return i;
> > > > +
> > > >  	/* iterate over algorithms provided by kernel-headers */
> > > >  	for (i = 0; i < HASH_ALGO__LAST; i++)
> > > >  		if (hash_algo_name[i] &&
> > 

  reply	other threads:[~2019-04-03 21:37 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-23  1:41 [PATCH 0/2] ima-evm-utils: rebase of digest algo resolving Vitaly Chikunov
2019-03-23  1:41 ` [PATCH 1/2] ima-evm-utils: Extract digest algorithms from hash_info.h Vitaly Chikunov
2019-03-23  1:41 ` [PATCH 2/2] ima-evm-utils: try to load digest by its alias Vitaly Chikunov
2019-04-03 20:41   ` Mimi Zohar
2019-04-03 21:04     ` Vitaly Chikunov
2019-04-03 21:10       ` Mimi Zohar
2019-04-03 21:37         ` Vitaly Chikunov [this message]
2019-04-03 21:40           ` Mimi Zohar
2019-04-03 21:57             ` Vitaly Chikunov
2019-04-03 21:59               ` Mimi Zohar

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=20190403213739.afjtakg5nujke477@altlinux.org \
    --to=vt@altlinux.org \
    --cc=dmitry.kasatkin@gmail.com \
    --cc=linux-integrity@vger.kernel.org \
    --cc=zohar@linux.ibm.com \
    --cc=zohar@linux.vnet.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.