misc.c annoys me and creates unnecesary inter-dependencies just
for sharing a couple of bytes.  This patch splits it out
to crypt-md5.c and crypt-des.c

Please do 'cvs remove misc.c' after applying this patch.

Index: pgsql/contrib/pgcrypto/Makefile
===================================================================
*** pgsql.orig/contrib/pgcrypto/Makefile
--- pgsql/contrib/pgcrypto/Makefile
*************** CF_PGP_TESTS = $(if $(subst no,,$(with_z
*** 23,29 ****
  
  PG_CPPFLAGS   = $(CF_CFLAGS)
  
! SRCS          = pgcrypto.c px.c px-hmac.c px-crypt.c misc.c \
                crypt-gensalt.c crypt-blowfish.c crypt-des.c \
                crypt-md5.c $(CF_SRCS) \
                mbuf.c pgp.c pgp-armor.c pgp-cfb.c pgp-compress.c \
--- 23,29 ----
  
  PG_CPPFLAGS   = $(CF_CFLAGS)
  
! SRCS          = pgcrypto.c px.c px-hmac.c px-crypt.c \
                crypt-gensalt.c crypt-blowfish.c crypt-des.c \
                crypt-md5.c $(CF_SRCS) \
                mbuf.c pgp.c pgp-armor.c pgp-cfb.c pgp-compress.c \
Index: pgsql/contrib/pgcrypto/crypt-des.c
===================================================================
*** pgsql.orig/contrib/pgcrypto/crypt-des.c
--- pgsql/contrib/pgcrypto/crypt-des.c
***************
*** 71,76 ****
--- 71,79 ----
  
  #define _PASSWORD_EFMT1 '_'
  
+ static const char _crypt_a64[] =
+ "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ 
  static uint8 IP[64] = {
        58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,
        62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,
Index: pgsql/contrib/pgcrypto/crypt-md5.c
===================================================================
*** pgsql.orig/contrib/pgcrypto/crypt-md5.c
--- pgsql/contrib/pgcrypto/crypt-md5.c
***************
*** 17,22 ****
--- 17,36 ----
  #include "px-crypt.h"
  
  #define MD5_SIZE 16
+ 
+ static const char _crypt_a64[] =
+ "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ 
+ static void
+ _crypt_to64(char *s, unsigned long v, int n)
+ {
+       while (--n >= 0)
+       {
+               *s++ = _crypt_a64[v & 0x3f];
+               v >>= 6;
+       }
+ }
+ 
  /*
   * UNIX password
   */
Index: pgsql/contrib/pgcrypto/px-crypt.h
===================================================================
*** pgsql.orig/contrib/pgcrypto/px-crypt.h
--- pgsql/contrib/pgcrypto/px-crypt.h
*************** int                     px_gen_salt(const char *salt_type,
*** 55,68 ****
   * internal functions
   */
  
- /* misc.c */
- extern void px_crypt_to64(char *s, unsigned long v, int n);
- extern char px_crypt_a64[];
- 
- /* avoid conflicts with system libs */
- #define _crypt_to64 px_crypt_to64
- #define _crypt_a64 px_crypt_a64
- 
  /* crypt-gensalt.c */
  char *_crypt_gensalt_traditional_rn(unsigned long count,
                                 const char *input, int size, char *output, int 
output_size);
--- 55,60 ----
Index: pgsql/contrib/pgcrypto/crypt-gensalt.c
===================================================================
*** pgsql.orig/contrib/pgcrypto/crypt-gensalt.c
--- pgsql/contrib/pgcrypto/crypt-gensalt.c
***************
*** 19,25 ****
  
  typedef unsigned int BF_word;
  
! unsigned char _crypt_itoa64[64 + 1] =
  "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  
  char *
--- 19,25 ----
  
  typedef unsigned int BF_word;
  
! static unsigned char _crypt_itoa64[64 + 1] =
  "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  
  char *
Index: pgsql/contrib/pgcrypto/misc.c
===================================================================
*** pgsql.orig/contrib/pgcrypto/misc.c
--- /dev/null
***************
*** 1,51 ****
- /*
-  * Copyright (c) 1999
-  *            University of California.  All rights reserved.
-  *
-  * $PostgreSQL: pgsql/contrib/pgcrypto/misc.c,v 1.3 2006/03/11 04:38:30 
momjian Exp $
-  *
-  * Redistribution and use in source and binary forms, with or without
-  * modification, are permitted provided that the following conditions
-  * are met:
-  * 1. Redistributions of source code must retain the above copyright
-  *      notice, this list of conditions and the following disclaimer.
-  * 2. Redistributions in binary form must reproduce the above copyright
-  *      notice, this list of conditions and the following disclaimer in the
-  *      documentation and/or other materials provided with the distribution.
-  * 3. Neither the name of the author nor the names of any co-contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
-  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  * ARE DISCLAIMED. IN NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY
-  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  * $FreeBSD: src/lib/libcrypt/misc.c,v 1.1 1999/09/20 12:45:49 markm Exp $
-  *
-  */
- 
- #include "px-crypt.h"
- 
- char          px_crypt_a64[] =
- "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- 
- /* 0000000000111111111122222222223333333333444444444455555555556666 */
- /* 0123456789012345678901234567890123456789012345678901234567890123 */
- 
- void
- px_crypt_to64(char *s, unsigned long v, int n)
- {
-       while (--n >= 0)
-       {
-               *s++ = px_crypt_a64[v & 0x3f];
-               v >>= 6;
-       }
- }
--- 0 ----

--

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to