iPXE
hkdf_test.h File Reference

HKDF self-tests. More...

#include <stdint.h>
#include <ipxe/crypto.h>
#include <ipxe/test.h>

Go to the source code of this file.

Data Structures

struct  hkdf_test
 An HKDF self-test. More...

Macros

#define IKM(...)
 Define inline input keying material.
#define SALT(...)
 Define inline salt.
#define INFO(...)
 Define inline additional information.
#define PRK(...)
 Define inline expected pseudorandom key.
#define PRK_UNSPECIFIED   PRK()
 Define inline absence of expected pseudorandom key.
#define OKM(...)
 Define inline expected output keying material.
#define HKDF_TEST(name, DIGEST, SALTED, IKM, SALT, INFO, PRK, OKM)
 Define an HKDF test.
#define hkdf_ok(test)
 Report an HKDF test result.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
void hkdf_okx (struct hkdf_test *test, const char *file, unsigned int line)
 Report an HKDF test result.

Detailed Description

HKDF self-tests.

Definition in file hkdf_test.h.

Macro Definition Documentation

◆ IKM

#define IKM ( ...)
Value:
{ __VA_ARGS__ }

Define inline input keying material.

Definition at line 17 of file hkdf_test.h.

Referenced by HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), and HKDF_TEST().

◆ SALT

#define SALT ( ...)
Value:
{ __VA_ARGS__ }

Define inline salt.

Definition at line 20 of file hkdf_test.h.

Referenced by HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), and HKDF_TEST().

◆ INFO

#define INFO ( ...)
Value:
{ __VA_ARGS__ }

Define inline additional information.

Definition at line 23 of file hkdf_test.h.

Referenced by HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), and HKDF_TEST().

◆ PRK

#define PRK ( ...)
Value:
{ __VA_ARGS__ }

Define inline expected pseudorandom key.

Definition at line 26 of file hkdf_test.h.

Referenced by HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), and HKDF_TEST().

◆ PRK_UNSPECIFIED

#define PRK_UNSPECIFIED   PRK()

Define inline absence of expected pseudorandom key.

Definition at line 29 of file hkdf_test.h.

Referenced by HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), and HKDF_TEST().

◆ OKM

#define OKM ( ...)
Value:
{ __VA_ARGS__ }

Define inline expected output keying material.

Definition at line 32 of file hkdf_test.h.

Referenced by HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), HKDF_TEST(), and HKDF_TEST().

◆ HKDF_TEST

#define HKDF_TEST ( name,
DIGEST,
SALTED,
IKM,
SALT,
INFO,
PRK,
OKM )
Value:
static const uint8_t name ## _ikm[] = IKM; \
static const uint8_t name ## _salt[] = SALT; \
static const uint8_t name ## _info[] = INFO; \
static const uint8_t name ## _prk[] = PRK; \
static const uint8_t name ## _okm[] = OKM; \
static struct hkdf_test name = { \
.digest = DIGEST, \
.ikm = name ## _ikm, \
.ikm_len = sizeof ( name ## _ikm ), \
.salt = ( SALTED ? name ## _salt : NULL ), \
.salt_len = sizeof ( name ## _salt ), \
.info = name ## _info, \
.info_len = sizeof ( name ## _info ), \
.prk = name ## _prk, \
.prk_len = sizeof ( name ## _prk ), \
.okm = name ## _okm, \
.okm_len = sizeof ( name ## _okm ), \
}
#define NULL
NULL pointer (VOID *).
Definition Base.h:321
u32 info
Definition ar9003_mac.h:0
unsigned char uint8_t
Definition stdint.h:10
const char * name
Definition ath9k_hw.c:1986
#define DIGEST(...)
Define inline expected digest.
Definition der_test.c:45
#define OKM(...)
Define inline expected output keying material.
Definition hkdf_test.h:32
#define PRK(...)
Define inline expected pseudorandom key.
Definition hkdf_test.h:26
#define IKM(...)
Define inline input keying material.
Definition hkdf_test.h:17
#define SALT(...)
Define inline salt.
Definition hkdf_test.h:20
#define INFO(...)
Define inline additional information.
Definition hkdf_test.h:23
uint8_t info_len
Reject information length.
Definition ib_mad.h:7
An HKDF self-test.
Definition hkdf_test.h:35

Define an HKDF test.

Parameters
nameTest name
DIGESTDigest algorithm
SALTEDUse salt value
IKMInput keying material
SALTSalt
INFOAdditional information
PRKExpected pseudorandom key
OKMExpected output keying material

Definition at line 72 of file hkdf_test.h.

72#define HKDF_TEST( name, DIGEST, SALTED, IKM, SALT, INFO, PRK, OKM ) \
73 static const uint8_t name ## _ikm[] = IKM; \
74 static const uint8_t name ## _salt[] = SALT; \
75 static const uint8_t name ## _info[] = INFO; \
76 static const uint8_t name ## _prk[] = PRK; \
77 static const uint8_t name ## _okm[] = OKM; \
78 static struct hkdf_test name = { \
79 .digest = DIGEST, \
80 .ikm = name ## _ikm, \
81 .ikm_len = sizeof ( name ## _ikm ), \
82 .salt = ( SALTED ? name ## _salt : NULL ), \
83 .salt_len = sizeof ( name ## _salt ), \
84 .info = name ## _info, \
85 .info_len = sizeof ( name ## _info ), \
86 .prk = name ## _prk, \
87 .prk_len = sizeof ( name ## _prk ), \
88 .okm = name ## _okm, \
89 .okm_len = sizeof ( name ## _okm ), \
90 }

◆ hkdf_ok

#define hkdf_ok ( test)
Value:
hkdf_okx ( test, __FILE__, __LINE__ )
static int test
Definition epic100.c:73
void hkdf_okx(struct hkdf_test *test, const char *file, unsigned int line)
Report an HKDF test result.
Definition hkdf_test.c:51

Report an HKDF test result.

Parameters
testHMAC test

Definition at line 100 of file hkdf_test.h.

Referenced by hkdf_test_exec(), wycheproof_hkdf_sha1_exec(), wycheproof_hkdf_sha256_exec(), wycheproof_hkdf_sha384_exec(), and wycheproof_hkdf_sha512_exec().

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ hkdf_okx()

void hkdf_okx ( struct hkdf_test * test,
const char * file,
unsigned int line )
extern

Report an HKDF test result.

Parameters
testHKDF test
fileTest code file
lineTest code line

Definition at line 51 of file hkdf_test.c.

52 {
53 size_t digestsize = test->digest->digestsize;
54 union {
55 uint8_t ikm[test->ikm_len];
56 uint8_t salt[test->salt_len];
57 uint8_t info[test->info_len];
59 uint8_t okm[test->okm_len];
60 } overlap;
62 uint8_t okm[test->okm_len];
63 size_t check_len;
64
65 /* Sanity checks */
66 okx ( ( test->salt != NULL ) || ( test->salt_len == 0 ), file, line );
67 okx ( ( test->prk_len == 0 ) || ( test->prk_len == digestsize ),
68 file, line );
69
70 /* Test extraction */
71 hkdf_extract ( test->digest, test->salt, test->salt_len, test->ikm,
72 test->ikm_len, prk );
73 if ( test->prk_len )
74 okx ( memcmp ( prk, test->prk, digestsize ) == 0, file, line );
75
76 /* Test expansion */
77 hkdf_expand ( test->digest, prk, test->info, test->info_len,
78 okm, test->okm_len );
79 okx ( memcmp ( okm, test->okm, test->okm_len ) == 0, file, line );
80
81 /* Test overlap between salt and pseudorandom key */
82 if ( test->salt ) {
83 memcpy ( overlap.salt, test->salt, test->salt_len );
84 hkdf_extract ( test->digest, overlap.salt, test->salt_len,
85 test->ikm, test->ikm_len, overlap.prk );
86 okx ( memcmp ( overlap.prk, prk, digestsize ) == 0,
87 file, line );
88 }
89
90 /* Test overlap between input keying material and pseudorandom key */
91 memcpy ( overlap.ikm, test->ikm, test->ikm_len );
92 hkdf_extract ( test->digest, test->salt, test->salt_len, overlap.ikm,
93 test->ikm_len, overlap.prk );
94 okx ( memcmp ( overlap.prk, prk, digestsize ) == 0, file, line );
95
96 /* Calculate length for expansion overlap tests */
97 check_len = test->okm_len;
98 if ( check_len > digestsize )
99 check_len = digestsize;
100
101 /* Test overlap between pseudorandom key and output */
102 memcpy ( overlap.prk, prk, digestsize );
103 hkdf_expand ( test->digest, overlap.prk, test->info, test->info_len,
104 overlap.okm, test->okm_len );
105 okx ( memcmp ( overlap.okm, test->okm, check_len ) == 0, file, line );
106
107 /* Test overlap between additional information and output */
108 memcpy ( overlap.info, test->info, test->info_len );
109 hkdf_expand ( test->digest, prk, overlap.info, test->info_len,
110 overlap.okm, test->okm_len );
111 okx ( memcmp ( overlap.okm, test->okm, check_len ) == 0, file, line );
112}
void hkdf_expand(struct digest_algorithm *digest, const void *prk, const void *info, size_t info_len, void *out, size_t len)
Expand pseudorandom key.
Definition hkdf.c:95
void hkdf_extract(struct digest_algorithm *digest, const void *salt, size_t salt_len, const void *ikm, size_t ikm_len, void *prk)
Extract fixed-length pseudorandom key.
Definition hkdf.c:56
void * memcpy(void *dest, const void *src, size_t len) __nonnull
uint32_t digestsize
Digest size (i.e.
Definition pccrr.h:1
int memcmp(const void *first, const void *second, size_t len)
Compare memory regions.
Definition string.c:115
#define okx(success, file, line)
Report test result.
Definition test.h:44

References digestsize, hkdf_expand(), hkdf_extract(), info, memcmp(), memcpy(), NULL, okx, and test.