Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 651308
Collapse All | Expand All

(-)a/ext/openssl/openssl.c (-10 / +21 lines)
Lines 72-78 Link Here
72
#ifdef HAVE_OPENSSL_MD2_H
72
#ifdef HAVE_OPENSSL_MD2_H
73
#define OPENSSL_ALGO_MD2	4
73
#define OPENSSL_ALGO_MD2	4
74
#endif
74
#endif
75
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
75
#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
76
    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
76
#define OPENSSL_ALGO_DSS1	5
77
#define OPENSSL_ALGO_DSS1	5
77
#endif
78
#endif
78
#define OPENSSL_ALGO_SHA224 6
79
#define OPENSSL_ALGO_SHA224 6
Lines 564-570 Link Here
564
#endif
565
#endif
565
566
566
/* {{{ OpenSSL compatibility functions and macros */
567
/* {{{ OpenSSL compatibility functions and macros */
567
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
568
#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
569
    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
568
#define EVP_PKEY_get0_RSA(_pkey) _pkey->pkey.rsa
570
#define EVP_PKEY_get0_RSA(_pkey) _pkey->pkey.rsa
569
#define EVP_PKEY_get0_DH(_pkey) _pkey->pkey.dh
571
#define EVP_PKEY_get0_DH(_pkey) _pkey->pkey.dh
570
#define EVP_PKEY_get0_DSA(_pkey) _pkey->pkey.dsa
572
#define EVP_PKEY_get0_DSA(_pkey) _pkey->pkey.dsa
Lines 681-687 Link Here
681
	return M_ASN1_STRING_data(asn1);
683
	return M_ASN1_STRING_data(asn1);
682
}
684
}
683
685
684
#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined (LIBRESSL_VERSION_NUMBER)
686
#if OPENSSL_VERSION_NUMBER < 0x10002000L || \
687
    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
685
688
686
static int X509_get_signature_nid(const X509 *x)
689
static int X509_get_signature_nid(const X509 *x)
687
{
690
{
Lines 1241-1247 Link Here
1241
}
1244
}
1242
/* }}} */
1245
/* }}} */
1243
1246
1244
#if defined(PHP_WIN32) || (OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER))
1247
#if defined(PHP_WIN32) || (OPENSSL_VERSION_NUMBER >= 0x10100000L && \
1248
    !(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL))
1245
#define PHP_OPENSSL_RAND_ADD_TIME() ((void) 0)
1249
#define PHP_OPENSSL_RAND_ADD_TIME() ((void) 0)
1246
#else
1250
#else
1247
#define PHP_OPENSSL_RAND_ADD_TIME() php_openssl_rand_add_timeval()
1251
#define PHP_OPENSSL_RAND_ADD_TIME() php_openssl_rand_add_timeval()
Lines 1328-1334 Link Here
1328
			mdtype = (EVP_MD *) EVP_md2();
1332
			mdtype = (EVP_MD *) EVP_md2();
1329
			break;
1333
			break;
1330
#endif
1334
#endif
1331
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
1335
#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
1336
    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
1337
1332
		case OPENSSL_ALGO_DSS1:
1338
		case OPENSSL_ALGO_DSS1:
1333
			mdtype = (EVP_MD *) EVP_dss1();
1339
			mdtype = (EVP_MD *) EVP_dss1();
1334
			break;
1340
			break;
Lines 1416-1422 Link Here
1416
	le_x509 = zend_register_list_destructors_ex(php_openssl_x509_free, NULL, "OpenSSL X.509", module_number);
1422
	le_x509 = zend_register_list_destructors_ex(php_openssl_x509_free, NULL, "OpenSSL X.509", module_number);
1417
	le_csr = zend_register_list_destructors_ex(php_openssl_csr_free, NULL, "OpenSSL X.509 CSR", module_number);
1423
	le_csr = zend_register_list_destructors_ex(php_openssl_csr_free, NULL, "OpenSSL X.509 CSR", module_number);
1418
1424
1419
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
1425
#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
1426
    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
1420
	OPENSSL_config(NULL);
1427
	OPENSSL_config(NULL);
1421
	SSL_library_init();
1428
	SSL_library_init();
1422
	OpenSSL_add_all_ciphers();
1429
	OpenSSL_add_all_ciphers();
Lines 1459-1465 Link Here
1459
#ifdef HAVE_OPENSSL_MD2_H
1466
#ifdef HAVE_OPENSSL_MD2_H
1460
	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT);
1467
	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT);
1461
#endif
1468
#endif
1462
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
1469
#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
1470
    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
1463
	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT);
1471
	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT);
1464
#endif
1472
#endif
1465
	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT);
1473
	REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT);
Lines 1597-1603 Link Here
1597
 */
1605
 */
1598
PHP_MSHUTDOWN_FUNCTION(openssl)
1606
PHP_MSHUTDOWN_FUNCTION(openssl)
1599
{
1607
{
1600
#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
1608
#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
1609
    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
1601
	EVP_cleanup();
1610
	EVP_cleanup();
1602
1611
1603
	/* prevent accessing locking callback from unloaded extension */
1612
	/* prevent accessing locking callback from unloaded extension */
Lines 3642-3648 Link Here
3642
		RETURN_FALSE;
3651
		RETURN_FALSE;
3643
	}
3652
	}
3644
3653
3645
#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
3654
#if OPENSSL_VERSION_NUMBER >= 0x10100000L || \
3655
    (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)
3646
	/* Due to changes in OpenSSL 1.1 related to locking when decoding CSR,
3656
	/* Due to changes in OpenSSL 1.1 related to locking when decoding CSR,
3647
	 * the pub key is not changed after assigning. It means if we pass
3657
	 * the pub key is not changed after assigning. It means if we pass
3648
	 * a private key, it will be returned including the private part.
3658
	 * a private key, it will be returned including the private part.
Lines 3653-3659 Link Here
3653
	/* Retrieve the public key from the CSR */
3663
	/* Retrieve the public key from the CSR */
3654
	tpubkey = X509_REQ_get_pubkey(csr);
3664
	tpubkey = X509_REQ_get_pubkey(csr);
3655
3665
3656
#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
3666
#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \
3667
    !(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL)
3657
	/* We need to free the CSR as it was duplicated */
3668
	/* We need to free the CSR as it was duplicated */
3658
	X509_REQ_free(csr);
3669
	X509_REQ_free(csr);
3659
#endif
3670
#endif

Return to bug 651308