83 lines
2.4 KiB
Diff
83 lines
2.4 KiB
Diff
|
--- a/fs/fcntl.c
|
||
|
+++ b/fs/fcntl.c
|
||
|
@@ -141,6 +141,7 @@ SYSCALL_DEFINE1(dup, unsigned int, filde
|
||
|
}
|
||
|
return ret;
|
||
|
}
|
||
|
+EXPORT_SYMBOL(sys_dup);
|
||
|
|
||
|
#define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
|
||
|
|
||
|
--- a/include/linux/miscdevice.h
|
||
|
+++ b/include/linux/miscdevice.h
|
||
|
@@ -12,6 +12,7 @@
|
||
|
#define APOLLO_MOUSE_MINOR 7
|
||
|
#define PC110PAD_MINOR 9
|
||
|
/*#define ADB_MOUSE_MINOR 10 FIXME OBSOLETE */
|
||
|
+#define CRYPTODEV_MINOR 70 /* /dev/crypto */
|
||
|
#define WATCHDOG_MINOR 130 /* Watchdog timer */
|
||
|
#define TEMP_MINOR 131 /* Temperature Sensor */
|
||
|
#define RTC_MINOR 135
|
||
|
--- a/include/linux/random.h
|
||
|
+++ b/include/linux/random.h
|
||
|
@@ -9,6 +9,7 @@
|
||
|
|
||
|
#include <linux/types.h>
|
||
|
#include <linux/ioctl.h>
|
||
|
+#include <linux/types.h> /* for __u32 in user space */
|
||
|
#include <linux/irqnr.h>
|
||
|
|
||
|
/* ioctl()'s for the random number generator */
|
||
|
@@ -34,6 +35,30 @@
|
||
|
/* Clear the entropy pool and associated counters. (Superuser only.) */
|
||
|
#define RNDCLEARPOOL _IO( 'R', 0x06 )
|
||
|
|
||
|
+#ifdef CONFIG_FIPS_RNG
|
||
|
+
|
||
|
+/* Size of seed value - equal to AES blocksize */
|
||
|
+#define AES_BLOCK_SIZE_BYTES 16
|
||
|
+#define SEED_SIZE_BYTES AES_BLOCK_SIZE_BYTES
|
||
|
+/* Size of AES key */
|
||
|
+#define KEY_SIZE_BYTES 16
|
||
|
+
|
||
|
+/* ioctl() structure used by FIPS 140-2 Tests */
|
||
|
+struct rand_fips_test {
|
||
|
+ unsigned char key[KEY_SIZE_BYTES]; /* Input */
|
||
|
+ unsigned char datetime[SEED_SIZE_BYTES]; /* Input */
|
||
|
+ unsigned char seed[SEED_SIZE_BYTES]; /* Input */
|
||
|
+ unsigned char result[SEED_SIZE_BYTES]; /* Output */
|
||
|
+};
|
||
|
+
|
||
|
+/* FIPS 140-2 RNG Variable Seed Test. (Superuser only.) */
|
||
|
+#define RNDFIPSVST _IOWR('R', 0x10, struct rand_fips_test)
|
||
|
+
|
||
|
+/* FIPS 140-2 RNG Monte Carlo Test. (Superuser only.) */
|
||
|
+#define RNDFIPSMCT _IOWR('R', 0x11, struct rand_fips_test)
|
||
|
+
|
||
|
+#endif /* #ifdef CONFIG_FIPS_RNG */
|
||
|
+
|
||
|
struct rand_pool_info {
|
||
|
int entropy_count;
|
||
|
int buf_size;
|
||
|
@@ -50,6 +75,10 @@ extern void add_input_randomness(unsigne
|
||
|
unsigned int value);
|
||
|
extern void add_interrupt_randomness(int irq);
|
||
|
|
||
|
+extern void random_input_words(__u32 *buf, size_t wordcount, int ent_count);
|
||
|
+extern int random_input_wait(void);
|
||
|
+#define HAS_RANDOM_INPUT_WAIT 1
|
||
|
+
|
||
|
extern void get_random_bytes(void *buf, int nbytes);
|
||
|
void generate_random_uuid(unsigned char uuid_out[16]);
|
||
|
|
||
|
--- a/kernel/pid.c
|
||
|
+++ b/kernel/pid.c
|
||
|
@@ -389,6 +389,7 @@ struct task_struct *find_task_by_vpid(pi
|
||
|
{
|
||
|
return find_task_by_pid_ns(vnr, current->nsproxy->pid_ns);
|
||
|
}
|
||
|
+EXPORT_SYMBOL(find_task_by_vpid);
|
||
|
|
||
|
struct pid *get_task_pid(struct task_struct *task, enum pid_type type)
|
||
|
{
|