1 /* 2 * Copyright 2011-2015, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _SECURE_SOCKET_H 6 #define _SECURE_SOCKET_H 7 8 9 #include <Socket.h> 10 11 12 class BCertificate; 13 14 15 class BSecureSocket : public BSocket { 16 public: 17 BSecureSocket(); 18 BSecureSocket(const BNetworkAddress& peer, 19 bigtime_t timeout = B_INFINITE_TIMEOUT); 20 BSecureSocket(const BSecureSocket& other); 21 virtual ~BSecureSocket(); 22 23 virtual bool CertificateVerificationFailed(BCertificate& 24 certificate, const char* message); 25 26 status_t InitCheck(); 27 28 // BSocket implementation 29 30 virtual status_t Connect(const BNetworkAddress& peer, 31 bigtime_t timeout = B_INFINITE_TIMEOUT); 32 virtual void Disconnect(); 33 34 virtual status_t WaitForReadable(bigtime_t timeout 35 = B_INFINITE_TIMEOUT) const; 36 37 // BDataIO implementation 38 39 virtual ssize_t Read(void* buffer, size_t size); 40 virtual ssize_t Write(const void* buffer, size_t size); 41 42 protected: 43 status_t _Setup(); 44 45 private: 46 friend class BCertificate; 47 class Private; 48 Private* fPrivate; 49 }; 50 51 52 #endif // _SECURE_SOCKET_H 53