diff --git a/crypto/src/tls/ProtocolVersion.cs b/crypto/src/tls/ProtocolVersion.cs
index f37ce382d..f516aed2a 100644
--- a/crypto/src/tls/ProtocolVersion.cs
+++ b/crypto/src/tls/ProtocolVersion.cs
@@ -14,6 +14,7 @@ namespace Org.BouncyCastle.Tls
public static readonly ProtocolVersion TLSv13 = new ProtocolVersion(0x0304, "TLS 1.3");
public static readonly ProtocolVersion DTLSv10 = new ProtocolVersion(0xFEFF, "DTLS 1.0");
public static readonly ProtocolVersion DTLSv12 = new ProtocolVersion(0xFEFD, "DTLS 1.2");
+ public static readonly ProtocolVersion DTLSv13 = new ProtocolVersion(0xFEFC, "DTLS 1.3");
internal static readonly ProtocolVersion CLIENT_EARLIEST_SUPPORTED_DTLS = DTLSv10;
internal static readonly ProtocolVersion CLIENT_EARLIEST_SUPPORTED_TLS = SSLv3;
@@ -225,17 +226,22 @@ namespace Org.BouncyCastle.Tls
{
switch (MajorVersion)
{
- case 0x03:
- return this;
- case 0xFE:
- switch (MinorVersion)
- {
- case 0xFF: return TLSv11;
- case 0xFD: return TLSv12;
- default: return null;
- }
+ case 0x03:
+ return this;
+ case 0xFE:
+ switch (MinorVersion)
+ {
+ case 0xFF:
+ return TLSv11;
+ case 0xFD:
+ return TLSv12;
+ case 0xFC:
+ return TLSv13;
default:
return null;
+ }
+ default:
+ return null;
}
}
@@ -247,15 +253,20 @@ namespace Org.BouncyCastle.Tls
case 0x03:
switch (minor)
{
- case 0xFF: return null;
- default: return Get(major, minor + 1);
+ case 0xFF:
+ return null;
+ default:
+ return Get(major, minor + 1);
}
case 0xFE:
switch (minor)
{
- case 0x00: return null;
- case 0xFF: return DTLSv12;
- default: return Get(major, minor - 1);
+ case 0x00:
+ return null;
+ case 0xFF:
+ return DTLSv12;
+ default:
+ return Get(major, minor - 1);
}
default:
return null;
@@ -267,21 +278,26 @@ namespace Org.BouncyCastle.Tls
int major = MajorVersion, minor = MinorVersion;
switch (major)
{
- case 0x03:
- switch (minor)
- {
- case 0x00: return null;
- default: return Get(major, minor - 1);
- }
- case 0xFE:
- switch (minor)
- {
- case 0xFF: return null;
- case 0xFD: return DTLSv10;
- default: return Get(major, minor + 1);
- }
+ case 0x03:
+ switch (minor)
+ {
+ case 0x00:
+ return null;
default:
+ return Get(major, minor - 1);
+ }
+ case 0xFE:
+ switch (minor)
+ {
+ case 0xFF:
return null;
+ case 0xFD:
+ return DTLSv10;
+ default:
+ return Get(major, minor + 1);
+ }
+ default:
+ return null;
}
}
@@ -367,6 +383,8 @@ namespace Org.BouncyCastle.Tls
throw new ArgumentException("{0xFE, 0xFE} is a reserved protocol version");
case 0xFD:
return DTLSv12;
+ case 0xFC:
+ return DTLSv13;
}
return GetUnknownVersion(major, minor, "DTLS");
}
|