Re: [PATCH nft 1/4] src: make hash seed attribute optional

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Oct 22, 2016 at 11:34:15PM +0200, Laura Garcia Liebana wrote:
> The hash expression requires a seed attribute to call the jhash
> operation, eg.
> 
>  # nft add rule x y meta mark set jhash ip saddr . ip daddr mod 2 \
> 	seed 0xdeadbeef
> 
> With this patch the seed attribute is optional and it's generated by a
> random function from userspace, eg.
> 
>  # nft add rule x y meta mark set jhash ip saddr . ip daddr mod 2
> 
> To generate a secure random number it has been included the libbsd
> library dependency by default, that implements the arc4random()
> function generator. But it's possible to get rid of this dependency
> applying the option --without-arc4random during the configure of the
> package.
> 
> Suggested-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
> Signed-off-by: Laura Garcia Liebana <nevola@xxxxxxxxx>
> ---
>  configure.ac       | 14 +++++++++++++-
>  include/hash.h     | 10 ++++++++++
>  src/parser_bison.y |  5 +++++
>  tests/py/ip/hash.t |  2 ++
>  4 files changed, 30 insertions(+), 1 deletion(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 7e0b75c..8c93981 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -108,6 +108,17 @@ AC_DEFINE([HAVE_LIBXTABLES], [1], [0])
>  AC_SUBST(with_libxtables)
>  AM_CONDITIONAL([BUILD_XTABLES], [test "x$with_libxtables" == xyes])
>  
> +AC_ARG_WITH([arc4random], [AS_HELP_STRING([--without-arc4random],
> +            [disable arc4random (libbsd dev support)])],
> +            [], [with_arc4random=yes])
> +AS_IF([test "x$with_arc4random" != xno], [
> +AC_CHECK_LIB([bsd], [arc4random], ,
> +	     AC_MSG_ERROR([No suitable version of libbsd dev found]))
> +AC_DEFINE([HAVE_LIBBSD], [1], [])
> +])
> +AC_SUBST(with_arc4random)
> +AM_CONDITIONAL([BUILD_ARC4RANDOM], [test "x$with_arc4random" != xno])

We have getrandom() already around for a while:

https://lwn.net/Articles/605828/

Main problem is that your libc version may not yet support this. But
in case HAVE_GETRANDOM is not set, otherwise fallback on the poorman
version by now.

>  # Checks for header files.
>  AC_HEADER_STDC
>  AC_HEADER_ASSERT
> @@ -158,4 +169,5 @@ nft configuration:
>    enable debugging:		${with_debug}
>    use mini-gmp:			${with_mini_gmp}
>    enable pdf documentation:	${enable_pdf_doc}
> -  libxtables support:		${with_libxtables}"
> +  libxtables support:		${with_libxtables}
> +  arc4random support:		${with_arc4random}"

It would be good to indicate here what random approach we follow, just
for the record.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux