Skip to content

Commit 9920173

Browse files
authored
Merge pull request #128 from ishanvyas22/php82
Fix PHP 8.2 deprecation errors
2 parents 1c3bdcd + f4dbc2f commit 9920173

3 files changed

Lines changed: 167 additions & 76 deletions

File tree

.travis.dhall

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ in
1010
php = [
1111
"7.3",
1212
"7.4",
13-
"8.0"
13+
"8.0",
14+
"8.1",
15+
"8.2"
1416
],
1517
dist = "xenial",
1618
env = [
@@ -22,7 +24,7 @@ in
2224
Prelude.List.map Text Exclusion (\(env: Text) ->
2325
{ php = php, env = env }
2426
) (phpseclib 7 (\(_: Natural) -> True))
25-
) ["7.3", "7.4", "8.0"],
27+
) ["7.3", "7.4", "8.0", "8.1", "8.2"],
2628
fast_finish = True
2729
},
2830
before_script = ''

.travis.yml

Lines changed: 103 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -2,81 +2,111 @@
22
before_script: "sed -i \"s/\\\"phpseclib\\/phpseclib\\\": \\\"[^\\\"]*/\\\"phpseclib\\/phpseclib\\\": \\\"$PHPSECLIB/\" composer.json && composer install --prefer-source"
33
dist: xenial
44
env:
5-
- "PHPSECLIB='^2.0 !=2.0.8'"
6-
- "PHPSECLIB='2.0.0'"
7-
- "PHPSECLIB='2.0.1'"
8-
- "PHPSECLIB='2.0.2'"
9-
- "PHPSECLIB='2.0.3'"
10-
- "PHPSECLIB='2.0.4'"
11-
- "PHPSECLIB='2.0.5'"
12-
- "PHPSECLIB='2.0.6'"
13-
- "PHPSECLIB='2.0.7'"
14-
- "PHPSECLIB='2.0.9'"
15-
- "PHPSECLIB='2.0.10'"
16-
- "PHPSECLIB='2.0.11'"
17-
- "PHPSECLIB='2.0.12'"
18-
- "PHPSECLIB='2.0.13'"
19-
- "PHPSECLIB='2.0.14'"
20-
- "PHPSECLIB='2.0.15'"
21-
- "PHPSECLIB='2.0.16'"
22-
- "PHPSECLIB='2.0.17'"
23-
- "PHPSECLIB='2.0.18'"
24-
- "PHPSECLIB='2.0.19'"
25-
- "PHPSECLIB='2.0.20'"
26-
- "PHPSECLIB='2.0.21'"
27-
- "PHPSECLIB='2.0.22'"
28-
- "PHPSECLIB='2.0.23'"
29-
- "PHPSECLIB='2.0.24'"
30-
- "PHPSECLIB='2.0.25'"
31-
- "PHPSECLIB='2.0.26'"
32-
- "PHPSECLIB='2.0.27'"
5+
- "PHPSECLIB='^2.0 !=2.0.8'"
6+
- "PHPSECLIB='2.0.0'"
7+
- "PHPSECLIB='2.0.1'"
8+
- "PHPSECLIB='2.0.2'"
9+
- "PHPSECLIB='2.0.3'"
10+
- "PHPSECLIB='2.0.4'"
11+
- "PHPSECLIB='2.0.5'"
12+
- "PHPSECLIB='2.0.6'"
13+
- "PHPSECLIB='2.0.7'"
14+
- "PHPSECLIB='2.0.9'"
15+
- "PHPSECLIB='2.0.10'"
16+
- "PHPSECLIB='2.0.11'"
17+
- "PHPSECLIB='2.0.12'"
18+
- "PHPSECLIB='2.0.13'"
19+
- "PHPSECLIB='2.0.14'"
20+
- "PHPSECLIB='2.0.15'"
21+
- "PHPSECLIB='2.0.16'"
22+
- "PHPSECLIB='2.0.17'"
23+
- "PHPSECLIB='2.0.18'"
24+
- "PHPSECLIB='2.0.19'"
25+
- "PHPSECLIB='2.0.20'"
26+
- "PHPSECLIB='2.0.21'"
27+
- "PHPSECLIB='2.0.22'"
28+
- "PHPSECLIB='2.0.23'"
29+
- "PHPSECLIB='2.0.24'"
30+
- "PHPSECLIB='2.0.25'"
31+
- "PHPSECLIB='2.0.26'"
32+
- "PHPSECLIB='2.0.27'"
3333
language: php
3434
matrix:
3535
exclude:
36-
- env: "PHPSECLIB='2.0.0'"
37-
php: '7.3'
38-
- env: "PHPSECLIB='2.0.1'"
39-
php: '7.3'
40-
- env: "PHPSECLIB='2.0.2'"
41-
php: '7.3'
42-
- env: "PHPSECLIB='2.0.3'"
43-
php: '7.3'
44-
- env: "PHPSECLIB='2.0.4'"
45-
php: '7.3'
46-
- env: "PHPSECLIB='2.0.5'"
47-
php: '7.3'
48-
- env: "PHPSECLIB='2.0.6'"
49-
php: '7.3'
50-
- env: "PHPSECLIB='2.0.0'"
51-
php: '7.4'
52-
- env: "PHPSECLIB='2.0.1'"
53-
php: '7.4'
54-
- env: "PHPSECLIB='2.0.2'"
55-
php: '7.4'
56-
- env: "PHPSECLIB='2.0.3'"
57-
php: '7.4'
58-
- env: "PHPSECLIB='2.0.4'"
59-
php: '7.4'
60-
- env: "PHPSECLIB='2.0.5'"
61-
php: '7.4'
62-
- env: "PHPSECLIB='2.0.6'"
63-
php: '7.4'
64-
- env: "PHPSECLIB='2.0.0'"
65-
php: '8.0'
66-
- env: "PHPSECLIB='2.0.1'"
67-
php: '8.0'
68-
- env: "PHPSECLIB='2.0.2'"
69-
php: '8.0'
70-
- env: "PHPSECLIB='2.0.3'"
71-
php: '8.0'
72-
- env: "PHPSECLIB='2.0.4'"
73-
php: '8.0'
74-
- env: "PHPSECLIB='2.0.5'"
75-
php: '8.0'
76-
- env: "PHPSECLIB='2.0.6'"
77-
php: '8.0'
36+
- env: "PHPSECLIB='2.0.0'"
37+
php: '7.3'
38+
- env: "PHPSECLIB='2.0.1'"
39+
php: '7.3'
40+
- env: "PHPSECLIB='2.0.2'"
41+
php: '7.3'
42+
- env: "PHPSECLIB='2.0.3'"
43+
php: '7.3'
44+
- env: "PHPSECLIB='2.0.4'"
45+
php: '7.3'
46+
- env: "PHPSECLIB='2.0.5'"
47+
php: '7.3'
48+
- env: "PHPSECLIB='2.0.6'"
49+
php: '7.3'
50+
- env: "PHPSECLIB='2.0.0'"
51+
php: '7.4'
52+
- env: "PHPSECLIB='2.0.1'"
53+
php: '7.4'
54+
- env: "PHPSECLIB='2.0.2'"
55+
php: '7.4'
56+
- env: "PHPSECLIB='2.0.3'"
57+
php: '7.4'
58+
- env: "PHPSECLIB='2.0.4'"
59+
php: '7.4'
60+
- env: "PHPSECLIB='2.0.5'"
61+
php: '7.4'
62+
- env: "PHPSECLIB='2.0.6'"
63+
php: '7.4'
64+
- env: "PHPSECLIB='2.0.0'"
65+
php: '8.0'
66+
- env: "PHPSECLIB='2.0.1'"
67+
php: '8.0'
68+
- env: "PHPSECLIB='2.0.2'"
69+
php: '8.0'
70+
- env: "PHPSECLIB='2.0.3'"
71+
php: '8.0'
72+
- env: "PHPSECLIB='2.0.4'"
73+
php: '8.0'
74+
- env: "PHPSECLIB='2.0.5'"
75+
php: '8.0'
76+
- env: "PHPSECLIB='2.0.6'"
77+
php: '8.0'
78+
- env: "PHPSECLIB='2.0.0'"
79+
php: '8.1'
80+
- env: "PHPSECLIB='2.0.1'"
81+
php: '8.1'
82+
- env: "PHPSECLIB='2.0.2'"
83+
php: '8.1'
84+
- env: "PHPSECLIB='2.0.3'"
85+
php: '8.1'
86+
- env: "PHPSECLIB='2.0.4'"
87+
php: '8.1'
88+
- env: "PHPSECLIB='2.0.5'"
89+
php: '8.1'
90+
- env: "PHPSECLIB='2.0.6'"
91+
php: '8.1'
92+
- env: "PHPSECLIB='2.0.0'"
93+
php: '8.2'
94+
- env: "PHPSECLIB='2.0.1'"
95+
php: '8.2'
96+
- env: "PHPSECLIB='2.0.2'"
97+
php: '8.2'
98+
- env: "PHPSECLIB='2.0.3'"
99+
php: '8.2'
100+
- env: "PHPSECLIB='2.0.4'"
101+
php: '8.2'
102+
- env: "PHPSECLIB='2.0.5'"
103+
php: '8.2'
104+
- env: "PHPSECLIB='2.0.6'"
105+
php: '8.2'
78106
fast_finish: true
79107
php:
80-
- '7.3'
81-
- '7.4'
82-
- '8.0'
108+
- '7.3'
109+
- '7.4'
110+
- '8.0'
111+
- '8.1'
112+
- '8.2'

lib/openpgp.php

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,7 @@ function body() {
538538
}
539539

540540
function header_and_body() {
541-
$body = $this->body(); // Get body first, we will need it's length
541+
$body = $this->body() ?? ''; // Get body first, we will need it's length
542542
$tag = chr($this->tag | 0xC0); // First two bits are 1 for new packet format
543543
$size = chr(255).pack('N', strlen($body)); // Use 5-octet lengths
544544
return array('header' => $tag.$size, 'body' => $body);
@@ -616,6 +616,10 @@ function read_bytes($count = 1) {
616616
class OpenPGP_AsymmetricSessionKeyPacket extends OpenPGP_Packet {
617617
public $version, $keyid, $key_algorithm, $encrypted_data;
618618

619+
public $input;
620+
621+
public $length;
622+
619623
function __construct($key_algorithm='', $keyid='', $encrypted_data='', $version=3) {
620624
parent::__construct();
621625
$this->version = $version;
@@ -665,6 +669,10 @@ class OpenPGP_SignaturePacket extends OpenPGP_Packet {
665669
public $version, $signature_type, $hash_algorithm, $key_algorithm, $hashed_subpackets, $unhashed_subpackets, $hash_head;
666670
public $trailer; // This is the literal bytes that get tacked on the end of the message when verifying the signature
667671

672+
public $input;
673+
674+
public $length;
675+
668676
function __construct($data=NULL, $key_algorithm=NULL, $hash_algorithm=NULL) {
669677
parent::__construct();
670678
$this->version = 4; // Default to version 4 sigs
@@ -941,6 +949,10 @@ static function class_for($tag) {
941949
}
942950

943951
class OpenPGP_SignaturePacket_Subpacket extends OpenPGP_Packet {
952+
public $input;
953+
954+
public $length;
955+
944956
function __construct($data=NULL) {
945957
parent::__construct($data);
946958
$this->tag = array_search(substr(substr(get_class($this), 8+16), 0, -6), OpenPGP_SignaturePacket::$subpacket_types);
@@ -1199,6 +1211,8 @@ function body() {
11991211
}
12001212

12011213
class OpenPGP_SignaturePacket_KeyFlagsPacket extends OpenPGP_SignaturePacket_Subpacket {
1214+
public $flags;
1215+
12021216
function __construct($flags=array()) {
12031217
parent::__construct();
12041218
$this->flags = $flags;
@@ -1286,6 +1300,10 @@ function header_and_body() {
12861300
class OpenPGP_SymmetricSessionKeyPacket extends OpenPGP_Packet {
12871301
public $version, $symmetric_algorithm, $s2k, $encrypted_data;
12881302

1303+
public $input;
1304+
1305+
public $length;
1306+
12891307
function __construct($s2k=NULL, $encrypted_data='', $symmetric_algorithm=9, $version=3) {
12901308
parent::__construct();
12911309
$this->version = $version;
@@ -1314,6 +1332,11 @@ function body() {
13141332
*/
13151333
class OpenPGP_OnePassSignaturePacket extends OpenPGP_Packet {
13161334
public $version, $signature_type, $hash_algorithm, $key_algorithm, $key_id, $nested;
1335+
1336+
public $input;
1337+
1338+
public $length;
1339+
13171340
function read() {
13181341
$this->version = ord($this->read_byte());
13191342
$this->signature_type = ord($this->read_byte());
@@ -1348,6 +1371,10 @@ class OpenPGP_PublicKeyPacket extends OpenPGP_Packet {
13481371
public $key, $key_id, $fingerprint;
13491372
public $v3_days_of_validity;
13501373

1374+
public $input;
1375+
1376+
public $length;
1377+
13511378
function __construct($key=array(), $algorithm='RSA', $timestamp=NULL, $version=4) {
13521379
parent::__construct();
13531380

@@ -1544,6 +1571,10 @@ function body() {
15441571
* @see http://tools.ietf.org/html/rfc4880#section-12
15451572
*/
15461573
class OpenPGP_PublicSubkeyPacket extends OpenPGP_PublicKeyPacket {
1574+
public $input;
1575+
1576+
public $length;
1577+
15471578
// TODO
15481579
}
15491580

@@ -1642,6 +1673,10 @@ class OpenPGP_CompressedDataPacket extends OpenPGP_Packet implements IteratorAgg
16421673
/* see http://tools.ietf.org/html/rfc4880#section-9.3 */
16431674
static $algorithms = array(0 => 'Uncompressed', 1 => 'ZIP', 2 => 'ZLIB', 3 => 'BZip2');
16441675

1676+
public $input;
1677+
1678+
public $length;
1679+
16451680
function __construct($m=NULL, $algorithm=1) {
16461681
parent::__construct();
16471682
$this->algorithm = $algorithm;
@@ -1730,6 +1765,10 @@ function offsetUnset($offset) {
17301765
* @see http://tools.ietf.org/html/rfc4880#section-5.7
17311766
*/
17321767
class OpenPGP_EncryptedDataPacket extends OpenPGP_Packet {
1768+
public $input;
1769+
1770+
public $length;
1771+
17331772
function read() {
17341773
$this->data = $this->input;
17351774
}
@@ -1756,6 +1795,10 @@ class OpenPGP_MarkerPacket extends OpenPGP_Packet {
17561795
class OpenPGP_LiteralDataPacket extends OpenPGP_Packet {
17571796
public $format, $filename, $timestamp;
17581797

1798+
public $input;
1799+
1800+
public $length;
1801+
17591802
function __construct($data=NULL, $opt=array()) {
17601803
parent::__construct();
17611804
$this->data = $data;
@@ -1800,6 +1843,10 @@ function body() {
18001843
* @see http://tools.ietf.org/html/rfc4880#section-5.10
18011844
*/
18021845
class OpenPGP_TrustPacket extends OpenPGP_Packet {
1846+
public $input;
1847+
1848+
public $length;
1849+
18031850
function read() {
18041851
$this->data = $this->input;
18051852
}
@@ -1818,6 +1865,10 @@ function body() {
18181865
class OpenPGP_UserIDPacket extends OpenPGP_Packet {
18191866
public $name, $comment, $email;
18201867

1868+
public $input;
1869+
1870+
public $length;
1871+
18211872
function __construct($name='', $comment='', $email='') {
18221873
parent::__construct();
18231874
if(!$comment && !$email) {
@@ -1880,6 +1931,10 @@ function body() {
18801931
class OpenPGP_UserAttributePacket extends OpenPGP_Packet {
18811932
public $packets;
18821933

1934+
public $input;
1935+
1936+
public $length;
1937+
18831938
// TODO
18841939
}
18851940

@@ -1891,6 +1946,10 @@ class OpenPGP_UserAttributePacket extends OpenPGP_Packet {
18911946
class OpenPGP_IntegrityProtectedDataPacket extends OpenPGP_EncryptedDataPacket {
18921947
public $version;
18931948

1949+
public $input;
1950+
1951+
public $length;
1952+
18941953
function __construct($data='', $version=1) {
18951954
parent::__construct();
18961955
$this->version = $version;

0 commit comments

Comments
 (0)