Merge branch 'master' of gitlab.ops-class.org:staff/os161
This commit is contained in:
@@ -44,6 +44,7 @@
|
||||
* allows normally compilation and operation.
|
||||
*/
|
||||
|
||||
#define KERNEL_SECRET ""
|
||||
#undef SECRET_TESTING
|
||||
#define SECRET 0
|
||||
|
||||
#endif /* _SECRET_H_ */
|
||||
|
18
kern/include/kern/secure.h
Normal file
18
kern/include/kern/secure.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#ifndef _KERN_SECURE_H_
|
||||
#define _KERN_SECURE_H_
|
||||
|
||||
/*
|
||||
* Compute the FIPS 198-1 complient HMAC of msg using SHA256.
|
||||
*
|
||||
* hmac_with_salt uses a salted key and sets salt_str to this value (in hex).
|
||||
* Both functions below create hash_str with the hex readable version of the hash.
|
||||
*
|
||||
* Callers need to free hash_str (and salt_str) when done.
|
||||
*/
|
||||
int hmac(const char *msg, size_t msg_len, const char *key, size_t key_len,
|
||||
char **hash_str);
|
||||
|
||||
int hmac_salted(const char *msg, size_t msg_len, const char *key, size_t key_len,
|
||||
char **hash_str, char **salt_str);
|
||||
|
||||
#endif //_KERN_SECURE_H_
|
@@ -32,6 +32,7 @@
|
||||
|
||||
/* Get __PF() for declaring printf-like functions. */
|
||||
#include <cdefs.h>
|
||||
#include <kern/secret.h>
|
||||
|
||||
#include "opt-synchprobs.h"
|
||||
#include "opt-automationtest.h"
|
||||
@@ -95,6 +96,9 @@ int longstress(int, char **);
|
||||
int createstress(int, char **);
|
||||
int printfile(int, char **);
|
||||
|
||||
/* HMAC/hash tests */
|
||||
int hmacu1(int, char**);
|
||||
|
||||
/* other tests */
|
||||
int kmalloctest(int, char **);
|
||||
int kmallocstress(int, char **);
|
||||
@@ -165,16 +169,26 @@ int ll1test(int, char **);
|
||||
int ll16test(int, char **);
|
||||
#endif
|
||||
|
||||
#define SUCCESS 0
|
||||
#define FAIL 1
|
||||
|
||||
void success(bool, uint32_t, const char *);
|
||||
|
||||
void random_yielder(uint32_t);
|
||||
void random_spinner(uint32_t);
|
||||
|
||||
/*
|
||||
* Testing variants of kprintf. tprintf is silent during automated testing.
|
||||
* sprintf prefixes the kernel secret to kprintf messages during automated
|
||||
* testing. nprintf is not silent during automated testing.
|
||||
* kprintf variants that do not (or only) print during automated testing.
|
||||
*/
|
||||
|
||||
int tkprintf(const char *format, ...) __PF(1,2);
|
||||
int nkprintf(const char *format, ...) __PF(1,2);
|
||||
#ifdef SECRET_TESTING
|
||||
#define kprintf_t(...) kprintf(__VA_ARGS__)
|
||||
#define kprintf_n(...) silent(__VA_ARGS__)
|
||||
#else
|
||||
#define kprintf_t(...) silent(__VA_ARGS__)
|
||||
#define kprintf_n(...) kprintf(__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
static inline void silent(const char * fmt, ...) { (void)fmt; };
|
||||
|
||||
#endif /* _TEST_H_ */
|
||||
|
Reference in New Issue
Block a user