1
0
mirror of https://github.com/bitwarden/help synced 2025-12-22 19:23:19 +00:00
Files
help/vendor/bundle/ruby/2.6.0/gems/eventmachine-1.2.7/ext/ssl.h
fred_the_tech_writer 906e2ca0dd Promote to Master (#748)
* initial commit

* adding quotes for the array error

* Create Gemfile

* Create Gemfile.lock

* add .nvmrc and .node-version

* removed /article from URL

* update links to work with netlify

* more fixed links

* link fixes

* update bad links

* Update netlify.toml

toml test for redirects

* article redirect

* link fixes

* Update index.html

* Update netlify.toml

* Update _config.yml

* Update netlify.toml

* Update netlify.toml

* Update netlify.toml

* Update netlify.toml

* Update netlify.toml

* add article back into URL for launch

* Update netlify.toml

* Update netlify.toml

* add order to categories front matter

* Update netlify.toml

* update

* sidemenu update

* Revert "sidemenu update"

This reverts commit 5441c3d35c.

* update order prop

* Navbar updates per Gary and compiler warnings

* font/style tweaks

* Update sidebar.html

* Stage Release Documentation (#739)

* initial drafts

* rewrite Custom Fields article to prioritize new context-menu option & better organize ancillary information

* edit

* edit

* Custom Field Context Menu & CAPTCHA item in release notes

* SSO relink event

* update rn

* small edits

* improve release notes titles

* fix side menu

* Edits courtest of mportune!

* update order

* link fixes

* link cleanup

* image updates and a link

* fix trailing slash

Co-authored-by: DanHillesheim <79476558+DanHillesheim@users.noreply.github.com>
2021-09-21 13:21:11 -04:00

104 lines
2.4 KiB
C++

/*****************************************************************************
$Id$
File: ssl.h
Date: 30Apr06
Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
Gmail: blackhedd
This program is free software; you can redistribute it and/or modify
it under the terms of either: 1) the GNU General Public License
as published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version; or 2) Ruby's License.
See the file COPYING for complete licensing information.
*****************************************************************************/
#ifndef __SslBox__H_
#define __SslBox__H_
#ifdef WITH_SSL
/******************
class SslContext_t
******************/
class SslContext_t
{
public:
SslContext_t (bool is_server, const std::string &privkeyfile, const std::string &certchainfile, const std::string &cipherlist, const std::string &ecdh_curve, const std::string &dhparam, int ssl_version);
virtual ~SslContext_t();
private:
static bool bLibraryInitialized;
private:
bool bIsServer;
SSL_CTX *pCtx;
EVP_PKEY *PrivateKey;
X509 *Certificate;
friend class SslBox_t;
};
/**************
class SslBox_t
**************/
#define SSLBOX_INPUT_CHUNKSIZE 2019
#define SSLBOX_OUTPUT_CHUNKSIZE 2048
#define SSLBOX_WRITE_BUFFER_SIZE 8192 // (SSLBOX_OUTPUT_CHUNKSIZE * 4)
class SslBox_t
{
public:
SslBox_t (bool is_server, const std::string &privkeyfile, const std::string &certchainfile, bool verify_peer, bool fail_if_no_peer_cert, const std::string &snihostname, const std::string &cipherlist, const std::string &ecdh_curve, const std::string &dhparam, int ssl_version, const uintptr_t binding);
virtual ~SslBox_t();
int PutPlaintext (const char*, int);
int GetPlaintext (char*, int);
bool PutCiphertext (const char*, int);
bool CanGetCiphertext();
int GetCiphertext (char*, int);
bool IsHandshakeCompleted() {return bHandshakeCompleted;}
X509 *GetPeerCert();
int GetCipherBits();
const char *GetCipherName();
const char *GetCipherProtocol();
const char *GetSNIHostname();
void Shutdown();
protected:
SslContext_t *Context;
bool bIsServer;
bool bHandshakeCompleted;
bool bVerifyPeer;
bool bFailIfNoPeerCert;
SSL *pSSL;
BIO *pbioRead;
BIO *pbioWrite;
PageList OutboundQ;
};
extern "C" int ssl_verify_wrapper(int, X509_STORE_CTX*);
#endif // WITH_SSL
#endif // __SslBox__H_