1
From 6c6bbefdcf8a41dc71f9cbeca7ce972e2661fade Mon Sep 17 00:00:00 2001
2
From: Julien Cristau <jcristau@debian.org>
3
Date: Thu, 2 Apr 2009 02:34:49 +0200
4
Subject: [PATCH] Add libgcrypt as an option for sha1
6
Included upstream in 1.7.99.x in a different way:
7
commit a60e676f1fd243c78859440b87652f523d3f2ec1
9
configure.ac | 6 ++++++
10
include/dix-config.h.in | 3 +++
11
render/glyph.c | 12 ++++++++++++
12
3 files changed, 21 insertions(+), 0 deletions(-)
14
Index: xorg-server/configure.ac
15
===================================================================
16
--- xorg-server.orig/configure.ac
17
+++ xorg-server/configure.ac
18
@@ -1299,6 +1299,12 @@
19
[Use libmd SHA1 functions instead of OpenSSL libcrypto])])
22
+if test "x$SHA1_LIB" = "x"; then
23
+ AC_CHECK_LIB([gcrypt], [gcry_md_open], [SHA1_LIB="-lgcrypt"
24
+ AC_DEFINE([HAVE_SHA1_IN_LIBGCRYPT], [1],
25
+ [Use libgcrypt SHA1 functions instead of OpenSSL libcrypto])])
28
if test "x$SHA1_LIB" = "x" ; then
29
PKG_CHECK_EXISTS([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
30
[HAVE_OPENSSL_PKC=no])
31
Index: xorg-server/include/dix-config.h.in
32
===================================================================
33
--- xorg-server.orig/include/dix-config.h.in
34
+++ xorg-server/include/dix-config.h.in
36
/* Define to use libmd SHA1 functions instead of OpenSSL libcrypto */
37
#undef HAVE_SHA1_IN_LIBMD
39
+/* Define to use libgcrypt SHA1 functions instead of OpenSSL libcrypto */
40
+#undef HAVE_SHA1_IN_LIBGCRYPT
42
/* Define to 1 if you have the `shmctl64' function. */
45
Index: xorg-server/render/glyph.c
46
===================================================================
47
--- xorg-server.orig/render/glyph.c
48
+++ xorg-server/render/glyph.c
51
#ifdef HAVE_SHA1_IN_LIBMD /* Use libmd for SHA1 */
53
+#elif defined(HAVE_SHA1_IN_LIBGCRYPT)
55
#else /* Use OpenSSL's libcrypto */
56
# include <stddef.h> /* buggy openssl/sha.h wants size_t */
57
# include <openssl/sha.h>
59
SHA1Update (&ctx, gi, sizeof (xGlyphInfo));
60
SHA1Update (&ctx, bits, size);
61
SHA1Final (sha1, &ctx);
62
+#elif defined(HAVE_SHA1_IN_LIBGCRYPT) /* Use libgcrypt for SHA1 */
68
+ if (!gcry_check_version(NULL))
70
+ gcry_control(GCRYCTL_DISABLE_SECMEM, 0);
71
+ gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);
75
+ err = gcry_md_open(&h, GCRY_MD_SHA1, 0);
78
+ gcry_md_write(h, gi, sizeof (xGlyphInfo));
79
+ gcry_md_write(h, bits, size);
80
+ memcpy(sha1, gcry_md_read(h, GCRY_MD_SHA1), 20);
82
#else /* Use OpenSSL's libcrypto */