Skip failing tests when EC unavailable (RHEL)

This commit is contained in:
Daniel Lowrey 2014-02-19 03:57:37 -07:00
parent a289b37f48
commit 633f898f15
3 changed files with 10 additions and 4 deletions

View file

@ -78,6 +78,10 @@
#endif #endif
#define DEBUG_SMIME 0 #define DEBUG_SMIME 0
#if !defined(OPENSSL_NO_EC) && defined(EVP_PKEY_EC)
#define HAVE_EVP_PKEY_EC 1
#endif
/* FIXME: Use the openssl constants instead of /* FIXME: Use the openssl constants instead of
* enum. It is now impossible to match real values * enum. It is now impossible to match real values
* against php constants. Also sorry to break the * against php constants. Also sorry to break the
@ -88,7 +92,7 @@ enum php_openssl_key_type {
OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DSA,
OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_DH,
OPENSSL_KEYTYPE_DEFAULT = OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DEFAULT = OPENSSL_KEYTYPE_RSA,
#ifdef EVP_PKEY_EC #ifdef HAVE_EVP_PKEY_EC
OPENSSL_KEYTYPE_EC = OPENSSL_KEYTYPE_DH +1 OPENSSL_KEYTYPE_EC = OPENSSL_KEYTYPE_DH +1
#endif #endif
}; };
@ -1116,7 +1120,7 @@ PHP_MINIT_FUNCTION(openssl)
REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DSA", OPENSSL_KEYTYPE_DSA, CONST_CS|CONST_PERSISTENT); REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DSA", OPENSSL_KEYTYPE_DSA, CONST_CS|CONST_PERSISTENT);
#endif #endif
REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DH", OPENSSL_KEYTYPE_DH, CONST_CS|CONST_PERSISTENT); REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_DH", OPENSSL_KEYTYPE_DH, CONST_CS|CONST_PERSISTENT);
#ifdef EVP_PKEY_EC #ifdef HAVE_EVP_PKEY_EC
REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_EC", OPENSSL_KEYTYPE_EC, CONST_CS|CONST_PERSISTENT); REGISTER_LONG_CONSTANT("OPENSSL_KEYTYPE_EC", OPENSSL_KEYTYPE_EC, CONST_CS|CONST_PERSISTENT);
#endif #endif
@ -3014,7 +3018,7 @@ static int php_openssl_is_private_key(EVP_PKEY* pkey TSRMLS_DC)
} }
break; break;
#endif #endif
#if OPENSSL_VERSION_NUMBER >= 0x0090800fL && !defined(OPENSSL_NO_EC) && defined(EVP_PKEY_EC) #ifdef HAVE_EVP_PKEY_EC
case EVP_PKEY_EC: case EVP_PKEY_EC:
assert(pkey->pkey.ec != NULL); assert(pkey->pkey.ec != NULL);
@ -3423,7 +3427,7 @@ PHP_FUNCTION(openssl_pkey_get_details)
} }
break; break;
#ifdef EVP_PKEY_EC #ifdef HAVE_EVP_PKEY_EC
case EVP_PKEY_EC: case EVP_PKEY_EC:
ktype = OPENSSL_KEYTYPE_EC; ktype = OPENSSL_KEYTYPE_EC;
break; break;

View file

@ -3,6 +3,7 @@ Bug #64802: openssl_x509_parse fails to parse subject properly in some cases
--SKIPIF-- --SKIPIF--
<?php <?php
if (!extension_loaded("openssl")) die("skip"); if (!extension_loaded("openssl")) die("skip");
if (!defined(OPENSSL_KEYTYPE_EC)) die("skip no EC available);
?> ?>
--FILE-- --FILE--
<?php <?php

View file

@ -3,6 +3,7 @@ Bug #66501: EC private key support in openssl_sign
--SKIPIF-- --SKIPIF--
<?php <?php
if (!extension_loaded("openssl")) die("skip"); if (!extension_loaded("openssl")) die("skip");
if (!defined(OPENSSL_KEYTYPE_EC)) die("skip no EC available);
--FILE-- --FILE--
<?php <?php
$pkey = 'ASN1 OID: prime256v1 $pkey = 'ASN1 OID: prime256v1