summaryrefslogtreecommitdiff
path: root/ext/openssl/openssl.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/openssl/openssl.c')
-rw-r--r--ext/openssl/openssl.c76
1 files changed, 57 insertions, 19 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 7d40c85882..fc1cdfa5fd 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -1850,7 +1850,9 @@ PHP_FUNCTION(openssl_spki_new)
pkey = php_openssl_evp_from_zval(zpkey, 0, challenge, challenge_len, 1, &keyresource);
if (pkey == NULL) {
- php_error_docref(NULL, E_WARNING, "Unable to use supplied private key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "Unable to use supplied private key");
+ }
goto cleanup;
}
@@ -2855,7 +2857,9 @@ PHP_FUNCTION(openssl_pkcs12_export_to_file)
}
priv_key = php_openssl_evp_from_zval(zpkey, 0, "", 0, 1, &keyresource);
if (priv_key == NULL) {
- php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3");
+ }
goto cleanup;
}
if (!X509_check_private_key(cert, priv_key)) {
@@ -2948,7 +2952,9 @@ PHP_FUNCTION(openssl_pkcs12_export)
}
priv_key = php_openssl_evp_from_zval(zpkey, 0, "", 0, 1, &keyresource);
if (priv_key == NULL) {
- php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3");
+ }
goto cleanup;
}
if (!X509_check_private_key(cert, priv_key)) {
@@ -3357,7 +3363,9 @@ PHP_FUNCTION(openssl_csr_export_to_file)
csr = php_openssl_csr_from_zval(zcsr, 0, &csr_resource);
if (csr == NULL) {
- php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1");
+ }
return;
}
@@ -3406,7 +3414,9 @@ PHP_FUNCTION(openssl_csr_export)
csr = php_openssl_csr_from_zval(zcsr, 0, &csr_resource);
if (csr == NULL) {
- php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1");
+ }
return;
}
@@ -3457,7 +3467,9 @@ PHP_FUNCTION(openssl_csr_sign)
csr = php_openssl_csr_from_zval(zcsr, 0, &csr_resource);
if (csr == NULL) {
- php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1");
+ }
return;
}
if (zcert) {
@@ -3469,7 +3481,9 @@ PHP_FUNCTION(openssl_csr_sign)
}
priv_key = php_openssl_evp_from_zval(zpkey, 0, "", 0, 1, &keyresource);
if (priv_key == NULL) {
- php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3");
+ }
goto cleanup;
}
if (cert && !X509_check_private_key(cert, priv_key)) {
@@ -4581,7 +4595,9 @@ PHP_FUNCTION(openssl_pkey_export_to_file)
key = php_openssl_evp_from_zval(zpkey, 0, passphrase, passphrase_len, 0, &key_resource);
if (key == NULL) {
- php_error_docref(NULL, E_WARNING, "cannot get key from parameter 1");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "cannot get key from parameter 1");
+ }
RETURN_FALSE;
}
@@ -4666,7 +4682,9 @@ PHP_FUNCTION(openssl_pkey_export)
key = php_openssl_evp_from_zval(zpkey, 0, passphrase, passphrase_len, 0, &key_resource);
if (key == NULL) {
- php_error_docref(NULL, E_WARNING, "cannot get key from parameter 1");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "cannot get key from parameter 1");
+ }
RETURN_FALSE;
}
@@ -5545,7 +5563,9 @@ PHP_FUNCTION(openssl_pkcs7_sign)
privkey = php_openssl_evp_from_zval(zprivkey, 0, "", 0, 0, &keyresource);
if (privkey == NULL) {
- php_error_docref(NULL, E_WARNING, "error getting private key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "error getting private key");
+ }
goto clean_exit;
}
@@ -5657,7 +5677,9 @@ PHP_FUNCTION(openssl_pkcs7_decrypt)
key = php_openssl_evp_from_zval(recipkey ? recipkey : recipcert, 0, "", 0, 0, &keyresval);
if (key == NULL) {
- php_error_docref(NULL, E_WARNING, "unable to get private key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "unable to get private key");
+ }
goto clean_exit;
}
@@ -5725,7 +5747,9 @@ PHP_FUNCTION(openssl_private_encrypt)
pkey = php_openssl_evp_from_zval(key, 0, "", 0, 0, &keyresource);
if (pkey == NULL) {
- php_error_docref(NULL, E_WARNING, "key param is not a valid private key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "key param is not a valid private key");
+ }
RETURN_FALSE;
}
@@ -5786,7 +5810,9 @@ PHP_FUNCTION(openssl_private_decrypt)
pkey = php_openssl_evp_from_zval(key, 0, "", 0, 0, &keyresource);
if (pkey == NULL) {
- php_error_docref(NULL, E_WARNING, "key parameter is not a valid private key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "key parameter is not a valid private key");
+ }
RETURN_FALSE;
}
@@ -5853,7 +5879,9 @@ PHP_FUNCTION(openssl_public_encrypt)
pkey = php_openssl_evp_from_zval(key, 1, NULL, 0, 0, &keyresource);
if (pkey == NULL) {
- php_error_docref(NULL, E_WARNING, "key parameter is not a valid public key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "key parameter is not a valid public key");
+ }
RETURN_FALSE;
}
@@ -5915,7 +5943,9 @@ PHP_FUNCTION(openssl_public_decrypt)
pkey = php_openssl_evp_from_zval(key, 1, NULL, 0, 0, &keyresource);
if (pkey == NULL) {
- php_error_docref(NULL, E_WARNING, "key parameter is not a valid public key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "key parameter is not a valid public key");
+ }
RETURN_FALSE;
}
@@ -6014,7 +6044,9 @@ PHP_FUNCTION(openssl_sign)
}
pkey = php_openssl_evp_from_zval(key, 0, "", 0, 0, &keyresource);
if (pkey == NULL) {
- php_error_docref(NULL, E_WARNING, "supplied key param cannot be coerced into a private key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "supplied key param cannot be coerced into a private key");
+ }
RETURN_FALSE;
}
@@ -6099,7 +6131,9 @@ PHP_FUNCTION(openssl_verify)
pkey = php_openssl_evp_from_zval(key, 1, NULL, 0, 0, &keyresource);
if (pkey == NULL) {
- php_error_docref(NULL, E_WARNING, "supplied key param cannot be coerced into a public key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "supplied key param cannot be coerced into a public key");
+ }
RETURN_FALSE;
}
@@ -6179,7 +6213,9 @@ PHP_FUNCTION(openssl_seal)
ZEND_HASH_FOREACH_VAL(pubkeysht, pubkey) {
pkeys[i] = php_openssl_evp_from_zval(pubkey, 1, NULL, 0, 0, &key_resources[i]);
if (pkeys[i] == NULL) {
- php_error_docref(NULL, E_WARNING, "not a public key (%dth member of pubkeys)", i+1);
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "not a public key (%dth member of pubkeys)", i+1);
+ }
RETVAL_FALSE;
goto clean_exit;
}
@@ -6277,7 +6313,9 @@ PHP_FUNCTION(openssl_open)
pkey = php_openssl_evp_from_zval(privkey, 0, "", 0, 0, &keyresource);
if (pkey == NULL) {
- php_error_docref(NULL, E_WARNING, "unable to coerce parameter 4 into a private key");
+ if (!EG(exception)) {
+ php_error_docref(NULL, E_WARNING, "unable to coerce parameter 4 into a private key");
+ }
RETURN_FALSE;
}