19#define SYMCRYPT_TLS_MAX_LABEL_AND_SEED_SIZE (SYMCRYPT_TLS_MAX_LABEL_SIZE + SYMCRYPT_TLS_MAX_SEED_SIZE)
23#define SYMCRYPT_TLS_1_1_CHUNK_SIZE 80
70 cbHalfSecret =
cbKey / 2;
72 cbKeySize = cbHalfSecret + cbOdd;
117 if (scError != SYMCRYPT_NO_ERROR)
124 if (scError != SYMCRYPT_NO_ERROR)
171 pMacAlgorithm->initFunc( &macState, pMacExpandedKey );
172 pMacAlgorithm->appendFunc(&macState, pbAi, cbAi);
179 pMacAlgorithm->resultFunc( &macState,
pbResult );
220 SIZE_T cbMacResultSize = pMacAlgorithm->resultSize;
221 SIZE_T cbBytesToWrite = cbResult;
241 while (cbBytesToWrite > 0)
266 if (cbBytesToWrite <= cbMacResultSize)
271 pbTmp += cbMacResultSize;
272 cbBytesToWrite -= cbMacResultSize;
311 SIZE_T cbLabelAndSeed = 0;
320 SIZE_T cbBytesToWrite = cbResult;
325 scError = SYMCRYPT_WRONG_DATA_SIZE;
330 pbTmp = rbLabelAndSeed;
333 memcpy(pbTmp, pbLabel, cbLabel);
337 cbLabelAndSeed = cbLabel +
cbSeed;
360 while (cbBytesToWrite > 0)
443 scError = SYMCRYPT_WRONG_DATA_SIZE;
448 pbTmp = rbLabelAndSeed;
451 memcpy(pbTmp, pbLabel, cbLabel);
499 if (scError != SYMCRYPT_NO_ERROR)
513 if (scError != SYMCRYPT_NO_ERROR)
546 if (scError != SYMCRYPT_NO_ERROR)
560 if (scError != SYMCRYPT_NO_ERROR)
static void cleanup(void)
#define memcpy(s1, s2, n)
#define _Out_writes_opt_(s)
#define _In_reads_opt_(s)
static const BYTE pbResult[]
PSYMCRYPT_MAC_EXPAND_KEY expandKeyFunc
#define SYMCRYPT_ASSERT(_x)
#define SYMCRYPT_HMAC_MD5_RESULT_SIZE
FORCEINLINE VOID SYMCRYPT_CALL SymCryptWipeKnownSize(_Out_writes_bytes_(cbData) PVOID pbData, SIZE_T cbData)
const PCSYMCRYPT_MAC SymCryptHmacSha1Algorithm
const PCSYMCRYPT_MAC SymCryptHmacMd5Algorithm
VOID SYMCRYPT_CALL SymCryptXorBytes(_In_reads_(cbBytes) PCBYTE pbSrc1, _In_reads_(cbBytes) PCBYTE pbSrc2, _Out_writes_(cbBytes) PBYTE pbResult, SIZE_T cbBytes)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHmacSha1ExpandKey(_Out_ PSYMCRYPT_HMAC_SHA1_EXPANDED_KEY pExpandedKey, _In_reads_opt_(cbKey) PCBYTE pbKey, SIZE_T cbKey)
#define SYMCRYPT_HMAC_SHA1_RESULT_SIZE
#define SYMCRYPT_TLS_MAX_LABEL_SIZE
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptHmacMd5ExpandKey(_Out_ PSYMCRYPT_HMAC_MD5_EXPANDED_KEY pExpandedKey, _In_reads_opt_(cbKey) PCBYTE pbKey, SIZE_T cbKey)
#define SYMCRYPT_TLS_MAX_SEED_SIZE
#define SYMCRYPT_MIN(_a, _b)
#define SYMCRYPT_MAC_MAX_RESULT_SIZE
PCSYMCRYPT_MAC macAlgorithm
VOID SYMCRYPT_CALL SymCryptTlsPrfPHash(_In_ PCSYMCRYPT_MAC pMacAlgorithm, _In_ PCSYMCRYPT_MAC_EXPANDED_KEY pMacExpandedKey, _In_reads_(cbSeed) PCBYTE pbSeed, _In_ SIZE_T cbSeed, _In_reads_opt_(cbAiIn) PCBYTE pbAiIn, _In_ SIZE_T cbAiIn, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult, _Out_writes_opt_(cbAiOut) PBYTE pbAiOut, SIZE_T cbAiOut)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptTlsPrf1_1ExpandKey(_Out_ PSYMCRYPT_TLSPRF1_1_EXPANDED_KEY pExpandedKey, _In_reads_(cbKey) PCBYTE pbKey, SIZE_T cbKey)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptTlsPrf1_1Derive(_In_ PCSYMCRYPT_TLSPRF1_1_EXPANDED_KEY pExpandedKey, _In_reads_opt_(cbLabel) PCBYTE pbLabel, _In_ SIZE_T cbLabel, _In_reads_(cbSeed) PCBYTE pbSeed, _In_ SIZE_T cbSeed, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult)
VOID SYMCRYPT_CALL SymCryptTlsPrfMac(_In_ PCSYMCRYPT_MAC pMacAlgorithm, _In_ PCSYMCRYPT_MAC_EXPANDED_KEY pMacExpandedKey, _In_reads_(cbAi) PCBYTE pbAi, _In_ SIZE_T cbAi, _In_reads_opt_(cbSeed) PCBYTE pbSeed, _In_ SIZE_T cbSeed, _Out_ PBYTE pbResult)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptTlsPrf1_1(_In_reads_(cbKey) PCBYTE pbKey, _In_ SIZE_T cbKey, _In_reads_opt_(cbLabel) PCBYTE pbLabel, _In_ SIZE_T cbLabel, _In_reads_(cbSeed) PCBYTE pbSeed, _In_ SIZE_T cbSeed, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptTlsPrf1_2(_In_ PCSYMCRYPT_MAC pMacAlgorithm, _In_reads_(cbKey) PCBYTE pbKey, _In_ SIZE_T cbKey, _In_reads_opt_(cbLabel) PCBYTE pbLabel, _In_ SIZE_T cbLabel, _In_reads_(cbSeed) PCBYTE pbSeed, _In_ SIZE_T cbSeed, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult)
#define SYMCRYPT_TLS_1_1_CHUNK_SIZE
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptTlsPrf1_2Derive(_In_ PCSYMCRYPT_TLSPRF1_2_EXPANDED_KEY pExpandedKey, _In_reads_opt_(cbLabel) PCBYTE pbLabel, _In_ SIZE_T cbLabel, _In_reads_(cbSeed) PCBYTE pbSeed, _In_ SIZE_T cbSeed, _Out_writes_(cbResult) PBYTE pbResult, SIZE_T cbResult)
#define SYMCRYPT_TLS_MAX_LABEL_AND_SEED_SIZE
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptTlsPrf1_2ExpandKey(_Out_ PSYMCRYPT_TLSPRF1_2_EXPANDED_KEY pExpandedKey, _In_ PCSYMCRYPT_MAC macAlgorithm, _In_reads_(cbKey) PCBYTE pbKey, SIZE_T cbKey)