558fae16e3
Cygwin with the possible exception of mSQL-interface. Since I don't have mSQL installed, I skipped this tool. Except for dealing with a missing getopt.h (oid2name) and HUGE (seg), the bulk of the patch uses the standard PostgreSQL approach to deal with Windows DLL issues. I tested the build aspect of this patch under Cygwin and Linux without any ill affects. Note that I did not actually attempt to test the code for functionality. The procedure to apply the patch is as follows: $ # save the attachment as /tmp/contrib.patch $ # change directory to the top of the PostgreSQL source tree $ patch -p0 </tmp/contrib.patch Jason |
||
---|---|---|
.. | ||
encode.c | ||
encode.h | ||
internal.c | ||
krb.c | ||
Makefile | ||
md5.c | ||
md5.h | ||
mhash.c | ||
openssl.c | ||
pgcrypto.c | ||
pgcrypto.h | ||
pgcrypto.sql.in | ||
README.pgcrypto | ||
sha1.c | ||
sha1.h |
DESCRIPTION Here are various cryptographic and otherwise useful functions for PostgreSQL. encode(data, type) encodes binary data into ASCII-only representation. Types supported are 'hex' and 'base64'. decode(data, type) decodes the data processed by encode() digest(data::text, hash_name::text) which returns cryptographic checksum over data by specified algorithm. eg > select encode(digest('blah', 'sha1'), 'hex'); 5bf1fd927dfb8679496a2e6cf00cbe50c1c87145 digest_exists(hash_name::text)::bool which reports if particular hash type exists. If any of arguments are NULL they return NULL. HASHES For choosing library you must edit Makefile. standalone (default): MD5, SHA1 (the code is from KAME project. Actually I hate code duplication, but I also want to quarantee that MD5 and SHA1 exist) mhash (0.8.1): MD5, SHA1, CRC32, CRC32B, GOST, TIGER, RIPEMD160, HAVAL(256,224,192,160,128) openssl: MD5, SHA1, RIPEMD160, MD2 kerberos5 (heimdal): MD5, SHA1 ENCRYPTION There is experimental version out with encryption, HMAC and UN*X crypt() support in http://www.l-t.ee/marko/pgsql/ Current latest release is pgcrypto-0.3.tar.gz.