]> git.lizzy.rs Git - rust.git/blob - src/ci/docker/armhf-gnu/addentropy.c
Rollup merge of #39604 - est31:i128_tests, r=alexcrichton
[rust.git] / src / ci / docker / armhf-gnu / addentropy.c
1 // Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 #include <assert.h>
12 #include <stdint.h>
13 #include <sys/ioctl.h>
14 #include <stdio.h>
15 #include <unistd.h>
16 #include <fcntl.h>
17 #include <linux/random.h>
18
19 #define N 2048
20
21 struct entropy {
22   int ent_count;
23   int size;
24   unsigned char data[N];
25 };
26
27 int main() {
28   struct entropy buf;
29   ssize_t n;
30
31   int random_fd = open("/dev/random", O_RDWR);
32   assert(random_fd >= 0);
33
34   while ((n = read(0, &buf.data, N)) > 0) {
35     buf.ent_count = n * 8;
36     buf.size = n;
37     if (ioctl(random_fd, RNDADDENTROPY, &buf) != 0) {
38       perror("failed to add entropy");
39     }
40   }
41
42   return 0;
43 }