Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp413178ybc; Sat, 16 Nov 2019 01:42:34 -0800 (PST) X-Google-Smtp-Source: APXvYqzg1uQ8j9NPB0fyomJnAy13GklF3F76tOOpfu/DO2W7xUxZ0ul9tNkUsa8ZGRgHEc2fWkzX X-Received: by 2002:a17:906:4e53:: with SMTP id g19mr8373180ejw.286.1573897354744; Sat, 16 Nov 2019 01:42:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573897354; cv=none; d=google.com; s=arc-20160816; b=CkHI4WRLuVF0rTSmiuijRmCob4ZHlL0Wvy96Jx5VUS4FWeoNxxExOZgUyXuBU3k27Q NATIymjnXGC0cW1voxGS03cHgQenZtvTVWmbL1h5oCRI2SBqpdytYgP5uZ+MunKScIJE dHD4EUp3u99OglS/y31Ut1RgQgIybXeLDxpF2+JcjmpdDO2BWugAsMok6nDJc9LX/tsF ldUdlAU/WdN+NjGITw2GgzPOEBqIiaKI7XYkJvzA1wJHHg2/rY/FpA3JXd+IiDgUdY6A diuai4iwj7piZYY0CFj5fmRSbXGigVzrJ81IptR8REA7uAa7bCpvaK8ecOrxJwGszQL5 kHAQ== 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=aPZ/5dq1Q5Q0xxxZcch63UgLnu9JOzeEUdd+tUFCBSE=; b=Nzwqjle8BMoTCWhnvQ2k0ee1+aaKNb4GISE4ekXS9hNRHdqNgD1OM7bHbPgkmqk063 LLTiQl5UmFJPiaBWaIA3JoCaoZsJ3Na3vCs1OIeoTK4AMKXtFFus/jSr9MeC3a0n/9GW n/AoJjTWZuBelflRV0A1K/GiC7Cw+p56stqoGtbgaCE0iT/MZR4q+DIkKyoUXoTN0X6H stJPLYxNZP7pvmVygckxnCnQZo5wXvcxZyRw83Sy4NurKZSiG2zfm/6zD9z3HLOy9xpj j3xCy1eNgFcGEHeG5kopbyV+vEYyIXfQTOmnIwS7xlMUDkD/1cW66XCIsWGgndml72PY MJDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@chronox.de header.s=strato-dkim-0002 header.b=C981fbOJ; 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 g6si8149002edf.256.2019.11.16.01.41.58; Sat, 16 Nov 2019 01:42:34 -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=C981fbOJ; 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 S1727273AbfKPJlq (ORCPT + 99 others); Sat, 16 Nov 2019 04:41:46 -0500 Received: from mo4-p03-ob.smtp.rzone.de ([81.169.146.172]:22280 "EHLO mo4-p03-ob.smtp.rzone.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727242AbfKPJlq (ORCPT ); Sat, 16 Nov 2019 04:41:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1573897303; 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=aPZ/5dq1Q5Q0xxxZcch63UgLnu9JOzeEUdd+tUFCBSE=; b=C981fbOJiDHf4bG3taTRbVrVJshMnolYxUlWabcOZ340MP5M+IBbKZNNlY16bNwtvB odbRjEVVs6cQSxXW/5xwvSsKsJ2B6Ajf8s63hIExwRBs3rIV2fd5fBtvMV5sKT8CaGes i/Ys6tdu4V0f48AiQiXEGdDbtdmpObjPLMZbUdM+D4aHD4MyiMLmPhzQOxRSGFqbVpwj CZ6vaVMiXGBSpy7hi/drBEb1nQNLTa6z/HHaxjv8WuMTN7RcrBt5RtmbRNsuWer9IcDN xzM25Ju/R6odDRpGHs/YSmlEiuRidOAjU/Iap2ga3EiiqpzOCPMNlYSubHXWiXco84qZ 8UhQ== X-RZG-AUTH: ":P2ERcEykfu11Y98lp/T7+hdri+uKZK8TKWEqNyiHySGSa9k9x2YdNp5OujZ6kplo" X-RZG-CLASS-ID: mo00 Received: from positron.chronox.de by smtp.strato.de (RZmta 44.29.0 SBL|AUTH) with ESMTPSA id N09a57vAG9eWRIB (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (curve secp521r1 with 521 ECDH bits, eq. 15360 bits RSA)) (Client did not present a certificate); Sat, 16 Nov 2019 10:40:32 +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 Subject: [PATCH v25 08/12] crypto: provide access to a static Jitter RNG state Date: Sat, 16 Nov 2019 10:36:25 +0100 Message-ID: <4886699.5igGNpkUo8@positron.chronox.de> In-Reply-To: <2787174.DQlWHN5GGo@positron.chronox.de> References: <6157374.ptSnyUpaCn@positron.chronox.de> <2787174.DQlWHN5GGo@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.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/crypto/jitterentropy.c b/crypto/jitterentropy.c index 77fa2120fe0c..3a815495f778 100644 =2D-- a/crypto/jitterentropy.c +++ b/crypto/jitterentropy.c @@ -644,3 +644,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; +} =2D-=20 2.23.0