]> git.pld-linux.org Git - packages/xorg-xserver-server.git/blobdiff - xorg-xserver-server-builtin-SHA1.patch
- rel 3; use pixman glyph
[packages/xorg-xserver-server.git] / xorg-xserver-server-builtin-SHA1.patch
index 2a5488bcbb80355eb6a5ef39b1639955ef8af6a2..1baf8aaec0259f5b37afd62be1ecb08ea32fc455 100644 (file)
@@ -52,7 +52,7 @@ diff --git a/include/dix-config.h.in b/include/dix-config.h.in
 index 058c8fd..d6e99a5 100644
 --- a/include/dix-config.h.in
 +++ b/include/dix-config.h.in
-@@ -160,21 +160,6 @@
+@@ -142,24 +142,6 @@
  /* Define to 1 if you have the <rpcsvc/dbm.h> header file. */
  #undef HAVE_RPCSVC_DBM_H
  
@@ -62,6 +62,9 @@ index 058c8fd..d6e99a5 100644
 -/* Define to use CommonCrypto SHA1 functions */
 -#undef HAVE_SHA1_IN_COMMONCRYPTO
 -
+-/* Define to use CryptoAPI SHA1 functions */
+-#undef HAVE_SHA1_IN_CRYPTOAPI
+-
 -/* Define to use libmd SHA1 functions */
 -#undef HAVE_SHA1_IN_LIBMD
 -
@@ -86,12 +89,9 @@ index 66a4a0f..b8c1636 100644
        xstrans.c       \
        xprintf.c       \
        $(XORG_SRCS)
-diff --git a/os/xsha1.c b/os/xsha1.c
-deleted file mode 100644
-index 355862f..0000000
---- a/os/xsha1.c
-+++ /dev/null
-@@ -1,168 +0,0 @@
+--- a/os/xsha1.c       2012-03-30 04:57:28.000000000 +0200
++++ /dev/null  2011-06-01 08:46:43.490033582 +0200
+@@ -1,237 +0,0 @@
 -#ifdef HAVE_DIX_CONFIG_H
 -#include <dix-config.h>
 -#endif
@@ -100,67 +100,122 @@ index 355862f..0000000
 -#include "xsha1.h"
 -
 -#if defined(HAVE_SHA1_IN_LIBMD)  /* Use libmd for SHA1 */ \
--      || defined(HAVE_SHA1_IN_LIBC) /* Use libc for SHA1 */
+-      || defined(HAVE_SHA1_IN_LIBC)   /* Use libc for SHA1 */
 -
--# include <sha1.h>
+-#include <sha1.h>
 -
--void *x_sha1_init(void)
+-void *
+-x_sha1_init(void)
 -{
 -    SHA1_CTX *ctx = malloc(sizeof(*ctx));
+-
 -    if (!ctx)
 -        return NULL;
 -    SHA1Init(ctx);
 -    return ctx;
 -}
 -
--int x_sha1_update(void *ctx, void *data, int size)
+-int
+-x_sha1_update(void *ctx, void *data, int size)
 -{
 -    SHA1_CTX *sha1_ctx = ctx;
+-
 -    SHA1Update(sha1_ctx, data, size);
 -    return 1;
 -}
 -
--int x_sha1_final(void *ctx, unsigned char result[20])
+-int
+-x_sha1_final(void *ctx, unsigned char result[20])
 -{
 -    SHA1_CTX *sha1_ctx = ctx;
+-
 -    SHA1Final(result, sha1_ctx);
 -    free(sha1_ctx);
 -    return 1;
 -}
 -
--#elif defined(HAVE_SHA1_IN_COMMONCRYPTO) /* Use CommonCrypto for SHA1 */
+-#elif defined(HAVE_SHA1_IN_COMMONCRYPTO)        /* Use CommonCrypto for SHA1 */
 -
 -#include <CommonCrypto/CommonDigest.h>
 -
--void *x_sha1_init(void)
+-void *
+-x_sha1_init(void)
 -{
 -    CC_SHA1_CTX *ctx = malloc(sizeof(*ctx));
+-
 -    if (!ctx)
 -        return NULL;
 -    CC_SHA1_Init(ctx);
 -    return ctx;
 -}
 -
--int x_sha1_update(void *ctx, void *data, int size)
+-int
+-x_sha1_update(void *ctx, void *data, int size)
 -{
 -    CC_SHA1_CTX *sha1_ctx = ctx;
+-
 -    CC_SHA1_Update(sha1_ctx, data, size);
 -    return 1;
 -}
 -
--int x_sha1_final(void *ctx, unsigned char result[20])
+-int
+-x_sha1_final(void *ctx, unsigned char result[20])
 -{
 -    CC_SHA1_CTX *sha1_ctx = ctx;
+-
 -    CC_SHA1_Final(result, sha1_ctx);
 -    free(sha1_ctx);
 -    return 1;
 -}
 -
--#elif defined(HAVE_SHA1_IN_LIBGCRYPT) /* Use libgcrypt for SHA1 */
+-#elif defined(HAVE_SHA1_IN_CRYPTOAPI)        /* Use CryptoAPI for SHA1 */
+-
+-#define WIN32_LEAN_AND_MEAN
+-#include <X11/Xwindows.h>
+-#include <wincrypt.h>
 -
--# include <gcrypt.h>
+-static HCRYPTPROV hProv;
+-
+-void *
+-x_sha1_init(void)
+-{
+-    HCRYPTHASH *ctx = malloc(sizeof(*ctx));
+-
+-    if (!ctx)
+-        return NULL;
+-    CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
+-    CryptCreateHash(hProv, CALG_SHA1, 0, 0, ctx);
+-    return ctx;
+-}
 -
--void *x_sha1_init(void)
+-int
+-x_sha1_update(void *ctx, void *data, int size)
+-{
+-    HCRYPTHASH *hHash = ctx;
+-
+-    CryptHashData(*hHash, data, size, 0);
+-    return 1;
+-}
+-
+-int
+-x_sha1_final(void *ctx, unsigned char result[20])
+-{
+-    HCRYPTHASH *hHash = ctx;
+-    DWORD len = 20;
+-
+-    CryptGetHashParam(*hHash, HP_HASHVAL, result, &len, 0);
+-    CryptDestroyHash(*hHash);
+-    CryptReleaseContext(hProv, 0);
+-    free(ctx);
+-    return 1;
+-}
+-
+-#elif defined(HAVE_SHA1_IN_LIBGCRYPT)   /* Use libgcrypt for SHA1 */
+-
+-#include <gcrypt.h>
+-
+-void *
+-x_sha1_init(void)
 -{
 -    static int init;
 -    gcry_md_hd_t h;
@@ -180,56 +235,66 @@ index 355862f..0000000
 -    return h;
 -}
 -
--int x_sha1_update(void *ctx, void *data, int size)
+-int
+-x_sha1_update(void *ctx, void *data, int size)
 -{
 -    gcry_md_hd_t h = ctx;
+-
 -    gcry_md_write(h, data, size);
 -    return 1;
 -}
 -
--int x_sha1_final(void *ctx, unsigned char result[20])
+-int
+-x_sha1_final(void *ctx, unsigned char result[20])
 -{
 -    gcry_md_hd_t h = ctx;
+-
 -    memcpy(result, gcry_md_read(h, GCRY_MD_SHA1), 20);
 -    gcry_md_close(h);
 -    return 1;
 -}
 -
--#elif defined(HAVE_SHA1_IN_LIBSHA1) /* Use libsha1 */
+-#elif defined(HAVE_SHA1_IN_LIBSHA1)     /* Use libsha1 */
 -
--# include <libsha1.h>
+-#include <libsha1.h>
 -
--void *x_sha1_init(void)
+-void *
+-x_sha1_init(void)
 -{
 -    sha1_ctx *ctx = malloc(sizeof(*ctx));
--    if(!ctx)
+-
+-    if (!ctx)
 -        return NULL;
 -    sha1_begin(ctx);
 -    return ctx;
 -}
 -
--int x_sha1_update(void *ctx, void *data, int size)
+-int
+-x_sha1_update(void *ctx, void *data, int size)
 -{
 -    sha1_hash(data, size, ctx);
 -    return 1;
 -}
 -
--int x_sha1_final(void *ctx, unsigned char result[20])
+-int
+-x_sha1_final(void *ctx, unsigned char result[20])
 -{
 -    sha1_end(result, ctx);
 -    free(ctx);
 -    return 1;
 -}
 -
--#else /* Use OpenSSL's libcrypto */
+-#else                           /* Use OpenSSL's libcrypto */
 -
--# include <stddef.h>  /* buggy openssl/sha.h wants size_t */
--# include <openssl/sha.h>
+-#include <stddef.h>             /* buggy openssl/sha.h wants size_t */
+-#include <openssl/sha.h>
 -
--void *x_sha1_init(void)
+-void *
+-x_sha1_init(void)
 -{
 -    int ret;
 -    SHA_CTX *ctx = malloc(sizeof(*ctx));
+-
 -    if (!ctx)
 -        return NULL;
 -    ret = SHA1_Init(ctx);
@@ -240,20 +305,24 @@ index 355862f..0000000
 -    return ctx;
 -}
 -
--int x_sha1_update(void *ctx, void *data, int size)
+-int
+-x_sha1_update(void *ctx, void *data, int size)
 -{
 -    int ret;
 -    SHA_CTX *sha_ctx = ctx;
+-
 -    ret = SHA1_Update(sha_ctx, data, size);
 -    if (!ret)
 -        free(sha_ctx);
 -    return ret;
 -}
 -
--int x_sha1_final(void *ctx, unsigned char result[20])
+-int
+-x_sha1_final(void *ctx, unsigned char result[20])
 -{
 -    int ret;
 -    SHA_CTX *sha_ctx = ctx;
+-
 -    ret = SHA1_Final(result, sha_ctx);
 -    free(sha_ctx);
 -    return ret;
@@ -264,15 +333,15 @@ diff --git a/render/Makefile.am b/render/Makefile.am
 index 216c613..bb46702 100644
 --- a/render/Makefile.am
 +++ b/render/Makefile.am
-@@ -14,8 +14,11 @@ librender_la_SOURCES =      \
+@@ -13,8 +13,11 @@ librender_la_SOURCES =      \
+       mitrap.c        \
        mitri.c         \
        picture.c       \
-       render.c        \
 +      sha1.c          \
-       renderedge.c
+       render.c
  
  if XORG
- sdk_HEADERS = picture.h mipict.h glyphstr.h picturestr.h renderedge.h
+ sdk_HEADERS = picture.h mipict.h glyphstr.h picturestr.h
  endif
 +
 +EXTRA_DIST = sha1.h
@@ -290,32 +359,30 @@ index 0b864ad..e14530a 100644
  #include "misc.h"
  #include "scrnintstr.h"
  #include "os.h"
-@@ -193,21 +192,13 @@ HashGlyph (xGlyphInfo    *gi,
         unsigned long size,
-          unsigned char sha1[20])
+@@ -167,21 +167,13 @@ int
HashGlyph(xGlyphInfo * gi,
+           CARD8 *bits, unsigned long size, unsigned char sha1[20])
  {
 -    void *ctx = x_sha1_init();
 -    int success;
--
++    SHA1_CTX ctx;
 -    if (!ctx)
--      return BadAlloc;
--
+-        return BadAlloc;
++    SHA1Init (&ctx);
++    SHA1Update (&ctx, gi, sizeof (xGlyphInfo));
++    SHA1Update (&ctx, bits, size);
++    SHA1Final (sha1, &ctx);
 -    success = x_sha1_update(ctx, gi, sizeof(xGlyphInfo));
 -    if (!success)
--      return BadAlloc;
+-        return BadAlloc;
 -    success = x_sha1_update(ctx, bits, size);
 -    if (!success)
--      return BadAlloc;
+-        return BadAlloc;
 -    success = x_sha1_final(ctx, sha1);
 -    if (!success)
--      return BadAlloc;
-+    SHA1_CTX ctx;
-+
-+    SHA1Init (&ctx);
-+    SHA1Update (&ctx, gi, sizeof (xGlyphInfo));
-+    SHA1Update (&ctx, bits, size);
-+    SHA1Final (sha1, &ctx);
-+
+-        return BadAlloc;
      return Success;
  }
  
@@ -581,13 +648,13 @@ index 0000000..ace7d97
  else
    DIX_LIB='$(top_builddir)/dix/libdix.la'
    OS_LIB='$(top_builddir)/os/libos.la'
-@@ -1358,99 +1358,6 @@
- MIEXT_SHADOW_LIB='$(top_builddir)/miext/shadow/libshadow.la'
+@@ -1358,112 +1358,6 @@
+ MIEXT_SYNC_LIB='$(top_builddir)/miext/sync/libsync.la'
  CORE_INCS='-I$(top_srcdir)/include -I$(top_builddir)/include'
  
 -# SHA1 hashing
 -AC_ARG_WITH([sha1],
--            [AS_HELP_STRING([--with-sha1=libc|libmd|libgcrypt|libcrypto|libsha1|CommonCrypto],
+-            [AS_HELP_STRING([--with-sha1=libc|libmd|libgcrypt|libcrypto|libsha1|CommonCrypto|CryptoAPI],
 -                            [choose SHA1 implementation])])
 -AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
 -if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
@@ -613,6 +680,19 @@ index 0000000..ace7d97
 -              [Use CommonCrypto SHA1 functions])
 -      SHA1_LIBS=""
 -fi
+-dnl stdcall functions cannot be tested with AC_CHECK_LIB
+-AC_CHECK_HEADER([wincrypt.h], [HAVE_SHA1_IN_CRYPTOAPI=yes], [], [#include <windows.h>])
+-if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_CRYPTOAPI" = xyes; then
+-      with_sha1=CryptoAPI
+-fi
+-if test "x$with_sha1" = xCryptoAPI && test "x$HAVE_SHA1_IN_CRYPTOAPI" != xyes; then
+-      AC_MSG_ERROR([CryptoAPI requested but not found])
+-fi
+-if test "x$with_sha1" = xCryptoAPI; then
+-      AC_DEFINE([HAVE_SHA1_IN_CRYPTOAPI], [1],
+-              [Use CryptoAPI SHA1 functions])
+-      SHA1_LIBS=""
+-fi
 -AC_CHECK_LIB([md], [SHA1Init], [HAVE_LIBMD=yes])
 -if test "x$with_sha1" = x && test "x$HAVE_LIBMD" = xyes; then
 -      with_sha1=libmd
@@ -680,3 +760,5 @@ index 0000000..ace7d97
 -
  PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
  PKG_CHECK_MODULES([XSERVERLIBS], [$REQUIRED_LIBS])
+
This page took 0.067908 seconds and 4 git commands to generate.