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 8cf294b361..31c2fcce0d 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -1848,7 +1848,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;
}
@@ -2848,7 +2850,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)) {
@@ -2941,7 +2945,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)) {
@@ -3344,7 +3350,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;
}
@@ -3393,7 +3401,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;
}
@@ -3444,7 +3454,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) {
@@ -3456,7 +3468,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)) {
@@ -4563,7 +4577,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;
}
@@ -4648,7 +4664,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;
}
@@ -5524,7 +5542,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;
}
@@ -5633,7 +5653,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;
}
@@ -5701,7 +5723,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;
}
@@ -5762,7 +5786,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;
}
@@ -5829,7 +5855,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;
}
@@ -5891,7 +5919,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;
}
@@ -5990,7 +6020,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;
}
@@ -6075,7 +6107,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;
}
@@ -6155,7 +6189,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;
}
@@ -6253,7 +6289,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;
}