mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-03 08:00:21 +08:00
5ee76ac8c0
> Postgres 7.1.0), and I think I've found a bug. > > I compiled Pgcrypto with OpenSSL, using gcc 2.95.4 and > OpenSSL 0.9.6a (the latest Debian 'unstable' packages). > web=> select encode(digest('blah', 'sha1'), 'base64'); > FATAL 1: pg_encode: overflow, encode estimate too small > pqReadData() -- backend closed the channel unexpectedly. > This probably means the backend terminated abnormally > before or while processing the request. > The connection to the server was lost. Attempting reset: Succeeded. > Is this a bug? Can it be fixed? This is a bug alright. And a silly one :) Marko Kreen |
||
---|---|---|
.. | ||
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.