Skip to content

Commit 11caf09

Browse files
committed
Fix phpGH-13620: Failing openssl_private_decrypt tests
Use OPENSSL_PKCS1_OAEP_PADDING padding in tests Closes phpGH-13667
1 parent d3f1f3a commit 11caf09

File tree

3 files changed

+14
-17
lines changed

3 files changed

+14
-17
lines changed

ext/openssl/tests/openssl_error_string_basic.phpt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ openssl
66
<?php
77
if (OPENSSL_VERSION_NUMBER >= 0x30000000) die('skip For OpenSSL < 3.0');
88
?>
9-
--XFAIL--
109
--FILE--
1110
<?php
1211
// helper function to check openssl errors
@@ -119,12 +118,12 @@ expect_openssl_errors('openssl_pkey_get_public', [$err_pem_no_start_line]);
119118
@openssl_private_encrypt("data", $crypted, $private_key_file, 1000);
120119
expect_openssl_errors('openssl_private_encrypt', ['0408F090']);
121120
// private decrypt with failed padding check
122-
@openssl_private_decrypt("data", $crypted, $private_key_file);
123-
expect_openssl_errors('openssl_private_decrypt', ['04065072']);
121+
@openssl_private_decrypt("data", $crypted, $private_key_file, OPENSSL_PKCS1_OAEP_PADDING);
122+
expect_openssl_errors('openssl_private_decrypt', ['04099079']);
124123
// public encrypt and decrypt with failed padding check and padding
125124
@openssl_public_encrypt("data", $crypted, $public_key_file, 1000);
126-
@openssl_public_decrypt("data", $crypted, $public_key_file);
127-
expect_openssl_errors('openssl_private_(en|de)crypt padding', [$err_pem_no_start_line, '0408F090', '04067072']);
125+
@openssl_public_decrypt("data", $crypted, $public_key_file, OPENSSL_PKCS1_OAEP_PADDING);
126+
expect_openssl_errors('openssl_private_(en|de)crypt padding', [$err_pem_no_start_line, '0408F090', '06089093']);
128127

129128
// X509
130129
echo "X509 errors\n";

ext/openssl/tests/openssl_error_string_basic_openssl3.phpt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ openssl
66
<?php
77
if (OPENSSL_VERSION_NUMBER < 0x30000000) die('skip For OpenSSL >= 3.0');
88
?>
9-
--XFAIL--
109
--FILE--
1110
<?php
1211
// helper function to check openssl errors
@@ -122,12 +121,12 @@ expect_openssl_errors('openssl_pkey_get_public', [$err_pem_no_start_line]);
122121
@openssl_private_encrypt("data", $crypted, $private_key_file, 1000);
123122
expect_openssl_errors('openssl_private_encrypt', ['1C8000A5']);
124123
// private decrypt with failed padding check
125-
@openssl_private_decrypt("data", $crypted, $private_key_file);
126-
expect_openssl_errors('openssl_private_decrypt', ['0200009F', '02000072']);
124+
@openssl_private_decrypt("data", $crypted, $private_key_file, OPENSSL_PKCS1_OAEP_PADDING);
125+
expect_openssl_errors('openssl_private_decrypt', ['02000079']);
127126
// public encrypt and decrypt with failed padding check and padding
128127
@openssl_public_encrypt("data", $crypted, $public_key_file, 1000);
129-
@openssl_public_decrypt("data", $crypted, $public_key_file);
130-
expect_openssl_errors('openssl_private_(en|de)crypt padding', [$err_pem_no_start_line, '02000076', '0200008A', '02000072', '1C880004']);
128+
@openssl_public_decrypt("data", $crypted, $public_key_file, OPENSSL_PKCS1_OAEP_PADDING);
129+
expect_openssl_errors('openssl_private_(en|de)crypt padding', [$err_pem_no_start_line, '1C8000A5']);
131130

132131
// X509
133132
echo "X509 errors\n";

ext/openssl/tests/openssl_private_decrypt_basic.phpt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,29 @@
22
openssl_private_decrypt() tests
33
--EXTENSIONS--
44
openssl
5-
--XFAIL--
65
--FILE--
76
<?php
87
$data = "Testing openssl_public_decrypt()";
98
$privkey = "file://" . __DIR__ . "/private_rsa_1024.key";
109
$pubkey = "file://" . __DIR__ . "/public.key";
1110
$wrong = "wrong";
1211

13-
openssl_public_encrypt($data, $encrypted, $pubkey);
14-
var_dump(openssl_private_decrypt($encrypted, $output, $privkey));
12+
openssl_public_encrypt($data, $encrypted, $pubkey, OPENSSL_PKCS1_OAEP_PADDING);
13+
var_dump(openssl_private_decrypt($encrypted, $output, $privkey, OPENSSL_PKCS1_OAEP_PADDING));
1514
var_dump($output);
16-
var_dump(openssl_private_decrypt($encrypted, $output2, $wrong));
15+
var_dump(openssl_private_decrypt($encrypted, $output2, $wrong, OPENSSL_PKCS1_OAEP_PADDING));
1716
var_dump($output2);
18-
var_dump(openssl_private_decrypt($wrong, $output3, $privkey));
17+
var_dump(openssl_private_decrypt($wrong, $output3, $privkey, OPENSSL_PKCS1_OAEP_PADDING));
1918
var_dump($output3);
2019

2120
try {
22-
var_dump(openssl_private_decrypt($encrypted, $output4, array($privkey)));
21+
var_dump(openssl_private_decrypt($encrypted, $output4, array($privkey), OPENSSL_PKCS1_OAEP_PADDING));
2322
var_dump($output4);
2423
} catch (\ValueError $e) {
2524
echo $e->getMessage() . \PHP_EOL;
2625
}
2726

28-
var_dump(openssl_private_decrypt($encrypted, $output5, array($privkey, "")));
27+
var_dump(openssl_private_decrypt($encrypted, $output5, array($privkey, ""), OPENSSL_PKCS1_OAEP_PADDING));
2928
var_dump($output5);
3029
?>
3130
--EXPECTF--

0 commit comments

Comments
 (0)