| Index: webrtc/base/rtccertificate.cc | 
| diff --git a/webrtc/base/rtccertificate.cc b/webrtc/base/rtccertificate.cc | 
| index 7b764bd72e66faa2a63afb49894f61414ca15d08..57ec25ee721f846a116fa1f737aaf8be18916299 100644 | 
| --- a/webrtc/base/rtccertificate.cc | 
| +++ b/webrtc/base/rtccertificate.cc | 
| @@ -43,4 +43,24 @@ const SSLCertificate& RTCCertificate::ssl_certificate() const { | 
| return identity_->certificate(); | 
| } | 
|  | 
| +RTCCertificatePEM RTCCertificate::ToPEM() const { | 
| +  return RTCCertificatePEM(identity_->PrivateKeyToPEMString(), | 
| +                           ssl_certificate().ToPEMString()); | 
| +} | 
| + | 
| +scoped_refptr<RTCCertificate> RTCCertificate::FromPEM( | 
| +    const RTCCertificatePEM& pem) { | 
| +  scoped_ptr<SSLIdentity> identity(SSLIdentity::FromPEMStrings( | 
| +      pem.private_key(), pem.certificate())); | 
| +  return new RefCountedObject<RTCCertificate>(identity.release()); | 
| +} | 
| + | 
| +bool RTCCertificate::operator==(const RTCCertificate& certificate) const { | 
| +  return *this->identity_ == *certificate.identity_; | 
| +} | 
| + | 
| +bool RTCCertificate::operator!=(const RTCCertificate& certificate) const { | 
| +  return !(*this == certificate); | 
| +} | 
| + | 
| }  // namespace rtc | 
|  |