DefaultTlsServer
using Org.BouncyCastle.Tls.Crypto;
namespace Org.BouncyCastle.Tls
{
public abstract class DefaultTlsServer : AbstractTlsServer
{
private static readonly int[] DefaultCipherSuites = new int[23] {
4866,
4865,
4867,
49200,
49199,
52392,
49192,
49191,
49172,
49171,
159,
158,
52394,
107,
103,
57,
51,
157,
156,
61,
60,
53,
47
};
public DefaultTlsServer(TlsCrypto crypto)
: base(crypto)
{
}
protected virtual TlsCredentialedSigner GetDsaSignerCredentials()
{
throw new TlsFatalAlert(80);
}
protected virtual TlsCredentialedSigner GetECDsaSignerCredentials()
{
throw new TlsFatalAlert(80);
}
protected virtual TlsCredentialedDecryptor GetRsaEncryptionCredentials()
{
throw new TlsFatalAlert(80);
}
protected virtual TlsCredentialedSigner GetRsaSignerCredentials()
{
throw new TlsFatalAlert(80);
}
protected override int[] GetSupportedCipherSuites()
{
return TlsUtilities.GetSupportedCipherSuites(Crypto, DefaultCipherSuites);
}
public override TlsCredentials GetCredentials()
{
switch (m_context.SecurityParameters.KeyExchangeAlgorithm) {
case 3:
return GetDsaSignerCredentials();
case 17:
return GetECDsaSignerCredentials();
case 5:
case 19:
return GetRsaSignerCredentials();
case 1:
return GetRsaEncryptionCredentials();
default:
throw new TlsFatalAlert(80);
}
}
}
}