Skip to content

Commit 833c296

Browse files
committed
Merge branch 'main' of github.com:kduma/PHP-cert-chain
2 parents a930e9d + 698a5bc commit 833c296

40 files changed

+221
-245
lines changed

binary-tools/src/BinaryReader.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

33
namespace KDuma\BinaryTools;
44

5-
6-
75
use RuntimeException;
86

97
class BinaryReader
@@ -101,13 +99,13 @@ public function readUint16BE(): int
10199
public function readString(int $length): BinaryString
102100
{
103101
$bytes = $this->readBytes($length);
104-
102+
105103
if (!mb_check_encoding($bytes->value, 'UTF-8')) {
106104
$this->position -= $length;
107105
throw new RuntimeException('Invalid UTF-8 string');
108106
}
109107

110-
108+
111109
return $bytes;
112110
}
113111

@@ -154,4 +152,4 @@ public function seek(int $position): void
154152
{
155153
$this->position = $position;
156154
}
157-
}
155+
}

binary-tools/src/BinaryString.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

33
namespace KDuma\BinaryTools;
44

@@ -47,4 +47,4 @@ public function equals(BinaryString $other): bool
4747
{
4848
return hash_equals($this->value, $other->value);
4949
}
50-
}
50+
}

binary-tools/src/BinaryWriter.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

33
namespace KDuma\BinaryTools;
44

@@ -90,4 +90,4 @@ public function writeStringWithLength(BinaryString $string, bool $use16BitLength
9090

9191
return $this;
9292
}
93-
}
93+
}

binary-tools/tests/BinaryReaderTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

33
namespace KDuma\BinaryTools\Tests;
44

55
use KDuma\BinaryTools\BinaryReader;
66
use KDuma\BinaryTools\BinaryString;
7-
use KDuma\BinaryTools\BinaryWriter;
87
use PHPUnit\Framework\Attributes\CoversClass;
98
use PHPUnit\Framework\TestCase;
109

binary-tools/tests/BinaryStringTest.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

33
namespace KDuma\BinaryTools\Tests;
44

5-
use KDuma\CertificateChainOfTrust\Crypto\KeyId;
6-
use KDuma\CertificateChainOfTrust\Crypto\PublicKey;
75
use KDuma\BinaryTools\BinaryString;
86
use PHPUnit\Framework\Attributes\CoversClass;
97
use PHPUnit\Framework\TestCase;

binary-tools/tests/BinaryWriterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

33
namespace KDuma\BinaryTools\Tests;
44

@@ -14,7 +14,7 @@ class BinaryWriterTest extends TestCase
1414

1515
protected function setUp(): void
1616
{
17-
$this->writer = new BinaryWriter;
17+
$this->writer = new BinaryWriter();
1818

1919
$this->writer->writeByte(0x01);
2020
$this->writer->writeByte(0x02);

examples.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

3+
use KDuma\BinaryTools\BinaryString;
34
use KDuma\CertificateChainOfTrust\Certificate;
45
use KDuma\CertificateChainOfTrust\Crypto\PrivateKeyPair;
56
use KDuma\CertificateChainOfTrust\DTO\CertificateFlag;
67
use KDuma\CertificateChainOfTrust\DTO\CertificateFlagsCollection;
78
use KDuma\CertificateChainOfTrust\DTO\DescriptorType;
89
use KDuma\CertificateChainOfTrust\DTO\Signature;
910
use KDuma\CertificateChainOfTrust\DTO\UserDescriptor;
10-
use KDuma\BinaryTools\BinaryString;
1111

1212
require __DIR__ . '/vendor/autoload.php';
1313

pint.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
},
88
"blank_line_after_opening_tag": false,
99
"linebreak_after_opening_tag": false,
10-
"declare_strict_types": false,
10+
"declare_strict_types": true,
1111
"single_blank_line_at_eof": true,
1212
"no_trailing_whitespace": true,
1313
"no_trailing_whitespace_in_comment": true,

src/Certificate.php

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

33
namespace KDuma\CertificateChainOfTrust;
44

5+
use KDuma\BinaryTools\BinaryReader;
6+
use KDuma\BinaryTools\BinaryString;
7+
use KDuma\BinaryTools\BinaryWriter;
58
use KDuma\CertificateChainOfTrust\Crypto\KeyId;
69
use KDuma\CertificateChainOfTrust\Crypto\PublicKey;
710
use KDuma\CertificateChainOfTrust\DTO\CertificateFlagsCollection;
811
use KDuma\CertificateChainOfTrust\DTO\Signature;
912
use KDuma\CertificateChainOfTrust\DTO\UserDescriptor;
10-
use KDuma\BinaryTools\BinaryReader;
11-
use KDuma\BinaryTools\BinaryString;
12-
use KDuma\BinaryTools\BinaryWriter;
1313

1414
readonly class Certificate
1515
{
16-
const string MAGIC = "\x08\x44\x53";
16+
public const string MAGIC = "\x08\x44\x53";
1717

1818
public function __construct(
1919
public PublicKey $key,
@@ -23,8 +23,7 @@ public function __construct(
2323
public CertificateFlagsCollection $flags,
2424
/** @var Signature[] */
2525
public array $signatures
26-
)
27-
{
26+
) {
2827
if (empty($this->key->id->value)) {
2928
throw new \InvalidArgumentException('KeyId cannot be empty');
3029
}
@@ -49,11 +48,11 @@ public function __construct(
4948
throw new \InvalidArgumentException('Description must be valid UTF-8');
5049
}
5150

52-
if (array_any($this->userDescriptors, fn($element) => !$element instanceof UserDescriptor)) {
51+
if (array_any($this->userDescriptors, fn ($element) => !$element instanceof UserDescriptor)) {
5352
throw new \InvalidArgumentException('All elements of $userDescriptors must be instances of UserDescriptor');
5453
}
5554

56-
if (array_any($this->signatures, fn($element) => !$element instanceof Signature)) {
55+
if (array_any($this->signatures, fn ($element) => !$element instanceof Signature)) {
5756
throw new \InvalidArgumentException('All elements of $signatures must be instances of Signature');
5857
}
5958
}
@@ -65,7 +64,7 @@ public function isSelfSigned(): bool
6564

6665
public function getSignatureByKeyId(KeyId $keyId): ?Signature
6766
{
68-
return array_find($this->signatures, fn(Signature $signature) => $signature->keyId->equals($keyId));
67+
return array_find($this->signatures, fn (Signature $signature) => $signature->keyId->equals($keyId));
6968
}
7069

7170
public function getSelfSignature(): ?Signature
@@ -146,7 +145,7 @@ public static function fromBinaryReader(BinaryReader $reader): self
146145
throw new \InvalidArgumentException('Failed to parse Certificate: ' . $e->getMessage());
147146
}
148147

149-
if($reader->has_more_data && !$reader->peekBytes(3)->equals(BinaryString::fromString(self::MAGIC))) {
148+
if ($reader->has_more_data && !$reader->peekBytes(3)->equals(BinaryString::fromString(self::MAGIC))) {
150149
throw new \InvalidArgumentException('Extra data found after parsing Certificate');
151150
}
152151

@@ -166,8 +165,7 @@ public function with(
166165
?array $userDescriptors = null,
167166
?CertificateFlagsCollection $flags = null,
168167
?array $signatures = null
169-
): Certificate
170-
{
168+
): Certificate {
171169
return new self(
172170
$key ?? $this->key,
173171
$description ?? $this->description,
@@ -177,4 +175,4 @@ public function with(
177175
);
178176
}
179177
// @codeCoverageIgnoreEnd
180-
}
178+
}

src/CertificatesContainer.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
1-
<?php
1+
<?php declare(strict_types=1);
22

33
namespace KDuma\CertificateChainOfTrust;
44

5-
use KDuma\CertificateChainOfTrust\Crypto\KeyId;
65
use KDuma\BinaryTools\BinaryReader;
76
use KDuma\BinaryTools\BinaryString;
87
use KDuma\BinaryTools\BinaryWriter;
8+
use KDuma\CertificateChainOfTrust\Crypto\KeyId;
99

1010
abstract readonly class CertificatesContainer
1111
{
1212
public function __construct(
1313
/** @var Certificate[] */
1414
public array $certificates = [],
15-
)
16-
{
17-
if (array_any($this->certificates, fn($certificate) => !$certificate instanceof Certificate)) {
15+
) {
16+
if (array_any($this->certificates, fn ($certificate) => !$certificate instanceof Certificate)) {
1817
throw new \InvalidArgumentException('All elements of $certificates must be instances of Certificate');
1918
}
2019

@@ -32,7 +31,7 @@ public static function fromBinary(BinaryString $data): static
3231
$reader = new BinaryReader($data);
3332

3433
$requiredMagic = BinaryString::fromString(static::getMagicBytes());
35-
if($requiredMagic->size() > 0) {
34+
if ($requiredMagic->size() > 0) {
3635
$actualMagic = $reader->readBytes($requiredMagic->size());
3736
if (!$actualMagic->equals($requiredMagic)) {
3837
throw new \InvalidArgumentException('Invalid magic bytes for ' . static::class);
@@ -67,6 +66,6 @@ public function getFirstCertificate(): ?Certificate
6766

6867
public function getById(KeyId $id): ?Certificate
6968
{
70-
return array_find($this->certificates, fn($certificate) => $certificate->key->id->equals($id));
69+
return array_find($this->certificates, fn ($certificate) => $certificate->key->id->equals($id));
7170
}
72-
}
71+
}

0 commit comments

Comments
 (0)