Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1750463ybl; Thu, 9 Jan 2020 00:41:48 -0800 (PST) X-Google-Smtp-Source: APXvYqw310wZdwev7kfLhgEo4vBfhUgiyxHMG2jFovW95NgFuGtZfGplkUMLxgTBH3kXNPsUeQwB X-Received: by 2002:a9d:6301:: with SMTP id q1mr7300009otk.70.1578559308197; Thu, 09 Jan 2020 00:41:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578559308; cv=none; d=google.com; s=arc-20160816; b=NQO0+yXNH7oL/DLiD4Z8f9HuRjMAzZSYJiMCE7AMUY5PPCDQUmkEQ2VbY/tZHkBpoE 4wcP79+JT/xC0yosgjsCUCPLXeYaLo+ejiws7zYRy+FpXqklYWs/a4nMlMLS2ED1lsOZ GOoJX/e7VlfId02Gh7M93Y+UMnzYwD5X663DBSdr15p+EJ8Ju4WsDP0Q/DmulUsS+6rl c/Sb8188+s6jAVxdyRxW76n8PWNo9aPHxJvilNB5l1hDhxhVoegkNBBtYEft9HfGWbgi dZS7hjtbfC4nmDD0icenqzbieTded4ckOrRHTutntKl1hmuTuG9FTZwuTBwXwPxZZl1J uBpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ft6+RGXwGoNfQPVxUIyS6aMtaPfNIigO2DmrtfxTDMo=; b=OwA/R129hmp2EnThaHVLyUKDaKnvnjILOrJEzKi1DBlhOF4B7MW9aLmkQuJqYDIJHe Kqffh263BPMXw7RRcm1Sbn7BxJVDIDTrfBxSBEX3GrMqHYAil4nTLJgLr6c1J1Sxwb/W P3DQHiD88QU3SxNj1C04QX4r22nmBX4BZSpqb44V43qXRxwKWRBcDphS7ewMdOFChkrQ kRQV8wFi4oTBqDNuvKv8qmU1JawFMKKin4NevlajBC1RYhjXx59YrAHtoNW4e8L6I+CM sqIBKtYWj9n830VnjRnDsAzpDtUClfqAmstO6O3lMSwU/xpCSxUH68APUlK8GV64wLpj 2uFA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@chronox.de header.s=strato-dkim-0002 header.b=FJ+1i9nh; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l18si3615266oth.236.2020.01.09.00.41.36; Thu, 09 Jan 2020 00:41:48 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@chronox.de header.s=strato-dkim-0002 header.b=FJ+1i9nh; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728571AbgAIIlH (ORCPT + 99 others); Thu, 9 Jan 2020 03:41:07 -0500 Received: from mo4-p03-ob.smtp.rzone.de ([81.169.146.172]:20517 "EHLO mo4-p03-ob.smtp.rzone.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728750AbgAIIlH (ORCPT ); Thu, 9 Jan 2020 03:41:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1578559265; s=strato-dkim-0002; d=chronox.de; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: X-RZG-CLASS-ID:X-RZG-AUTH:From:Subject:Sender; bh=ft6+RGXwGoNfQPVxUIyS6aMtaPfNIigO2DmrtfxTDMo=; b=FJ+1i9nhpyv5FHa5RSOz9PVJODp672kqqZrgIHjAg0ulhJnOUUb9hWdSXQPVbI4ttH pXv1B3lkXTFy4y3J+eTUOnSXDORgJtEmuJKW47fcGEo37GGxDRGiKZ7wehXATcY7S9C6 qNECVDxhpvaesTEK5ds3aseXhLu/RJuscMwB377VzR+DXnvLcU/iVhd1itw1RouwiVA7 FKJFdfQJcIRSfUzxsFnSx0RRMe33j4Y64HSq8ReW/zCr2uzTMik+f/Et4ytRMdDJYS8p 2CC2fLC1sU/6u2Racy3nDxcr4zAgyxoLGB0U950lVhwNWhqzskpoVqsQ5Th8yge4XziX adKQ== X-RZG-AUTH: ":P2ERcEykfu11Y98lp/T7+hdri+uKZK8TKWEqNyiHySGSa9k9xmwdNnzGHXPZJPScHivh" X-RZG-CLASS-ID: mo00 Received: from positron.chronox.de by smtp.strato.de (RZmta 46.1.4 DYNA|AUTH) with ESMTPSA id u04585w098c52Zi (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Thu, 9 Jan 2020 09:38:05 +0100 (CET) From: Stephan =?ISO-8859-1?Q?M=FCller?= To: Arnd Bergmann Cc: Greg Kroah-Hartman , linux-crypto@vger.kernel.org, LKML , linux-api@vger.kernel.org, "Eric W. Biederman" , "Alexander E. Patrakov" , "Ahmed S. Darwish" , "Theodore Y. Ts'o" , Willy Tarreau , Matthew Garrett , Vito Caputo , Andreas Dilger , Jan Kara , Ray Strode , William Jon McCann , zhangjs , Andy Lutomirski , Florian Weimer , Lennart Poettering , Nicolai Stange , "Peter, Matthias" , Marcelo Henrique Cerri , Roman Drahtmueller , Neil Horman , Randy Dunlap , Julia Lawall Subject: [PATCH v27 08/12] crypto: provide access to a static Jitter RNG state Date: Thu, 09 Jan 2020 09:33:51 +0100 Message-ID: <2273108.CdO7cPedqr@positron.chronox.de> In-Reply-To: <2641155.iNH938UiKq@positron.chronox.de> References: <6157374.ptSnyUpaCn@positron.chronox.de> <2722222.P16TYeLAVu@positron.chronox.de> <2641155.iNH938UiKq@positron.chronox.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org To support the LRNG operation which uses the Jitter RNG separately from the kernel crypto API, at a time where potentially the regular memory management is not yet initialized, the Jitter RNG needs to provide a state whose memory is defined at compile time. As only once instance will ever be needed by the LRNG, define once static memory block which is solely to be used by the LRNG. CC: "Eric W. Biederman" CC: "Alexander E. Patrakov" CC: "Ahmed S. Darwish" CC: "Theodore Y. Ts'o" CC: Willy Tarreau CC: Matthew Garrett CC: Vito Caputo CC: Andreas Dilger CC: Jan Kara CC: Ray Strode CC: William Jon McCann CC: zhangjs CC: Andy Lutomirski CC: Florian Weimer CC: Lennart Poettering CC: Nicolai Stange Reviewed-by: Roman Drahtmueller Tested-by: Roman Drahtm=FCller Tested-by: Marcelo Henrique Cerri Tested-by: Neil Horman Signed-off-by: Stephan Mueller =2D-- crypto/jitterentropy-kcapi.c | 3 +-- crypto/jitterentropy.c | 25 ++++++++++++++++++- .../crypto/internal}/jitterentropy.h | 3 +++ 3 files changed, 28 insertions(+), 3 deletions(-) rename {crypto =3D> include/crypto/internal}/jitterentropy.h (84%) diff --git a/crypto/jitterentropy-kcapi.c b/crypto/jitterentropy-kcapi.c index a5ce8f96790f..11b00e9f37f3 100644 =2D-- a/crypto/jitterentropy-kcapi.c +++ b/crypto/jitterentropy-kcapi.c @@ -43,8 +43,7 @@ #include #include #include =2D =2D#include "jitterentropy.h" +#include =20 /*************************************************************************= ** * Helper function diff --git a/crypto/jitterentropy.c b/crypto/jitterentropy.c index 042157f0d28b..529c9db13e64 100644 =2D-- a/crypto/jitterentropy.c +++ b/crypto/jitterentropy.c @@ -103,7 +103,7 @@ struct rand_data { * Helper functions *************************************************************************= **/ =20 =2D#include "jitterentropy.h" +#include =20 /** * Update of the loop count used for the next round of @@ -639,3 +639,26 @@ int jent_entropy_init(void) =20 return 0; } + +struct rand_data *jent_lrng_entropy_collector(void) +{ + static unsigned char lrng_jent_mem[JENT_MEMORY_SIZE]; + static struct rand_data lrng_jent_state =3D { + .data =3D 0, + .old_data =3D 0, + .prev_time =3D 0, + .last_delta =3D 0, + .last_delta2 =3D 0, + .osr =3D 1, + .mem =3D lrng_jent_mem, + .memlocation =3D 0, + .memblocks =3D JENT_MEMORY_BLOCKSIZE, + .memblocksize =3D JENT_MEMORY_BLOCKS, + .memaccessloops =3D JENT_MEMORY_ACCESSLOOPS, + }; + + if (jent_entropy_init()) + return NULL; + + return &lrng_jent_state; +} diff --git a/crypto/jitterentropy.h b/include/crypto/internal/jitterentropy= =2Eh similarity index 84% rename from crypto/jitterentropy.h rename to include/crypto/internal/jitterentropy.h index c83fff32d130..6e07d86eac82 100644 =2D-- a/crypto/jitterentropy.h +++ b/include/crypto/internal/jitterentropy.h @@ -15,3 +15,6 @@ extern int jent_read_entropy(struct rand_data *ec, unsign= ed char *data, extern struct rand_data *jent_entropy_collector_alloc(unsigned int osr, unsigned int flags); extern void jent_entropy_collector_free(struct rand_data *entropy_collecto= r); + +/* Access to statically allocated Jitter RNG instance */ +extern struct rand_data *jent_lrng_entropy_collector(void); =2D-=20 2.24.1