Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(730)

Unified Diff: webrtc/libjingle/session/tunnel/securetunnelsessionclient.h

Issue 1175243003: Remove webrtc/libjingle/{examples,session}. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/libjingle/session/tunnel/securetunnelsessionclient.h
diff --git a/webrtc/libjingle/session/tunnel/securetunnelsessionclient.h b/webrtc/libjingle/session/tunnel/securetunnelsessionclient.h
deleted file mode 100644
index 5fa02522a61dba3dbdae4fcb6cb3fc09a2ed7ff9..0000000000000000000000000000000000000000
--- a/webrtc/libjingle/session/tunnel/securetunnelsessionclient.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * libjingle
- * Copyright 2004--2008, Google Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// SecureTunnelSessionClient and SecureTunnelSession.
-// SecureTunnelSessionClient extends TunnelSessionClient to exchange
-// certificates as part of the session description.
-// SecureTunnelSession is a TunnelSession that wraps the underlying
-// tunnel stream into an SSLStreamAdapter.
-
-#ifndef WEBRTC_LIBJINGLE_SESSION_TUNNEL_SECURETUNNELSESSIONCLIENT_H_
-#define WEBRTC_LIBJINGLE_SESSION_TUNNEL_SECURETUNNELSESSIONCLIENT_H_
-
-#include <string>
-
-#include "webrtc/libjingle/session/tunnel/tunnelsessionclient.h"
-#include "webrtc/base/sslidentity.h"
-#include "webrtc/base/sslstreamadapter.h"
-
-namespace cricket {
-
-class SecureTunnelSession; // below
-
-// SecureTunnelSessionClient
-
-// This TunnelSessionClient establishes secure tunnels protected by
-// SSL/TLS. The PseudoTcpChannel stream is wrapped with an
-// SSLStreamAdapter. An SSLIdentity must be set or generated.
-//
-// The TunnelContentDescription is extended to include the client and
-// server certificates. The initiator acts as the client. The session
-// initiate stanza carries a description that contains the client's
-// certificate, and the session accept response's description has the
-// server certificate added to it.
-
-class SecureTunnelSessionClient : public TunnelSessionClient {
- public:
- // The jid is used as the name for sessions for outgoing tunnels.
- // manager is the SessionManager to which we register this client
- // and its sessions.
- SecureTunnelSessionClient(const buzz::Jid& jid, SessionManager* manager);
-
- // Configures this client to use a preexisting SSLIdentity.
- // The client takes ownership of the identity object.
- // Use either SetIdentity or GenerateIdentity, and only once.
- void SetIdentity(rtc::SSLIdentity* identity);
-
- // Generates an identity from nothing.
- // Returns true if generation was successful.
- // Use either SetIdentity or GenerateIdentity, and only once.
- bool GenerateIdentity();
-
- // Returns our identity for SSL purposes, as either set by
- // SetIdentity() or generated by GenerateIdentity(). Call this
- // method only after our identity has been successfully established
- // by one of those methods.
- rtc::SSLIdentity& GetIdentity() const;
-
- // Inherited methods
- virtual void OnIncomingTunnel(const buzz::Jid& jid, Session *session);
- virtual bool ParseContent(SignalingProtocol protocol,
- const buzz::XmlElement* elem,
- ContentDescription** content,
- ParseError* error);
- virtual bool WriteContent(SignalingProtocol protocol,
- const ContentDescription* content,
- buzz::XmlElement** elem,
- WriteError* error);
- virtual SessionDescription* CreateOffer(
- const buzz::Jid &jid, const std::string &description);
- virtual SessionDescription* CreateAnswer(
- const SessionDescription* offer);
-
- protected:
- virtual TunnelSession* MakeTunnelSession(
- Session* session, rtc::Thread* stream_thread,
- TunnelSessionRole role);
-
- private:
- // Our identity (key and certificate) for SSL purposes. The
- // certificate part will be communicated within the session
- // description. The identity will be passed to the SSLStreamAdapter
- // and used for SSL authentication.
- rtc::scoped_ptr<rtc::SSLIdentity> identity_;
-
- DISALLOW_COPY_AND_ASSIGN(SecureTunnelSessionClient);
-};
-
-// SecureTunnelSession:
-// A TunnelSession represents one session for one client. It
-// provides the actual tunnel stream and handles state changes.
-// A SecureTunnelSession is a TunnelSession that wraps the underlying
-// tunnel stream into an SSLStreamAdapter.
-
-class SecureTunnelSession : public TunnelSession {
- public:
- // This TunnelSession will tie together the given client and session.
- // stream_thread is passed to the PseudoTCPChannel: it's the thread
- // designated to interact with the tunnel stream.
- // role is either INITIATOR or RESPONDER, depending on who is
- // initiating the session.
- SecureTunnelSession(SecureTunnelSessionClient* client, Session* session,
- rtc::Thread* stream_thread,
- TunnelSessionRole role);
-
- // Returns the stream that implements the actual P2P tunnel.
- // This may be called only once. Caller is responsible for freeing
- // the returned object.
- virtual rtc::StreamInterface* GetStream();
-
- protected:
- // Inherited method: callback on accepting a session.
- virtual void OnAccept();
-
- // Helper method for GetStream() that Instantiates the
- // SSLStreamAdapter to wrap the PseudoTcpChannel's stream, and
- // configures it with our identity and role.
- rtc::StreamInterface* MakeSecureStream(
- rtc::StreamInterface* stream);
-
- // Our role in requesting the tunnel: INITIATOR or
- // RESPONDER. Translates to our role in SSL negotiation:
- // respectively client or server. Also indicates which slot of the
- // SecureTunnelContentDescription our cert goes into: client-cert or
- // server-cert respectively.
- TunnelSessionRole role_;
-
- // This is the stream representing the usable tunnel endpoint. It's
- // a StreamReference wrapping the SSLStreamAdapter instance, which
- // further wraps a PseudoTcpChannel::InternalStream. The
- // StreamReference is because in the case of CreateTunnel(), the
- // stream endpoint is returned early, but we need to keep a handle
- // on it so we can setup the peer certificate when we receive it
- // later.
- rtc::scoped_ptr<rtc::StreamReference> ssl_stream_reference_;
-
- DISALLOW_COPY_AND_ASSIGN(SecureTunnelSession);
-};
-
-} // namespace cricket
-
-#endif // WEBRTC_LIBJINGLE_SESSION_TUNNEL_SECURETUNNELSESSIONCLIENT_H_
« no previous file with comments | « webrtc/libjingle/session/tunnel/pseudotcpchannel.cc ('k') | webrtc/libjingle/session/tunnel/securetunnelsessionclient.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698