Function DES_ecb3_encrypt has unstable signature in OpenSSL. Different versions of OpenSSL have different argument types and it is not possible to pick right types by OpenSSL version.
Following patch silents compiler by forcing argument to (void *). Index: pgsql/contrib/pgcrypto/openssl.c =================================================================== *** pgsql.orig/contrib/pgcrypto/openssl.c --- pgsql/contrib/pgcrypto/openssl.c *************** ossl_des3_ecb_encrypt(PX_Cipher * c, con *** 526,532 **** ossldata *od = c->ptr; for (i = 0; i < dlen / bs; i++) ! DES_ecb3_encrypt(data + i * bs, res + i * bs, &od->u.des3.k1, &od->u.des3.k2, &od->u.des3.k3, 1); return 0; } --- 526,532 ---- ossldata *od = c->ptr; for (i = 0; i < dlen / bs; i++) ! DES_ecb3_encrypt((void *)(data + i * bs), (void *)(res + i * bs), &od->u.des3.k1, &od->u.des3.k2, &od->u.des3.k3, 1); return 0; } *************** ossl_des3_ecb_decrypt(PX_Cipher * c, con *** 540,546 **** ossldata *od = c->ptr; for (i = 0; i < dlen / bs; i++) ! DES_ecb3_encrypt(data + i * bs, res + i * bs, &od->u.des3.k1, &od->u.des3.k2, &od->u.des3.k3, 0); return 0; } --- 540,546 ---- ossldata *od = c->ptr; for (i = 0; i < dlen / bs; i++) ! DES_ecb3_encrypt((void *)(data + i * bs), (void *)(res + i * bs), &od->u.des3.k1, &od->u.des3.k2, &od->u.des3.k3, 0); return 0; } -- ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org