All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <25271998.F6jFv7Sebt@positron.chronox.de>

diff --git a/a/1.txt b/N1/1.txt
index 71a9e60..47b2698 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,4 +1,4 @@
-Am Donnerstag, 23. März 2017, 10:44:06 CET schrieb Herbert Xu:
+Am Donnerstag, 23. M?rz 2017, 10:44:06 CET schrieb Herbert Xu:
 
 Hi Herbert,
 
@@ -15,3 +15,10 @@ this code is only a demonstrator which lacks some features.
 
 Ciao
 Stephan
+-------------- next part --------------
+A non-text attachment was scrubbed...
+Name: kcapi-rng.c
+Type: text/x-csrc
+Size: 3542 bytes
+Desc: not available
+URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170323/c0d8f632/attachment.bin>
diff --git a/a/2.hdr b/a/2.hdr
deleted file mode 100644
index 2cb802f..0000000
--- a/a/2.hdr
+++ /dev/null
@@ -1,3 +0,0 @@
-Content-Disposition: attachment; filename="kcapi-rng.c"
-Content-Transfer-Encoding: 7Bit
-Content-Type: text/x-csrc; charset="UTF-8"; name="kcapi-rng.c"
diff --git a/a/2.txt b/a/2.txt
deleted file mode 100644
index 1404831..0000000
--- a/a/2.txt
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2017, Stephan Mueller <smueller@chronox.de>
- *
- * License: see COPYING file in root directory
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
- * WHICH ARE HEREBY DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
- * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- */
-
-#include <unistd.h>
-#include <errno.h>
-#include <limits.h>
-#include <stdint.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <linux/random.h>
-#ifdef HAVE_GETRANDOM
-#include <sys/random.h>
-#endif
-
-#include <kcapi.h>
-
-struct kcapi_handle *rng = NULL;
-
-static int read_complete(int fd, uint8_t *buf, uint32_t buflen)
-{
-	ssize_t ret;
-
-	do {
-		ret = read(fd, buf, buflen);
-		if (0 < ret) {
-			buflen -= ret;
-			buf += ret;
-		}
-	} while ((0 < ret || EINTR == errno || ERESTART == errno)
-		 && buflen > 0);
-
-	if (buflen == 0)
-		return 0;
-	return 1;
-}
-
-static int read_random(uint8_t *buf, uint32_t buflen)
-{
-	int fd;
-	int ret = 0;
-
-	fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC);
-	if (0 > fd)
-		return fd;
-
-	ret = read_complete(fd, buf, buflen);
-	close(fd);
-	return ret;
-}
-
-static int get_random(uint8_t *buf, uint32_t buflen)
-{
-	if (buflen > INT_MAX)
-		return 1;
-
-#ifdef HAVE_GETRANDOM
-	return getrandom(buf, buflen, 0);
-#else
-# ifdef __NR_getrandom
-	do {
-		int ret = syscall(__NR_getrandom, buf, buflen, 0);
-
-		if (0 < ret) {
-			buflen -= ret;
-			buf += ret;
-		}
-	} while ((0 < ret || EINTR == errno || ERESTART == errno)
-		 && buflen > 0);
-
-	if (buflen == 0)
-		return 0;
-
-	return 1;
-# else
-	return read_random(buf, buflen);
-# endif
-#endif
-}
-
-static void usage(void)
-{
-	char version[30];
-	uint32_t ver = kcapi_version();
-
-	memset(version, 0, sizeof(version));
-	kcapi_versionstring(version, sizeof(version));
-
-	fprintf(stderr, "\nKernel Crypto API Random Number Gatherer\n");
-	fprintf(stderr, "\nKernel Crypto API interface library version: %s\n", version);
-	fprintf(stderr, "Reported numeric version number %u\n\n", ver);
-	fprintf(stderr, "Usage:\n");
-	fprintf(stderr, "\t<NUM>\tNumber of bytes to generate\n");
-}
-
-int main(int argc, char *argv[])
-{
-	int ret;
-	uint8_t buf[64];
-	unsigned long outlen;
-
-	if (argc != 2) {
-		usage();
-		return -EINVAL;
-	}
-
-	outlen = strtoul(argv[1], NULL, 10);
-	if (outlen == ULONG_MAX) {
-		usage();
-		return -EINVAL;
-	}
-
-	ret = kcapi_rng_init(&rng, "drbg_nopr_hmac_sha256", 0);
-	if (ret)
-		return ret;
-
-	ret = get_random(buf, sizeof(buf));
-	if (ret)
-		goto out;
-
-	ret = kcapi_rng_seed(rng, buf, sizeof(buf));
-	kcapi_memset_secure(buf, 0, sizeof(buf));
-	if (ret)
-		goto out;
-
-	while (outlen) {
-		uint32_t todo = (outlen < sizeof(buf)) ? outlen : sizeof(buf);
-
-		ret = kcapi_rng_generate(rng, buf, todo);
-		if (ret < 0)
-			goto out;
-
-		if ((uint32_t)ret != todo) {
-			ret = -EFAULT;
-			goto out;
-		}
-
-		fwrite(&buf, todo, 1, stdout);
-
-		outlen -= todo;
-	}
-
-out:
-	if (rng)
-		kcapi_rng_destroy(rng);
-	kcapi_memset_secure(buf, 0, sizeof(buf));
-
-	return ret;
-}
diff --git a/a/content_digest b/N1/content_digest
index 9517daf..61c6f54 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,19 +1,13 @@
  "ref\020170318092554.lggkhfg5eko23o3k@kozik-lap\0"
  "ref\020170323082307.GB16625@Red\0"
  "ref\020170323094406.GA6848@gondor.apana.org.au\0"
- "From\0Stephan M\303\274ller <smueller@chronox.de>\0"
- "Subject\0Re: Question - seeding the hw pseudo random number generator\0"
+ "From\0smueller@chronox.de (Stephan M\303\274ller)\0"
+ "Subject\0Question - seeding the hw pseudo random number generator\0"
  "Date\0Thu, 23 Mar 2017 14:06:22 +0100\0"
- "To\0Herbert Xu <herbert@gondor.apana.org.au>\0"
- "Cc\0Corentin Labbe <clabbe.montjoie@gmail.com>"
-  PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com>
-  linux-arm-kernel@lists.infradead.org
-  linux-crypto@vger.kernel.org
-  Krzysztof Kozlowski <krzk@kernel.org>
- " Matt Mackall <mpm@selenic.com>\0"
- "\01:1\0"
+ "To\0linux-arm-kernel@lists.infradead.org\0"
+ "\00:1\0"
  "b\0"
- "Am Donnerstag, 23. M\303\244rz 2017, 10:44:06 CET schrieb Herbert Xu:\n"
+ "Am Donnerstag, 23. M?rz 2017, 10:44:06 CET schrieb Herbert Xu:\n"
  "\n"
  "Hi Herbert,\n"
  "\n"
@@ -29,178 +23,13 @@
  "this code is only a demonstrator which lacks some features.\n"
  "\n"
  "Ciao\n"
- Stephan
- "\01:2\0"
- "fn\0kcapi-rng.c\0"
- "b\0"
- "/*\n"
- " * Copyright (C) 2017, Stephan Mueller <smueller@chronox.de>\n"
- " *\n"
- " * License: see COPYING file in root directory\n"
- " *\n"
- " * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED\n"
- " * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n"
- " * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF\n"
- " * WHICH ARE HEREBY DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE\n"
- " * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n"
- " * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n"
- " * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\n"
- " * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n"
- " * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n"
- " * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\n"
- " * USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH\n"
- " * DAMAGE.\n"
- " */\n"
- "\n"
- "#include <unistd.h>\n"
- "#include <errno.h>\n"
- "#include <limits.h>\n"
- "#include <stdint.h>\n"
- "#include <sys/types.h>\n"
- "#include <sys/stat.h>\n"
- "#include <fcntl.h>\n"
- "#include <stdio.h>\n"
- "#include <stdlib.h>\n"
- "#include <string.h>\n"
- "\n"
- "#include <linux/random.h>\n"
- "#ifdef HAVE_GETRANDOM\n"
- "#include <sys/random.h>\n"
- "#endif\n"
- "\n"
- "#include <kcapi.h>\n"
- "\n"
- "struct kcapi_handle *rng = NULL;\n"
- "\n"
- "static int read_complete(int fd, uint8_t *buf, uint32_t buflen)\n"
- "{\n"
- "\tssize_t ret;\n"
- "\n"
- "\tdo {\n"
- "\t\tret = read(fd, buf, buflen);\n"
- "\t\tif (0 < ret) {\n"
- "\t\t\tbuflen -= ret;\n"
- "\t\t\tbuf += ret;\n"
- "\t\t}\n"
- "\t} while ((0 < ret || EINTR == errno || ERESTART == errno)\n"
- "\t\t && buflen > 0);\n"
- "\n"
- "\tif (buflen == 0)\n"
- "\t\treturn 0;\n"
- "\treturn 1;\n"
- "}\n"
- "\n"
- "static int read_random(uint8_t *buf, uint32_t buflen)\n"
- "{\n"
- "\tint fd;\n"
- "\tint ret = 0;\n"
- "\n"
- "\tfd = open(\"/dev/urandom\", O_RDONLY|O_CLOEXEC);\n"
- "\tif (0 > fd)\n"
- "\t\treturn fd;\n"
- "\n"
- "\tret = read_complete(fd, buf, buflen);\n"
- "\tclose(fd);\n"
- "\treturn ret;\n"
- "}\n"
- "\n"
- "static int get_random(uint8_t *buf, uint32_t buflen)\n"
- "{\n"
- "\tif (buflen > INT_MAX)\n"
- "\t\treturn 1;\n"
- "\n"
- "#ifdef HAVE_GETRANDOM\n"
- "\treturn getrandom(buf, buflen, 0);\n"
- "#else\n"
- "# ifdef __NR_getrandom\n"
- "\tdo {\n"
- "\t\tint ret = syscall(__NR_getrandom, buf, buflen, 0);\n"
- "\n"
- "\t\tif (0 < ret) {\n"
- "\t\t\tbuflen -= ret;\n"
- "\t\t\tbuf += ret;\n"
- "\t\t}\n"
- "\t} while ((0 < ret || EINTR == errno || ERESTART == errno)\n"
- "\t\t && buflen > 0);\n"
- "\n"
- "\tif (buflen == 0)\n"
- "\t\treturn 0;\n"
- "\n"
- "\treturn 1;\n"
- "# else\n"
- "\treturn read_random(buf, buflen);\n"
- "# endif\n"
- "#endif\n"
- "}\n"
- "\n"
- "static void usage(void)\n"
- "{\n"
- "\tchar version[30];\n"
- "\tuint32_t ver = kcapi_version();\n"
- "\n"
- "\tmemset(version, 0, sizeof(version));\n"
- "\tkcapi_versionstring(version, sizeof(version));\n"
- "\n"
- "\tfprintf(stderr, \"\\nKernel Crypto API Random Number Gatherer\\n\");\n"
- "\tfprintf(stderr, \"\\nKernel Crypto API interface library version: %s\\n\", version);\n"
- "\tfprintf(stderr, \"Reported numeric version number %u\\n\\n\", ver);\n"
- "\tfprintf(stderr, \"Usage:\\n\");\n"
- "\tfprintf(stderr, \"\\t<NUM>\\tNumber of bytes to generate\\n\");\n"
- "}\n"
- "\n"
- "int main(int argc, char *argv[])\n"
- "{\n"
- "\tint ret;\n"
- "\tuint8_t buf[64];\n"
- "\tunsigned long outlen;\n"
- "\n"
- "\tif (argc != 2) {\n"
- "\t\tusage();\n"
- "\t\treturn -EINVAL;\n"
- "\t}\n"
- "\n"
- "\toutlen = strtoul(argv[1], NULL, 10);\n"
- "\tif (outlen == ULONG_MAX) {\n"
- "\t\tusage();\n"
- "\t\treturn -EINVAL;\n"
- "\t}\n"
- "\n"
- "\tret = kcapi_rng_init(&rng, \"drbg_nopr_hmac_sha256\", 0);\n"
- "\tif (ret)\n"
- "\t\treturn ret;\n"
- "\n"
- "\tret = get_random(buf, sizeof(buf));\n"
- "\tif (ret)\n"
- "\t\tgoto out;\n"
- "\n"
- "\tret = kcapi_rng_seed(rng, buf, sizeof(buf));\n"
- "\tkcapi_memset_secure(buf, 0, sizeof(buf));\n"
- "\tif (ret)\n"
- "\t\tgoto out;\n"
- "\n"
- "\twhile (outlen) {\n"
- "\t\tuint32_t todo = (outlen < sizeof(buf)) ? outlen : sizeof(buf);\n"
- "\n"
- "\t\tret = kcapi_rng_generate(rng, buf, todo);\n"
- "\t\tif (ret < 0)\n"
- "\t\t\tgoto out;\n"
- "\n"
- "\t\tif ((uint32_t)ret != todo) {\n"
- "\t\t\tret = -EFAULT;\n"
- "\t\t\tgoto out;\n"
- "\t\t}\n"
- "\n"
- "\t\tfwrite(&buf, todo, 1, stdout);\n"
- "\n"
- "\t\toutlen -= todo;\n"
- "\t}\n"
- "\n"
- "out:\n"
- "\tif (rng)\n"
- "\t\tkcapi_rng_destroy(rng);\n"
- "\tkcapi_memset_secure(buf, 0, sizeof(buf));\n"
- "\n"
- "\treturn ret;\n"
- }
+ "Stephan\n"
+ "-------------- next part --------------\n"
+ "A non-text attachment was scrubbed...\n"
+ "Name: kcapi-rng.c\n"
+ "Type: text/x-csrc\n"
+ "Size: 3542 bytes\n"
+ "Desc: not available\n"
+ URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170323/c0d8f632/attachment.bin>
 
-7babcf2afc0648e3a4da8a2d19e015a6207eb458490ae94cb8b8d8ec553814c0
+23d5d450077afe616da1461c789762260edf8bf7873cd206ff57883ce01ce4db

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.