mirror of
https://github.com/X11Libre/xserver.git
synced 2026-03-24 03:44:06 +00:00
os: fix sha1 build error with Nettle 4.0
Nettle 2.6 (released in 2013) split the sha.h header into sha1.h & sha2.h, but left the sha.h header for compatibility until the recent Nettle 4.0 release finally removed it. Nettle 4.0 also dropped the length argument from the sha1_digest function. Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1871 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2133>
This commit is contained in:
committed by
Enrico Weigelt
parent
cb5f2cd67e
commit
3ee086b897
@@ -437,7 +437,7 @@ foreach t : test_sha1
|
|||||||
sha1_dep = libsha1_dep
|
sha1_dep = libsha1_dep
|
||||||
endif
|
endif
|
||||||
elif t == 'libnettle'
|
elif t == 'libnettle'
|
||||||
nettle_dep = dependency('nettle', required: false)
|
nettle_dep = dependency('nettle', version: '>= 2.6', required: false)
|
||||||
if nettle_dep.found()
|
if nettle_dep.found()
|
||||||
sha1_found = true
|
sha1_found = true
|
||||||
sha1_dep = nettle_dep
|
sha1_dep = nettle_dep
|
||||||
|
|||||||
@@ -152,7 +152,8 @@ x_sha1_final(void *ctx, unsigned char result[20])
|
|||||||
|
|
||||||
#elif defined(HAVE_SHA1_IN_LIBNETTLE) /* Use libnettle for SHA1 */
|
#elif defined(HAVE_SHA1_IN_LIBNETTLE) /* Use libnettle for SHA1 */
|
||||||
|
|
||||||
#include <nettle/sha.h>
|
#include <nettle/sha1.h>
|
||||||
|
#include <nettle/version.h>
|
||||||
|
|
||||||
void *
|
void *
|
||||||
x_sha1_init(void)
|
x_sha1_init(void)
|
||||||
@@ -175,7 +176,11 @@ x_sha1_update(void *ctx, void *data, int size)
|
|||||||
int
|
int
|
||||||
x_sha1_final(void *ctx, unsigned char result[20])
|
x_sha1_final(void *ctx, unsigned char result[20])
|
||||||
{
|
{
|
||||||
|
#if NETTLE_VERSION_MAJOR < 4
|
||||||
sha1_digest(ctx, 20, result);
|
sha1_digest(ctx, 20, result);
|
||||||
|
#else
|
||||||
|
sha1_digest(ctx, result);
|
||||||
|
#endif
|
||||||
free(ctx);
|
free(ctx);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user