public override TlsCredentials GetCredentials() { int keyExchangeAlgorithm = TlsUtilities.GetKeyExchangeAlgorithm(this.mSelectedCipherSuite); int num = keyExchangeAlgorithm; switch (num) { case 13: case 14: break; case 15: return(this.GetRsaEncryptionCredentials()); default: if (num != 24) { throw new TlsFatalAlert(80); } break; } return(null); }
public override TlsKeyExchange GetKeyExchange() { int keyExchangeAlgorithm = TlsUtilities.GetKeyExchangeAlgorithm(mSelectedCipherSuite); switch (keyExchangeAlgorithm) { case KeyExchangeAlgorithm.DH_anon: case KeyExchangeAlgorithm.DH_DSS: case KeyExchangeAlgorithm.DH_RSA: return(CreateDHKeyExchange(keyExchangeAlgorithm)); case KeyExchangeAlgorithm.DHE_DSS: case KeyExchangeAlgorithm.DHE_RSA: return(CreateDheKeyExchange(keyExchangeAlgorithm)); case KeyExchangeAlgorithm.ECDH_anon: case KeyExchangeAlgorithm.ECDH_ECDSA: case KeyExchangeAlgorithm.ECDH_RSA: return(CreateECDHKeyExchange(keyExchangeAlgorithm)); case KeyExchangeAlgorithm.ECDHE_ECDSA: case KeyExchangeAlgorithm.ECDHE_RSA: return(CreateECDheKeyExchange(keyExchangeAlgorithm)); case KeyExchangeAlgorithm.RSA: return(CreateRsaKeyExchange()); default: /* * Note: internal error here; the TlsProtocol implementation verifies that the * server-selected cipher suite was in the list of client-offered cipher suites, so if * we now can't produce an implementation, we shouldn't have offered it! */ throw new TlsFatalAlert(AlertDescription.internal_error); } }