Skip to content

Commit dc45d42

Browse files
Merge pull request #3 from paragonie/suite-id-human-readable
Add human-readable ciphersuite names
2 parents b61014f + 99a7d76 commit dc45d42

File tree

13 files changed

+67
-0
lines changed

13 files changed

+67
-0
lines changed

src/AEAD/AES128GCM.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ public function getAeadId(): string
1616
return self::AEAD_ID;
1717
}
1818

19+
public function getSuiteName(): string
20+
{
21+
return 'AES-128-GCM';
22+
}
23+
1924
public function keyLength(): int
2025
{
2126
return 16;

src/AEAD/AES256GCM.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ public function getAeadId(): string
1414
{
1515
return self::AEAD_ID;
1616
}
17+
public function getSuiteName(): string
18+
{
19+
return 'AES-256-GCM';
20+
}
1721

1822
public function keyLength(): int
1923
{

src/AEAD/ChaCha20Poly1305.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ public function getAeadId(): string
1616
return self::AEAD_ID;
1717
}
1818

19+
public function getSuiteName(): string
20+
{
21+
return 'ChaCha20Poly1305';
22+
}
23+
1924
public function keyLength(): int
2025
{
2126
return 32;

src/AEAD/ExportOnly.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ public function getAeadId(): string
1818
return self::AEAD_ID;
1919
}
2020

21+
public function getSuiteName(): string
22+
{
23+
return 'Export-Only AEAD';
24+
}
25+
2126
/**
2227
* @throws HPKEException
2328
*/

src/HPKE.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,20 @@ public function __construct(
3030
public AEADInterface $aead
3131
) {}
3232

33+
/**
34+
* Human-readable suite name.
35+
*
36+
* @return string
37+
*/
38+
public function getSuiteName(): string
39+
{
40+
return implode(', ', [
41+
$this->kem->getSuiteName(),
42+
$this->kdf->getSuiteName(),
43+
$this->aead->getSuiteName(),
44+
]);
45+
}
46+
3347
/**
3448
* @return string
3549
*/

src/Hash.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,13 @@ enum Hash: string
77
case Sha256 = 'sha256';
88
case Sha384 = 'sha384';
99
case Sha512 = 'sha512';
10+
11+
public function getSuiteName(): string
12+
{
13+
return match ($this) {
14+
self::Sha256 => 'SHA256',
15+
self::Sha384 => 'SHA384',
16+
self::Sha512 => 'SHA512',
17+
};
18+
}
1019
}

src/Interfaces/AEADInterface.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
interface AEADInterface
88
{
99
public function getAeadId(): string;
10+
public function getSuiteName(): string;
1011
public function keyLength(): int;
1112
public function nonceLength(): int;
1213
public function tagLength(): int;

src/Interfaces/KDFInterface.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
interface KDFInterface
66
{
77
public function getKdfId(): string;
8+
public function getSuiteName(): string;
89
public function getHashLength(): int;
910

1011
public function deriveBytes(

src/Interfaces/KemInterface.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public function generateKeys(): array;
99
public function getHeaderLength(): int;
1010

1111
public function getKemId(): string;
12+
public function getSuiteName(): string;
1213

1314
public function getPublicKeyLength(): int;
1415

src/KDF/HKDF.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ public function getKdfId(): string
3737
};
3838
}
3939

40+
public function getSuiteName(): string
41+
{
42+
return 'HKDF-' . $this->hash->getSuiteName();
43+
}
44+
4045
public function deriveBytes(
4146
#[\SensitiveParameter]
4247
string|SymmetricKeyInterface $ikm,

0 commit comments

Comments
 (0)