init commit

This commit is contained in:
2025-10-09 09:57:24 +09:00
commit 4d551bd74f
6636 changed files with 1218703 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
using Org.BouncyCastle.Crypto.Agreement;
using Org.BouncyCastle.Crypto.Parameters;
namespace Org.BouncyCastle.Crypto.Tls;
public abstract class DefaultTlsServer : AbstractTlsServer
{
public DefaultTlsServer()
{
}
public DefaultTlsServer(TlsCipherFactory cipherFactory)
: base(cipherFactory)
{
}
protected virtual TlsSignerCredentials GetDsaSignerCredentials()
{
throw new TlsFatalAlert(80);
}
protected virtual TlsSignerCredentials GetECDsaSignerCredentials()
{
throw new TlsFatalAlert(80);
}
protected virtual TlsEncryptionCredentials GetRsaEncryptionCredentials()
{
throw new TlsFatalAlert(80);
}
protected virtual TlsSignerCredentials GetRsaSignerCredentials()
{
throw new TlsFatalAlert(80);
}
protected virtual DHParameters GetDHParameters()
{
return DHStandardGroups.rfc7919_ffdhe2048;
}
protected override int[] GetCipherSuites()
{
return new int[18]
{
49200, 49199, 49192, 49191, 49172, 49171, 159, 158, 107, 103,
57, 51, 157, 156, 61, 60, 53, 47
};
}
public override TlsCredentials GetCredentials()
{
switch (TlsUtilities.GetKeyExchangeAlgorithm(mSelectedCipherSuite))
{
case 3:
return GetDsaSignerCredentials();
case 11:
case 20:
return null;
case 17:
return GetECDsaSignerCredentials();
case 5:
case 19:
return GetRsaSignerCredentials();
case 1:
return GetRsaEncryptionCredentials();
default:
throw new TlsFatalAlert(80);
}
}
public override TlsKeyExchange GetKeyExchange()
{
int keyExchangeAlgorithm = TlsUtilities.GetKeyExchangeAlgorithm(mSelectedCipherSuite);
switch (keyExchangeAlgorithm)
{
case 7:
case 9:
case 11:
return CreateDHKeyExchange(keyExchangeAlgorithm);
case 3:
case 5:
return CreateDheKeyExchange(keyExchangeAlgorithm);
case 16:
case 18:
case 20:
return CreateECDHKeyExchange(keyExchangeAlgorithm);
case 17:
case 19:
return CreateECDheKeyExchange(keyExchangeAlgorithm);
case 1:
return CreateRsaKeyExchange();
default:
throw new TlsFatalAlert(80);
}
}
protected virtual TlsKeyExchange CreateDHKeyExchange(int keyExchange)
{
return new TlsDHKeyExchange(keyExchange, mSupportedSignatureAlgorithms, null, GetDHParameters());
}
protected virtual TlsKeyExchange CreateDheKeyExchange(int keyExchange)
{
return new TlsDheKeyExchange(keyExchange, mSupportedSignatureAlgorithms, null, GetDHParameters());
}
protected virtual TlsKeyExchange CreateECDHKeyExchange(int keyExchange)
{
return new TlsECDHKeyExchange(keyExchange, mSupportedSignatureAlgorithms, mNamedCurves, mClientECPointFormats, mServerECPointFormats);
}
protected virtual TlsKeyExchange CreateECDheKeyExchange(int keyExchange)
{
return new TlsECDheKeyExchange(keyExchange, mSupportedSignatureAlgorithms, mNamedCurves, mClientECPointFormats, mServerECPointFormats);
}
protected virtual TlsKeyExchange CreateRsaKeyExchange()
{
return new TlsRsaKeyExchange(mSupportedSignatureAlgorithms);
}
}