diff options
Diffstat (limited to 'board/host')
-rw-r--r-- | board/host/dcrypto.h | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/board/host/dcrypto.h b/board/host/dcrypto.h index 48bde62592..31f04e51aa 100644 --- a/board/host/dcrypto.h +++ b/board/host/dcrypto.h @@ -11,26 +11,23 @@ #ifndef __CROS_EC_DCRYPTO_HOST_H #define __CROS_EC_DCRYPTO_HOST_H - -#include <sha256.h> #include <stdint.h> #include <string.h> -#define AES256_BLOCK_CIPHER_KEY_SIZE 32 -#define SHA256_DIGEST_SIZE 32 +/* Allow tests to return a faked result for the purpose of testing. If + * this is not set, a combination of cryptoc and openssl are used for the + * dcrypto implementation. + */ +#ifndef CONFIG_DCRYPTO_MOCK -#define HASH_CTX sha256_ctx +/* If not using the mock struct definitions, use the ones from Cr50. */ +#include "chip/g/dcrypto/dcrypto.h" -enum dcrypto_appid { - RESERVED = 0, - NVMEM = 1, - U2F_ATTEST = 2, - U2F_ORIGIN = 3, - U2F_WRAP = 4, - PERSO_AUTH = 5, - PINWEAVER = 6, - /* This enum value should not exceed 7. */ -}; +#else /* defined(CONFIG_DCRYPTO_MOCK) */ + +#include <sha256.h> + +#define HASH_CTX sha256_ctx /* Used as a replacement for declarations in cryptoc that are used by Cr50, but * add unnecessary complexity to the test code. @@ -42,9 +39,22 @@ struct dcrypto_mock_ctx_t { #define LITE_SHA256_CTX struct HASH_CTX void HASH_update(struct HASH_CTX *ctx, const void *data, size_t len); - uint8_t *HASH_final(struct HASH_CTX *ctx); +#define AES256_BLOCK_CIPHER_KEY_SIZE 32 +#define SHA256_DIGEST_SIZE 32 + +enum dcrypto_appid { + RESERVED = 0, + NVMEM = 1, + U2F_ATTEST = 2, + U2F_ORIGIN = 3, + U2F_WRAP = 4, + PERSO_AUTH = 5, + PINWEAVER = 6, + /* This enum value should not exceed 7. */ +}; + void DCRYPTO_SHA256_init(LITE_SHA256_CTX *ctx, uint32_t sw_required); void DCRYPTO_HMAC_SHA256_init(LITE_HMAC_CTX *ctx, const void *key, @@ -63,4 +73,6 @@ void DCRYPTO_appkey_finish(struct APPKEY_CTX *ctx); int DCRYPTO_appkey_derive(enum dcrypto_appid appid, const uint32_t input[8], uint32_t output[8]); +#endif /* CONFIG_DCRYPTO_MOCK */ + #endif /* __CROS_EC_HOST_DCRYPTO_H */ |