| Index: webrtc/p2p/base/dtlstransportchannel.cc | 
| diff --git a/webrtc/p2p/base/dtlstransportchannel.cc b/webrtc/p2p/base/dtlstransportchannel.cc | 
| index c4e1f5bcba63666ff17fa0c71b93ff9d4a508ce7..fc16edff14f38db531e31b63d59fbbd6e59e34a1 100644 | 
| --- a/webrtc/p2p/base/dtlstransportchannel.cc | 
| +++ b/webrtc/p2p/base/dtlstransportchannel.cc | 
| @@ -108,12 +108,14 @@ void StreamInterfaceChannel::Close() { | 
| state_ = rtc::SS_CLOSED; | 
| } | 
|  | 
| -DtlsTransport::DtlsTransport(IceTransportInternal* ice_transport) | 
| +DtlsTransport::DtlsTransport(IceTransportInternal* ice_transport, | 
| +                             const rtc::CryptoOptions& crypto_options) | 
| : transport_name_(ice_transport->transport_name()), | 
| component_(ice_transport->component()), | 
| network_thread_(rtc::Thread::Current()), | 
| ice_transport_(ice_transport), | 
| downward_(NULL), | 
| +      srtp_ciphers_(GetSupportedDtlsSrtpCryptoSuites(crypto_options)), | 
| ssl_role_(rtc::SSL_CLIENT), | 
| ssl_max_version_(rtc::SSL_PROTOCOL_DTLS_12) { | 
| ice_transport_->SignalWritableState.connect(this, | 
| @@ -318,51 +320,6 @@ bool DtlsTransport::SetupDtls() { | 
| return true; | 
| } | 
|  | 
| -bool DtlsTransport::SetSrtpCryptoSuites(const std::vector<int>& ciphers) { | 
| -  if (srtp_ciphers_ == ciphers) | 
| -    return true; | 
| - | 
| -  if (dtls_state() == DTLS_TRANSPORT_CONNECTING) { | 
| -    LOG(LS_WARNING) << "Ignoring new SRTP ciphers while DTLS is negotiating"; | 
| -    return true; | 
| -  } | 
| - | 
| -  if (dtls_state() == DTLS_TRANSPORT_CONNECTED) { | 
| -    // We don't support DTLS renegotiation currently. If new set of srtp ciphers | 
| -    // are different than what's being used currently, we will not use it. | 
| -    // So for now, let's be happy (or sad) with a warning message. | 
| -    int current_srtp_cipher; | 
| -    if (!dtls_->GetDtlsSrtpCryptoSuite(¤t_srtp_cipher)) { | 
| -      LOG(LS_ERROR) | 
| -          << "Failed to get the current SRTP cipher for DTLS transport"; | 
| -      return false; | 
| -    } | 
| -    const std::vector<int>::const_iterator iter = | 
| -        std::find(ciphers.begin(), ciphers.end(), current_srtp_cipher); | 
| -    if (iter == ciphers.end()) { | 
| -      std::string requested_str; | 
| -      for (size_t i = 0; i < ciphers.size(); ++i) { | 
| -        requested_str.append(" "); | 
| -        requested_str.append(rtc::SrtpCryptoSuiteToName(ciphers[i])); | 
| -        requested_str.append(" "); | 
| -      } | 
| -      LOG(LS_WARNING) << "Ignoring new set of SRTP ciphers, as DTLS " | 
| -                      << "renegotiation is not supported currently " | 
| -                      << "current cipher = " << current_srtp_cipher << " and " | 
| -                      << "requested = " << "[" << requested_str << "]"; | 
| -    } | 
| -    return true; | 
| -  } | 
| - | 
| -  if (dtls_state() != DTLS_TRANSPORT_NEW) { | 
| -    LOG(LS_ERROR) << "Can't set SRTP ciphers for a closed session"; | 
| -    return false; | 
| -  } | 
| - | 
| -  srtp_ciphers_ = ciphers; | 
| -  return true; | 
| -} | 
| - | 
| bool DtlsTransport::GetSrtpCryptoSuite(int* cipher) { | 
| if (dtls_state() != DTLS_TRANSPORT_CONNECTED) { | 
| return false; | 
|  |