diff options
Diffstat (limited to 'epan/dissectors/packet-oscore.h')
-rw-r--r-- | epan/dissectors/packet-oscore.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/epan/dissectors/packet-oscore.h b/epan/dissectors/packet-oscore.h new file mode 100644 index 00000000..59b1ff66 --- /dev/null +++ b/epan/dissectors/packet-oscore.h @@ -0,0 +1,76 @@ +/* packet-oscore.h + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef __PACKET_OSCORE_H__ +#define __PACKET_OSCORE_H__ + +/* OSCORE uses AEAD algorithms defined in RFC8152 (COSE) + * We only implement the default algorithm which corresponds to CCM* + * */ +typedef enum { + COSE_AES_CCM_16_64_128 = 10, +} cose_aead_alg_t; + +typedef enum { + STATUS_ERROR_DECRYPT_FAILED = 0, + STATUS_ERROR_CBCMAC_FAILED, + STATUS_ERROR_TAG_CHECK_FAILED, + STATUS_ERROR_MESSAGE_TOO_SMALL, + STATUS_SUCCESS_DECRYPTED_TAG_TRUNCATED, + STATUS_SUCCESS_DECRYPTED_TAG_CHECKED, +} oscore_decryption_status_t; + +/* Structure containing information regarding all necessary OSCORE message fields. */ +typedef struct oscore_context { + /* Pre-Shared Parameters as Strings */ + gchar *master_secret_prefs; + gchar *master_salt_prefs; + gchar *id_context_prefs; + gchar *sender_id_prefs; + gchar *recipient_id_prefs; + cose_aead_alg_t algorithm; + /* Pre-Shared Parameters as Byte Arrays */ + GByteArray *master_secret; + GByteArray *master_salt; + GByteArray *id_context; + GByteArray *sender_id; + GByteArray *recipient_id; + /* Derived Parameters */ + GByteArray *request_decryption_key; + GByteArray *response_decryption_key; + GByteArray *common_iv; /* IV used to generate the nonce */ +} oscore_context_t; + +/* Data from the lower layer (CoAP/HTTP) necessary for OSCORE to decrypt the packet */ +typedef struct oscore_info { + guint8 *kid; + guint8 kid_len; + guint8 *kid_context; + guint8 kid_context_len; + guint8 *piv; + guint8 piv_len; + guint8 *request_piv; + guint8 request_piv_len; + gboolean response; +} oscore_info_t; + +#endif /* __PACKET_OSCORE_H__ */ + +/* + * Editor modelines - https://www.wireshark.org/tools/modelines.html + * + * Local variables: + * c-basic-offset: 4 + * tab-width: 8 + * indent-tabs-mode: nil + * End: + * + * vi: set shiftwidth=4 tabstop=8 expandtab: + * :indentSize=4:tabSize=8:noTabs=true: + */ |