26
26
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
27
* SUCH DAMAGE.
28
28
*
29
- * $PostgreSQL: pgsql/contrib/pgcrypto/openssl.c,v 1.21 2005/07/10 03:55:28 momjian Exp $
29
+ * $PostgreSQL: pgsql/contrib/pgcrypto/openssl.c,v 1.22 2005/07/10 13:54:34 momjian Exp $
30
30
*/
31
31
32
32
#include <postgres.h>
50
50
#include <openssl/aes.h>
51
51
#endif
52
52
53
+ /*
54
+ * Compatibility with older OpenSSL API for DES.
55
+ */
56
+ #if OPENSSL_VERSION_NUMBER < 0x00907000L
57
+ #define DES_key_schedule des_key_schedule
58
+ #define DES_cblock des_cblock
59
+ #define DES_set_key (k , ks ) \
60
+ des_set_key((k), *(ks))
61
+ #define DES_ecb_encrypt (i , o , k , e ) \
62
+ des_ecb_encrypt((i), (o), *(k), (e))
63
+ #define DES_ncbc_encrypt (i , o , l , k , iv , e ) \
64
+ des_ncbc_encrypt((i), (o), (l), *(k), (iv), (e))
65
+ #define DES_ecb3_encrypt (i , o , k1 , k2 , k3 , e ) \
66
+ des_ecb3_encrypt((des_cblock *)(i), (des_cblock *)(o), \
67
+ *(k1), *(k2), *(k3), (e))
68
+ #define DES_ede3_cbc_encrypt (i , o , l , k1 , k2 , k3 , iv , e ) \
69
+ des_ede3_cbc_encrypt((i), (o), \
70
+ (l), *(k1), *(k2), *(k3), (iv), (e))
71
+ #endif
72
+
53
73
/*
54
74
* Hashes
55
75
*/
@@ -178,11 +198,11 @@ typedef struct
178
198
} bf ;
179
199
struct
180
200
{
181
- des_key_schedule key_schedule ;
201
+ DES_key_schedule key_schedule ;
182
202
} des ;
183
203
struct
184
204
{
185
- des_key_schedule k1 , k2 , k3 ;
205
+ DES_key_schedule k1 , k2 , k3 ;
186
206
} des3 ;
187
207
CAST_KEY cast_key ;
188
208
#ifdef GOT_AES
@@ -318,11 +338,11 @@ static int
318
338
ossl_des_init (PX_Cipher * c , const uint8 * key , unsigned klen , const uint8 * iv )
319
339
{
320
340
ossldata * od = c -> ptr ;
321
- des_cblock xkey ;
341
+ DES_cblock xkey ;
322
342
323
343
memset (& xkey , 0 , sizeof (xkey ));
324
344
memcpy (& xkey , key , klen > 8 ? 8 : klen );
325
- des_set_key (& xkey , od -> u .des .key_schedule );
345
+ DES_set_key (& xkey , & od -> u .des .key_schedule );
326
346
memset (& xkey , 0 , sizeof (xkey ));
327
347
328
348
if (iv )
@@ -341,9 +361,9 @@ ossl_des_ecb_encrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
341
361
ossldata * od = c -> ptr ;
342
362
343
363
for (i = 0 ; i < dlen / bs ; i ++ )
344
- des_ecb_encrypt (( des_cblock * ) (data + i * bs ),
345
- (des_cblock * ) (res + i * bs ),
346
- od -> u .des .key_schedule , 1 );
364
+ DES_ecb_encrypt (( DES_cblock * ) (data + i * bs ),
365
+ (DES_cblock * ) (res + i * bs ),
366
+ & od -> u .des .key_schedule , 1 );
347
367
return 0 ;
348
368
}
349
369
@@ -356,9 +376,9 @@ ossl_des_ecb_decrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
356
376
ossldata * od = c -> ptr ;
357
377
358
378
for (i = 0 ; i < dlen / bs ; i ++ )
359
- des_ecb_encrypt (( des_cblock * ) (data + i * bs ),
360
- (des_cblock * ) (res + i * bs ),
361
- od -> u .des .key_schedule , 0 );
379
+ DES_ecb_encrypt (( DES_cblock * ) (data + i * bs ),
380
+ (DES_cblock * ) (res + i * bs ),
381
+ & od -> u .des .key_schedule , 0 );
362
382
return 0 ;
363
383
}
364
384
@@ -368,8 +388,8 @@ ossl_des_cbc_encrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
368
388
{
369
389
ossldata * od = c -> ptr ;
370
390
371
- des_ncbc_encrypt (data , res , dlen , od -> u .des .key_schedule ,
372
- (des_cblock * ) od -> iv , 1 );
391
+ DES_ncbc_encrypt (data , res , dlen , & od -> u .des .key_schedule ,
392
+ (DES_cblock * ) od -> iv , 1 );
373
393
return 0 ;
374
394
}
375
395
@@ -379,8 +399,8 @@ ossl_des_cbc_decrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
379
399
{
380
400
ossldata * od = c -> ptr ;
381
401
382
- des_ncbc_encrypt (data , res , dlen , od -> u .des .key_schedule ,
383
- (des_cblock * ) od -> iv , 0 );
402
+ DES_ncbc_encrypt (data , res , dlen , & od -> u .des .key_schedule ,
403
+ (DES_cblock * ) od -> iv , 0 );
384
404
return 0 ;
385
405
}
386
406
@@ -390,7 +410,7 @@ static int
390
410
ossl_des3_init (PX_Cipher * c , const uint8 * key , unsigned klen , const uint8 * iv )
391
411
{
392
412
ossldata * od = c -> ptr ;
393
- des_cblock xkey1 ,
413
+ DES_cblock xkey1 ,
394
414
xkey2 ,
395
415
xkey3 ;
396
416
@@ -453,7 +473,7 @@ ossl_des3_cbc_encrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
453
473
454
474
DES_ede3_cbc_encrypt (data , res , dlen ,
455
475
& od -> u .des3 .k1 , & od -> u .des3 .k2 , & od -> u .des3 .k3 ,
456
- (des_cblock * ) od -> iv , 1 );
476
+ (DES_cblock * ) od -> iv , 1 );
457
477
return 0 ;
458
478
}
459
479
@@ -465,7 +485,7 @@ ossl_des3_cbc_decrypt(PX_Cipher * c, const uint8 *data, unsigned dlen,
465
485
466
486
DES_ede3_cbc_encrypt (data , res , dlen ,
467
487
& od -> u .des3 .k1 , & od -> u .des3 .k2 , & od -> u .des3 .k3 ,
468
- (des_cblock * ) od -> iv , 0 );
488
+ (DES_cblock * ) od -> iv , 0 );
469
489
return 0 ;
470
490
}
471
491
0 commit comments