Wireshark 4.5.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
Macros | Functions
wsgcrypt.h File Reference
#include <wireshark.h>
#include <gcrypt.h>

Go to the source code of this file.

Macros

#define HASH_MD5_LENGTH   16
 
#define HASH_SHA1_LENGTH   20
 
#define HASH_SHA2_224_LENGTH   28
 
#define HASH_SHA2_256_LENGTH   32
 
#define HASH_SHA2_384_LENGTH   48
 
#define HASH_SHA2_512_LENGTH   64
 
#define AEAD_AES_128_GCM_KEY_LENGTH   16
 
#define AEAD_AES_256_GCM_KEY_LENGTH   32
 
#define AEAD_CHACHA20POLY1305_KEY_LENGTH   32
 
#define AEAD_MAX_KEY_LENGTH   32
 
#define HPKE_AEAD_NONCE_LENGTH   12
 
#define HPKE_HKDF_SHA256   1
 
#define HPKE_HKDF_SHA384   2
 
#define HPKE_HKDF_SHA512   3
 
#define HPKE_AEAD_AES_128_GCM   1
 
#define HPKE_AEAD_AES_256_GCM   2
 
#define HPKE_AEAD_CHACHA20POLY1305   3
 
#define HPKE_SUIT_ID_LEN   10
 
#define HPKE_SUIT_PREFIX   "HPKE"
 
#define HPKE_VERSION_ID   "HPKE-v1"
 
#define HPKE_MAX_KDF_LEN   HASH_SHA2_512_LENGTH
 
#define HPKE_MODE_BASE   0
 
#define HPKE_MODE_PSK   1
 
#define HPKE_MODE_AUTH   2
 
#define HPKE_MODE_AUTH_PSK   3
 

Functions

WS_DLL_PUBLIC gcry_error_t ws_hmac_buffer (int algo, void *digest, const void *buffer, size_t length, const void *key, size_t keylen)
 
WS_DLL_PUBLIC gcry_error_t ws_cmac_buffer (int algo, void *digest, const void *buffer, size_t length, const void *key, size_t keylen)
 
WS_DLL_PUBLIC void crypt_des_ecb (uint8_t *output, const uint8_t *buffer, const uint8_t *key56)
 
WS_DLL_PUBLIC size_t rsa_decrypt_inplace (const unsigned len, unsigned char *data, gcry_sexp_t pk, bool pkcs1_padding, char **err)
 
WS_DLL_PUBLIC gcry_error_t hkdf_expand (int hashalgo, const uint8_t *prk, unsigned prk_len, const uint8_t *info, unsigned info_len, uint8_t *out, unsigned out_len)
 
WS_DLL_PUBLIC uint16_t hpke_hkdf_len (uint16_t kdf_id)
 
WS_DLL_PUBLIC uint16_t hpke_aead_key_len (uint16_t aead_id)
 
WS_DLL_PUBLIC uint16_t hpke_aead_nonce_len (uint16_t aead_id)
 
WS_DLL_PUBLIC void hpke_suite_id (uint16_t kem_id, uint16_t kdf_id, uint16_t aead_id, uint8_t *suite_id)
 
WS_DLL_PUBLIC gcry_error_t hpke_key_schedule (uint16_t kdf_id, uint16_t aead_id, const uint8_t *salt, unsigned salt_len, const uint8_t *suite_id, const uint8_t *ikm, unsigned ikm_len, uint8_t mode, uint8_t *key, uint8_t *base_nonce)
 
WS_DLL_PUBLIC gcry_error_t hpke_setup_aead (gcry_cipher_hd_t *cipher, uint16_t aead_id, uint8_t *key)
 
WS_DLL_PUBLIC gcry_error_t hpke_set_nonce (gcry_cipher_hd_t cipher, uint64_t seq, uint8_t *base_nonce, size_t nonce_len)
 

Detailed Description

Wrapper around libgcrypt's include file gcrypt.h. For libgcrypt 1.5.0, including gcrypt.h directly brings up lots of compiler warnings about deprecated definitions. Try to work around these warnings to ensure a clean build with -Werror.

Wireshark - Network traffic analyzer By Gerald Combs geral.nosp@m.d@wi.nosp@m.resha.nosp@m.rk.o.nosp@m.rg Copyright 2007 Gerald Combs

SPDX-License-Identifier: GPL-2.0-or-later

Function Documentation

◆ hkdf_expand()

WS_DLL_PUBLIC gcry_error_t hkdf_expand ( int  hashalgo,
const uint8_t *  prk,
unsigned  prk_len,
const uint8_t *  info,
unsigned  info_len,
uint8_t *  out,
unsigned  out_len 
)

RFC 5869 HMAC-based Extract-and-Expand Key Derivation Function (HKDF): HKDF-Expand(PRK, info, L) -> OKM

Parameters
hashalgo[in] Libgcrypt hash algorithm identifier.
prk[in] Pseudo-random key.
prk_len[in] Length of prk.
info[in] Optional context (can be NULL if info_len is zero).
info_len[in] Length of info.
out[out] Output keying material.
out_len[in] Size of output keying material.
Returns
0 on success and an error code otherwise.