44 lines
967 B
C
44 lines
967 B
C
|
|
/**
|
||
|
|
* utils.h
|
||
|
|
*
|
||
|
|
* Created on 2020-11-27
|
||
|
|
* @author: qyc
|
||
|
|
*
|
||
|
|
* @explain:
|
||
|
|
*/
|
||
|
|
#ifndef UTILS_H
|
||
|
|
#define UTILS_H
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#include "glib.h"
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Decodes a variable-length integer used in QUIC protocol
|
||
|
|
* See https://tools.ietf.org/html/draft-ietf-quic-transport-08#section-8.1
|
||
|
|
*/
|
||
|
|
#define ENC_VARINT_QUIC 0x00000004
|
||
|
|
|
||
|
|
/* Explicit and implicit nonce length (RFC 5116 - Section 3.2.1) */
|
||
|
|
#define TLS13_AEAD_NONCE_LENGTH 12
|
||
|
|
|
||
|
|
|
||
|
|
/* XXX Should we use GByteArray instead? */
|
||
|
|
typedef struct _StringInfo {
|
||
|
|
// Backing storage which may be larger than data_len
|
||
|
|
guchar *data;
|
||
|
|
// Length of the meaningful part of data
|
||
|
|
guint data_len;
|
||
|
|
} StringInfo;
|
||
|
|
|
||
|
|
gboolean tls13_hkdf_expand_label(int md, const StringInfo *secret, const char *label_prefix, const char *label, guint16 out_len, guchar **out);
|
||
|
|
guint tvb_get_varint(const char *tvb, guint offset, guint maxlen, guint64 *value, const guint encoding);
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif //UTILS_H
|