[6/6] ima-evm-utils: define a basic hash_info.h file
diff mbox series

Message ID 1594088791-27370-7-git-send-email-zohar@linux.ibm.com
State New
Headers show
Series
  • ima-evm-utils: miscellanous code clean up and bug fixes
Related show

Commit Message

Mimi Zohar July 7, 2020, 2:26 a.m. UTC
Some older system kernel header packages don't necessarily include
hash_info.h.

Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
---
 src/Makefile.am   |  2 +-
 src/hash_info.gen | 43 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 1 deletion(-)

Comments

Bruno Meneguele July 15, 2020, 5:58 p.m. UTC | #1
Hi Mimi,

On Mon, Jul 06, 2020 at 10:26:31PM -0400, Mimi Zohar wrote:
> Some older system kernel header packages don't necessarily include
> hash_info.h.
> 
> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
> ---
>  src/Makefile.am   |  2 +-
>  src/hash_info.gen | 43 +++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 44 insertions(+), 1 deletion(-)
> 
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 36652427a8ec..9bbff5034ef4 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -34,5 +34,5 @@ endif
>  
>  AM_CPPFLAGS = -I$(top_srcdir) -include config.h
>  
> -CLEANFILES = hash_info.h
> +CLEANFILES = hash_info.h tmp_hash_info.h
>  DISTCLEANFILES = @DISTCLEANFILES@
> diff --git a/src/hash_info.gen b/src/hash_info.gen
> index 54532ca5b847..5f7a97fb3117 100755
> --- a/src/hash_info.gen
> +++ b/src/hash_info.gen
> @@ -18,11 +18,54 @@ KERNEL_HEADERS=$1
>  HASH_INFO_H=uapi/linux/hash_info.h
>  HASH_INFO=$KERNEL_HEADERS/include/$HASH_INFO_H
>  
> +TMPHASHINFO="./tmp_hash_info.h"
> +gen_hashinfo() {
> +cat << __EOF__ >$TMPHASHINFO
> +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
> +/*
> + * Hash Info: Hash algorithms information
> + *
> + * Copyright (c) 2013 Dmitry Kasatkin <d.kasatkin@samsung.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the Free
> + * Software Foundation; either version 2 of the License, or (at your option)
> + * any later version.
> + *
> + */
> +
> +enum hash_algo {
> +	HASH_ALGO_MD4,
> +	HASH_ALGO_MD5,
> +	HASH_ALGO_SHA1,
> +	HASH_ALGO_RIPE_MD_160,
> +	HASH_ALGO_SHA256,
> +	HASH_ALGO_SHA384,
> +	HASH_ALGO_SHA512,
> +	HASH_ALGO_SHA224,
> +	HASH_ALGO_RIPE_MD_128,
> +	HASH_ALGO_RIPE_MD_256,
> +	HASH_ALGO_RIPE_MD_320,
> +	HASH_ALGO_WP_256,
> +	HASH_ALGO_WP_384,
> +	HASH_ALGO_WP_512,
> +	HASH_ALGO_TGR_128,
> +	HASH_ALGO_TGR_160,
> +	HASH_ALGO_TGR_192,
> +	HASH_ALGO_SM3_256,
> +	HASH_ALGO__LAST
> +};
> +__EOF__

Just a minor point on HASH_ALGO_SM3_256:

The old kernels that didn't export hash_info.h uapi didn't support
HASH_ALGO_SM3_256 as well. Wouldn't it be better to also not include it
in the tmp_hash_info considering it'll be used only by those running
older kernels without SM3 support?

Keeping it won't cause any issues though. So I'm fine with it either
way.
Mimi Zohar July 15, 2020, 7:28 p.m. UTC | #2
On Wed, 2020-07-15 at 14:58 -0300, Bruno Meneguele wrote:
> Hi Mimi,
> 
> On Mon, Jul 06, 2020 at 10:26:31PM -0400, Mimi Zohar wrote:
> > Some older system kernel header packages don't necessarily include
> > hash_info.h.
> > 
> > Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
> > ---
> >  src/Makefile.am   |  2 +-
> >  src/hash_info.gen | 43 +++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 44 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/Makefile.am b/src/Makefile.am
> > index 36652427a8ec..9bbff5034ef4 100644
> > --- a/src/Makefile.am
> > +++ b/src/Makefile.am
> > @@ -34,5 +34,5 @@ endif
> >  
> >  AM_CPPFLAGS = -I$(top_srcdir) -include config.h
> >  
> > -CLEANFILES = hash_info.h
> > +CLEANFILES = hash_info.h tmp_hash_info.h
> >  DISTCLEANFILES = @DISTCLEANFILES@
> > diff --git a/src/hash_info.gen b/src/hash_info.gen
> > index 54532ca5b847..5f7a97fb3117 100755
> > --- a/src/hash_info.gen
> > +++ b/src/hash_info.gen
> > @@ -18,11 +18,54 @@ KERNEL_HEADERS=$1
> >  HASH_INFO_H=uapi/linux/hash_info.h
> >  HASH_INFO=$KERNEL_HEADERS/include/$HASH_INFO_H
> >  
> > +TMPHASHINFO="./tmp_hash_info.h"
> > +gen_hashinfo() {
> > +cat << __EOF__ >$TMPHASHINFO
> > +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
> > +/*
> > + * Hash Info: Hash algorithms information
> > + *
> > + * Copyright (c) 2013 Dmitry Kasatkin <d.kasatkin@samsung.com>
> > + *
> > + * This program is free software; you can redistribute it and/or modify it
> > + * under the terms of the GNU General Public License as published by the Free
> > + * Software Foundation; either version 2 of the License, or (at your option)
> > + * any later version.
> > + *
> > + */
> > +
> > +enum hash_algo {
> > +	HASH_ALGO_MD4,
> > +	HASH_ALGO_MD5,
> > +	HASH_ALGO_SHA1,
> > +	HASH_ALGO_RIPE_MD_160,
> > +	HASH_ALGO_SHA256,
> > +	HASH_ALGO_SHA384,
> > +	HASH_ALGO_SHA512,
> > +	HASH_ALGO_SHA224,
> > +	HASH_ALGO_RIPE_MD_128,
> > +	HASH_ALGO_RIPE_MD_256,
> > +	HASH_ALGO_RIPE_MD_320,
> > +	HASH_ALGO_WP_256,
> > +	HASH_ALGO_WP_384,
> > +	HASH_ALGO_WP_512,
> > +	HASH_ALGO_TGR_128,
> > +	HASH_ALGO_TGR_160,
> > +	HASH_ALGO_TGR_192,
> > +	HASH_ALGO_SM3_256,
> > +	HASH_ALGO__LAST
> > +};
> > +__EOF__
> 
> Just a minor point on HASH_ALGO_SM3_256:
> 
> The old kernels that didn't export hash_info.h uapi didn't support
> HASH_ALGO_SM3_256 as well. Wouldn't it be better to also not include it
> in the tmp_hash_info considering it'll be used only by those running
> older kernels without SM3 support?
> 
> Keeping it won't cause any issues though. So I'm fine with it either
> way.

I was debating which version to use, but couldn't decide.

For distros that probably is true, but I'm not sure about embedded.
 Commit ceecb28d3b52 ("ima-evm-utils: add SM3 to pkey_hash_algo
algorithm list") updated pkey_hash_algo[].

As it doesn't hurt, let's just keep it.

Mimi
Bruno Meneguele July 15, 2020, 8:18 p.m. UTC | #3
On Wed, Jul 15, 2020 at 03:28:58PM -0400, Mimi Zohar wrote:
> On Wed, 2020-07-15 at 14:58 -0300, Bruno Meneguele wrote:
> > Hi Mimi,
> > 
> > On Mon, Jul 06, 2020 at 10:26:31PM -0400, Mimi Zohar wrote:
> > > Some older system kernel header packages don't necessarily include
> > > hash_info.h.
> > > 
> > > Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
> > > ---
> > >  src/Makefile.am   |  2 +-
> > >  src/hash_info.gen | 43 +++++++++++++++++++++++++++++++++++++++++++
> > >  2 files changed, 44 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/src/Makefile.am b/src/Makefile.am
> > > index 36652427a8ec..9bbff5034ef4 100644
> > > --- a/src/Makefile.am
> > > +++ b/src/Makefile.am
> > > @@ -34,5 +34,5 @@ endif
> > >  
> > >  AM_CPPFLAGS = -I$(top_srcdir) -include config.h
> > >  
> > > -CLEANFILES = hash_info.h
> > > +CLEANFILES = hash_info.h tmp_hash_info.h
> > >  DISTCLEANFILES = @DISTCLEANFILES@
> > > diff --git a/src/hash_info.gen b/src/hash_info.gen
> > > index 54532ca5b847..5f7a97fb3117 100755
> > > --- a/src/hash_info.gen
> > > +++ b/src/hash_info.gen
> > > @@ -18,11 +18,54 @@ KERNEL_HEADERS=$1
> > >  HASH_INFO_H=uapi/linux/hash_info.h
> > >  HASH_INFO=$KERNEL_HEADERS/include/$HASH_INFO_H
> > >  
> > > +TMPHASHINFO="./tmp_hash_info.h"
> > > +gen_hashinfo() {
> > > +cat << __EOF__ >$TMPHASHINFO
> > > +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
> > > +/*
> > > + * Hash Info: Hash algorithms information
> > > + *
> > > + * Copyright (c) 2013 Dmitry Kasatkin <d.kasatkin@samsung.com>
> > > + *
> > > + * This program is free software; you can redistribute it and/or modify it
> > > + * under the terms of the GNU General Public License as published by the Free
> > > + * Software Foundation; either version 2 of the License, or (at your option)
> > > + * any later version.
> > > + *
> > > + */
> > > +
> > > +enum hash_algo {
> > > +	HASH_ALGO_MD4,
> > > +	HASH_ALGO_MD5,
> > > +	HASH_ALGO_SHA1,
> > > +	HASH_ALGO_RIPE_MD_160,
> > > +	HASH_ALGO_SHA256,
> > > +	HASH_ALGO_SHA384,
> > > +	HASH_ALGO_SHA512,
> > > +	HASH_ALGO_SHA224,
> > > +	HASH_ALGO_RIPE_MD_128,
> > > +	HASH_ALGO_RIPE_MD_256,
> > > +	HASH_ALGO_RIPE_MD_320,
> > > +	HASH_ALGO_WP_256,
> > > +	HASH_ALGO_WP_384,
> > > +	HASH_ALGO_WP_512,
> > > +	HASH_ALGO_TGR_128,
> > > +	HASH_ALGO_TGR_160,
> > > +	HASH_ALGO_TGR_192,
> > > +	HASH_ALGO_SM3_256,
> > > +	HASH_ALGO__LAST
> > > +};
> > > +__EOF__
> > 
> > Just a minor point on HASH_ALGO_SM3_256:
> > 
> > The old kernels that didn't export hash_info.h uapi didn't support
> > HASH_ALGO_SM3_256 as well. Wouldn't it be better to also not include it
> > in the tmp_hash_info considering it'll be used only by those running
> > older kernels without SM3 support?
> > 
> > Keeping it won't cause any issues though. So I'm fine with it either
> > way.
> 
> I was debating which version to use, but couldn't decide.
> 
> For distros that probably is true, but I'm not sure about embedded.
>  Commit ceecb28d3b52 ("ima-evm-utils: add SM3 to pkey_hash_algo
> algorithm list") updated pkey_hash_algo[].
> 
> As it doesn't hurt, let's just keep it.
> 

That's fine with me.

Thanks.

Patch
diff mbox series

diff --git a/src/Makefile.am b/src/Makefile.am
index 36652427a8ec..9bbff5034ef4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -34,5 +34,5 @@  endif
 
 AM_CPPFLAGS = -I$(top_srcdir) -include config.h
 
-CLEANFILES = hash_info.h
+CLEANFILES = hash_info.h tmp_hash_info.h
 DISTCLEANFILES = @DISTCLEANFILES@
diff --git a/src/hash_info.gen b/src/hash_info.gen
index 54532ca5b847..5f7a97fb3117 100755
--- a/src/hash_info.gen
+++ b/src/hash_info.gen
@@ -18,11 +18,54 @@  KERNEL_HEADERS=$1
 HASH_INFO_H=uapi/linux/hash_info.h
 HASH_INFO=$KERNEL_HEADERS/include/$HASH_INFO_H
 
+TMPHASHINFO="./tmp_hash_info.h"
+gen_hashinfo() {
+cat << __EOF__ >$TMPHASHINFO
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/*
+ * Hash Info: Hash algorithms information
+ *
+ * Copyright (c) 2013 Dmitry Kasatkin <d.kasatkin@samsung.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+
+enum hash_algo {
+	HASH_ALGO_MD4,
+	HASH_ALGO_MD5,
+	HASH_ALGO_SHA1,
+	HASH_ALGO_RIPE_MD_160,
+	HASH_ALGO_SHA256,
+	HASH_ALGO_SHA384,
+	HASH_ALGO_SHA512,
+	HASH_ALGO_SHA224,
+	HASH_ALGO_RIPE_MD_128,
+	HASH_ALGO_RIPE_MD_256,
+	HASH_ALGO_RIPE_MD_320,
+	HASH_ALGO_WP_256,
+	HASH_ALGO_WP_384,
+	HASH_ALGO_WP_512,
+	HASH_ALGO_TGR_128,
+	HASH_ALGO_TGR_160,
+	HASH_ALGO_TGR_192,
+	HASH_ALGO_SM3_256,
+	HASH_ALGO__LAST
+};
+__EOF__
+}
+
 # Allow to specify kernel-headers past include/
 if [ ! -e $HASH_INFO ]; then
   HASH_INFO2=$KERNEL_HEADERS/$HASH_INFO_H
   if [ -e $HASH_INFO2 ]; then
     HASH_INFO=$HASH_INFO2
+  else
+    gen_hashinfo
+    HASH_INFO="$TMPHASHINFO"
   fi
 fi