mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
ab56022864
salt generation code. He also urged using better random source and making possible to choose using bcrypt and xdes rounds more easily. So, here's patch: * For all salt generation, use Solar Designer's own code. This is mostly due fact that his code is more fit for get_random_bytes() style interface. * New function: gen_salt(type, rounds). This lets specify iteration count for algorithm. * random.c: px_get_random_bytes() function. Supported randomness soure: /dev/urandom, OpenSSL PRNG, libc random() Default: /dev/urandom. * Draft description of C API for pgcrypto functions. New files: API, crypt-gensalt.c, random.c Marko Kreen
101 lines
2.5 KiB
Makefile
101 lines
2.5 KiB
Makefile
#
|
|
# $Header: /cvsroot/pgsql/contrib/pgcrypto/Makefile,v 1.7 2001/09/23 04:12:44 momjian Exp $
|
|
#
|
|
|
|
subdir = contrib/pgcrypto
|
|
top_builddir = ../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
# either 'builtin', 'mhash', 'openssl'
|
|
cryptolib = builtin
|
|
|
|
# either 'builtin', 'system'
|
|
cryptsrc = builtin
|
|
|
|
# Random source, preferred order:
|
|
# 'dev' - read from random device
|
|
#
|
|
# 'openssl' - use openssl PRNG.
|
|
# Note that currently pgcrypto does not do any
|
|
# entropy feeding to it
|
|
# This works ofcouse only with cryptolib = openssl
|
|
#
|
|
# 'silly' - use libc random() - very weak
|
|
random = dev
|
|
random_dev = \"/dev/urandom\"
|
|
|
|
##########################
|
|
|
|
ifeq ($(cryptolib), builtin)
|
|
CRYPTO_CFLAGS =
|
|
CRYPTO_LDFLAGS =
|
|
SRCS = md5.c sha1.c internal.c blf.c rijndael.c
|
|
endif
|
|
|
|
ifeq ($(cryptolib), openssl)
|
|
CRYPTO_CFLAGS = -I/usr/include/openssl
|
|
CRYPTO_LDFLAGS = -lcrypto
|
|
SRCS = openssl.c
|
|
endif
|
|
|
|
ifeq ($(cryptolib), mhash)
|
|
CRYPTO_CFLAGS = -I/usr/local/include
|
|
CRYPTO_LDFLAGS = -L/usr/local/lib -lmcrypt -lmhash -lltdl
|
|
SRCS = mhash.c
|
|
endif
|
|
|
|
ifeq ($(cryptsrc), builtin)
|
|
SRCS += crypt-blowfish.c crypt-des.c crypt-md5.c
|
|
else
|
|
CRYPTO_CFLAGS += -DPX_SYSTEM_CRYPT
|
|
endif
|
|
|
|
ifeq ($(random), dev)
|
|
CRYPTO_CFLAGS += -DRAND_DEV=$(random_dev)
|
|
endif
|
|
ifeq ($(random), openssl)
|
|
CRYPTO_CFLAGS += -DRAND_OPENSSL
|
|
endif
|
|
ifeq ($(random), silly)
|
|
CRYPTO_CFLAGS += -DRAND_SILLY
|
|
endif
|
|
|
|
NAME := pgcrypto
|
|
SRCS += pgcrypto.c px.c px-hmac.c px-crypt.c misc.c \
|
|
crypt-gensalt.c random.c
|
|
OBJS := $(SRCS:.c=.o)
|
|
SHLIB_LINK := $(CRYPTO_LDFLAGS)
|
|
SO_MAJOR_VERSION = 0
|
|
SO_MINOR_VERSION = 1
|
|
|
|
override CPPFLAGS += $(CRYPTO_CFLAGS) -I$(srcdir)
|
|
override DLLLIBS := $(BE_DLLLIBS) $(DLLLIBS)
|
|
rpath :=
|
|
|
|
all: all-lib $(NAME).sql
|
|
|
|
include $(top_srcdir)/src/Makefile.shlib
|
|
|
|
$(NAME).sql: $(NAME).sql.in
|
|
sed 's,@MODULE_FILENAME@,$$libdir/$(NAME),g' $< >$@
|
|
|
|
rijndael.o: rijndael.tbl
|
|
|
|
rijndael.tbl:
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) -DPRINT_TABS rijndael.c -o gen-rtab
|
|
./gen-rtab > rijndael.tbl
|
|
|
|
install: all installdirs
|
|
$(INSTALL_SHLIB) $(shlib) $(DESTDIR)$(pkglibdir)/pgcrypto$(DLSUFFIX)
|
|
$(INSTALL_DATA) $(NAME).sql $(DESTDIR)$(datadir)/contrib/$(NAME).sql
|
|
$(INSTALL_DATA) README.$(NAME) $(DESTDIR)$(docdir)/contrib/README.$(NAME)
|
|
|
|
installdirs:
|
|
$(mkinstalldirs) $(pkglibdir) $(datadir)/contrib $(docdir)/contrib
|
|
|
|
uninstall: uninstall-lib
|
|
rm -f $(DESTDIR)$(pkglibdir)/pgcrypto$(DLSUFFIX) $(datadir)/contrib/$(NAME).sql $(docdir)/contrib/README.$(NAME)
|
|
|
|
clean distclean maintainer-clean: clean-lib
|
|
rm -f $(OBJS) $(NAME).sql gen-rtab
|