![John Thacker](/assets/img/avatar_default.png)
Libgcrypt 1.8.x is required for a large amount of decryption support and is the current LTS version of libgcrypt. The 1.6 and 1.7 series have been end-of-life since 2017-06-30 and 2019-06-30, respectively. The Linux distributions that have versions of libgcrypt before 1.8.0 are nearing or at end of support (RHEL7, SLES 12, Debian stretch, Ubuntu 16.04LTS) and can be supported by the Wireshark 3.6 LTS release series. Remove an enormous amount of ifdefs based on libgcrypt versions 1.6.0, 1.7.0, and 1.8.0. There will be a second pass for the commons defines HAVE_LIBGCRYPT_AEAD, HAVE_LIBGCRYPT_CHACHA20, and HAVE_LIBGCRYPT_CHACHA20_POLY1305, which are now always defined. The ISAKMP dissector has some comments noting that some workarounds were used for libgcrypt 1.6 that aren't needed with 1.7; perhaps that could be updated now.
36 lines
997 B
C
36 lines
997 B
C
/** @file
|
|
* NaCl/Sodium-compatible API for Curve25519 cryptography.
|
|
*
|
|
* Copyright (c) 2018, Peter Wu <peter@lekensteyn.nl>
|
|
*
|
|
* Wireshark - Network traffic analyzer
|
|
* By Gerald Combs <gerald@wireshark.org>
|
|
* Copyright 1998 Gerald Combs
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#ifndef __CURVE25519_H__
|
|
#define __CURVE25519_H__
|
|
|
|
#include "ws_symbol_export.h"
|
|
#include "wsgcrypt.h"
|
|
|
|
/*
|
|
* Computes Q = X25519(n, P). In other words, given the secret key n, the public
|
|
* key P, compute the shared secret Q. Each key is 32 bytes long.
|
|
* Returns 0 on success or -1 on failure.
|
|
*/
|
|
WS_DLL_PUBLIC
|
|
int crypto_scalarmult_curve25519(unsigned char *q, const unsigned char *n,
|
|
const unsigned char *p);
|
|
|
|
/*
|
|
* Computes the Curve25519 32-byte public key Q from the 32-byte secret key n.
|
|
* Returns 0 on success or -1 on failure.
|
|
*/
|
|
WS_DLL_PUBLIC
|
|
int crypto_scalarmult_curve25519_base(unsigned char *q, const unsigned char *n);
|
|
|
|
#endif /* __CURVE25519_H__ */
|