ports/security/ike/files/patch-source_iked_crypto.cpp
Alexey Dokuchaev ecefd5a2c1 - Unbreak the build against modern OpenSSL versions
- Remove useless line from the port description
2021-03-18 08:49:41 +00:00

100 lines
2.3 KiB
C++

--- source/iked/crypto.cpp.orig 2012-12-11 06:56:33 UTC
+++ source/iked/crypto.cpp
@@ -376,10 +376,6 @@ bool dh_init( long group, DH ** dh_data, long * dh_siz
if( dh == NULL )
return false;
- dh->p = NULL;
- dh->g = NULL;
- dh->length = 0;
-
//
// set p ( prime ) value
//
@@ -387,49 +383,50 @@ bool dh_init( long group, DH ** dh_data, long * dh_siz
unsigned char * p_data = NULL;
size_t p_size = 0;
- dh->p = BN_new();
- if( dh->p == NULL )
+ BIGNUM *p = BN_new();
+ BIGNUM *g = BN_new();
+ if( p == NULL || g == NULL )
goto dh_failed;
switch( group )
{
case 1:
- if( !BN_bin2bn( group1, sizeof( group1 ), dh->p ) )
+ if( !BN_bin2bn( group1, sizeof( group1 ), p ) )
goto dh_failed;
break;
case 2:
- if( !BN_bin2bn( group2, sizeof( group2 ), dh->p ) )
+ if( !BN_bin2bn( group2, sizeof( group2 ), p ) )
goto dh_failed;
break;
case 5:
- if( !BN_bin2bn( group5, sizeof( group5 ), dh->p ) )
+ if( !BN_bin2bn( group5, sizeof( group5 ), p ) )
goto dh_failed;
break;
case 14:
- if( !BN_bin2bn( group14, sizeof( group14 ), dh->p ) )
+ if( !BN_bin2bn( group14, sizeof( group14 ), p ) )
goto dh_failed;
break;
case 15:
- if( !BN_bin2bn( group15, sizeof( group15 ), dh->p ) )
+ if( !BN_bin2bn( group15, sizeof( group15 ), p ) )
goto dh_failed;
break;
case 16:
- if( !BN_bin2bn( group16, sizeof( group16 ), dh->p ) )
+ if( !BN_bin2bn( group16, sizeof( group16 ), p ) )
goto dh_failed;
break;
case 17:
- if( !BN_bin2bn( group17, sizeof( group17 ), dh->p ) )
+ if( !BN_bin2bn( group17, sizeof( group17 ), p ) )
goto dh_failed;
break;
case 18:
- if( !BN_bin2bn( group18, sizeof( group18 ), dh->p ) )
+ if( !BN_bin2bn( group18, sizeof( group18 ), p ) )
goto dh_failed;
break;
@@ -441,13 +438,11 @@ bool dh_init( long group, DH ** dh_data, long * dh_siz
// set g ( generator ) value
//
- dh->g = BN_new();
- if( dh->g == NULL )
+ if( !BN_set_word( g, 2 ) )
goto dh_failed;
- if( !BN_set_word( dh->g, 2 ) )
- goto dh_failed;
-
+ DH_set0_pqg(dh, p, NULL, g);
+
//
// generate private and public DH values
//
@@ -456,7 +451,7 @@ bool dh_init( long group, DH ** dh_data, long * dh_siz
goto dh_failed;
*dh_data = dh;
- *dh_size = BN_num_bytes( dh->p );
+ *dh_size = BN_num_bytes( DH_get0_p( dh ) );
return true;