This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via 6add70a4ff916acb331b961bc230cf946fbe835a (commit) from ee6fdca6b647d1c92ba6d07400c7d1e23c9e0ce3 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 6add70a4ff916acb331b961bc230cf946fbe835a Author: Matias Elo matias.elo@nokia.com Date: Thu Jul 12 11:35:07 2018 +0300
linux-gen: ipsec: fall back to lower odp_random_kind_t if necessary
Create IV with lower random kind if ODP_RANDOM_CRYPTO is not supported. This enables passing validation tests using odp_random_null.
Signed-off-by: Matias Elo matias.elo@nokia.com Reviewed-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/include/odp_global_data.h b/platform/linux-generic/include/odp_global_data.h index 009862a8..1ddc49ea 100644 --- a/platform/linux-generic/include/odp_global_data.h +++ b/platform/linux-generic/include/odp_global_data.h @@ -13,6 +13,7 @@ extern "C" {
#include <odp/api/init.h> #include <odp/api/cpumask.h> +#include <odp/api/random.h> #include <sys/types.h> #include <pthread.h> #include <stdint.h> @@ -58,6 +59,7 @@ struct odp_global_data_s { int inotify_watch_fd; pthread_t inotify_thread; int inotify_pcapng_is_running; + odp_random_kind_t ipsec_rand_kind; };
extern struct odp_global_data_s odp_global_data; diff --git a/platform/linux-generic/odp_ipsec.c b/platform/linux-generic/odp_ipsec.c index 71258fe9..5b739cc1 100644 --- a/platform/linux-generic/odp_ipsec.c +++ b/platform/linux-generic/odp_ipsec.c @@ -13,6 +13,7 @@ #include <odp/api/byteorder.h> #include <odp/api/plat/byteorder_inlines.h>
+#include <odp_global_data.h> #include <odp_init_internal.h> #include <odp_debug_internal.h> #include <odp_packet_internal.h> @@ -1003,7 +1004,7 @@ static int ipsec_out_iv(ipsec_state_t *state, uint32_t len;
len = odp_random_data(state->iv, ipsec_sa->esp_iv_len, - ODP_RANDOM_CRYPTO); + odp_global_data.ipsec_rand_kind);
if (len != ipsec_sa->esp_iv_len) return -1; @@ -1892,6 +1893,10 @@ int _odp_ipsec_init_global(void)
memset(&default_out_opt, 0, sizeof(default_out_opt));
+ odp_global_data.ipsec_rand_kind = ODP_RANDOM_CRYPTO; + if (odp_global_data.ipsec_rand_kind > odp_random_max_kind()) + odp_global_data.ipsec_rand_kind = odp_random_max_kind(); + return 0; }
-----------------------------------------------------------------------
Summary of changes: platform/linux-generic/include/odp_global_data.h | 2 ++ platform/linux-generic/odp_ipsec.c | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-)
hooks/post-receive