Index: contrib/pgcrypto/openssl.c =================================================================== RCS file: /opt/arc/cvs2/pgsql/contrib/pgcrypto/openssl.c,v retrieving revision 1.20 diff -u -c -r1.20 openssl.c *** contrib/pgcrypto/openssl.c 5 Jul 2005 18:15:36 -0000 1.20 --- contrib/pgcrypto/openssl.c 7 Jul 2005 09:18:37 -0000 *************** *** 48,53 **** --- 48,73 ---- #endif /* + * Compatibility with older OpenSSL API for DES. + */ + #if OPENSSL_VERSION_NUMBER < 0x00907000L + #define DES_key_schedule des_key_schedule + #define DES_cblock des_cblock + #define DES_set_key(k, ks) \ + des_set_key((k), *(ks)) + #define DES_ecb_encrypt(i, o, k, e) \ + des_ecb_encrypt((i), (o), *(k), (e)) + #define DES_ncbc_encrypt(i, o, l, k, iv, e) \ + des_ncbc_encrypt((i), (o), (l), *(k), (iv), (e)) + #define DES_ecb3_encrypt(i, o, k1, k2, k3, e) \ + des_ecb3_encrypt((des_cblock *)(i), (des_cblock *)(o), \ + *(k1), *(k2), *(k3), (e)) + #define DES_ede3_cbc_encrypt(i, o, l, k1, k2, k3, iv, e) \ + des_ede3_cbc_encrypt((i), (o), \ + (l), *(k1), *(k2), *(k3), (iv), (e)) + #endif + + /* * Hashes */ static unsigned *************** *** 175,185 **** } bf; struct { ! des_key_schedule key_schedule; } des; struct { ! des_key_schedule k1, k2, k3; } des3; CAST_KEY cast_key; #ifdef GOT_AES --- 195,205 ---- } bf; struct { ! DES_key_schedule key_schedule; } des; struct { ! DES_key_schedule k1, k2, k3; } des3; CAST_KEY cast_key; #ifdef GOT_AES *************** *** 315,325 **** ossl_des_init(PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv) { ossldata *od = c->ptr; ! des_cblock xkey; memset(&xkey, 0, sizeof(xkey)); memcpy(&xkey, key, klen > 8 ? 8 : klen); ! des_set_key(&xkey, od->u.des.key_schedule); memset(&xkey, 0, sizeof(xkey)); if (iv) --- 335,345 ---- ossl_des_init(PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv) { ossldata *od = c->ptr; ! DES_cblock xkey; memset(&xkey, 0, sizeof(xkey)); memcpy(&xkey, key, klen > 8 ? 8 : klen); ! DES_set_key(&xkey, &od->u.des.key_schedule); memset(&xkey, 0, sizeof(xkey)); if (iv) *************** *** 338,346 **** ossldata *od = c->ptr; for (i = 0; i < dlen / bs; i++) ! des_ecb_encrypt((des_cblock *) (data + i * bs), ! (des_cblock *) (res + i * bs), ! od->u.des.key_schedule, 1); return 0; } --- 358,366 ---- ossldata *od = c->ptr; for (i = 0; i < dlen / bs; i++) ! DES_ecb_encrypt((DES_cblock *) (data + i * bs), ! (DES_cblock *) (res + i * bs), ! &od->u.des.key_schedule, 1); return 0; } *************** *** 353,361 **** ossldata *od = c->ptr; for (i = 0; i < dlen / bs; i++) ! des_ecb_encrypt((des_cblock *) (data + i * bs), ! (des_cblock *) (res + i * bs), ! od->u.des.key_schedule, 0); return 0; } --- 373,381 ---- ossldata *od = c->ptr; for (i = 0; i < dlen / bs; i++) ! DES_ecb_encrypt((DES_cblock *) (data + i * bs), ! (DES_cblock *) (res + i * bs), ! &od->u.des.key_schedule, 0); return 0; } *************** *** 365,372 **** { ossldata *od = c->ptr; ! des_ncbc_encrypt(data, res, dlen, od->u.des.key_schedule, ! (des_cblock *) od->iv, 1); return 0; } --- 385,392 ---- { ossldata *od = c->ptr; ! DES_ncbc_encrypt(data, res, dlen, &od->u.des.key_schedule, ! (DES_cblock *) od->iv, 1); return 0; } *************** *** 376,383 **** { ossldata *od = c->ptr; ! des_ncbc_encrypt(data, res, dlen, od->u.des.key_schedule, ! (des_cblock *) od->iv, 0); return 0; } --- 396,403 ---- { ossldata *od = c->ptr; ! DES_ncbc_encrypt(data, res, dlen, &od->u.des.key_schedule, ! (DES_cblock *) od->iv, 0); return 0; } *************** *** 387,393 **** ossl_des3_init(PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv) { ossldata *od = c->ptr; ! des_cblock xkey1, xkey2, xkey3; --- 407,413 ---- ossl_des3_init(PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv) { ossldata *od = c->ptr; ! DES_cblock xkey1, xkey2, xkey3; *************** *** 450,456 **** DES_ede3_cbc_encrypt(data, res, dlen, &od->u.des3.k1, &od->u.des3.k2, &od->u.des3.k3, ! (des_cblock *) od->iv, 1); return 0; } --- 470,476 ---- DES_ede3_cbc_encrypt(data, res, dlen, &od->u.des3.k1, &od->u.des3.k2, &od->u.des3.k3, ! (DES_cblock *) od->iv, 1); return 0; } *************** *** 462,468 **** DES_ede3_cbc_encrypt(data, res, dlen, &od->u.des3.k1, &od->u.des3.k2, &od->u.des3.k3, ! (des_cblock *) od->iv, 0); return 0; } --- 482,488 ---- DES_ede3_cbc_encrypt(data, res, dlen, &od->u.des3.k1, &od->u.des3.k2, &od->u.des3.k3, ! (DES_cblock *) od->iv, 0); return 0; }