crypto#
Include dependency graph for crypto.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"4" [label="openssl/rand.h" tooltip="openssl/rand.h"]
"16" [label="variant" tooltip="variant"]
"6" [label="openssl/x509.h" tooltip="openssl/x509.h"]
"5" [label="openssl/sha.h" tooltip="openssl/sha.h"]
"13" [label="string" tooltip="string"]
"7" [label="utility.h" tooltip="utility.h"]
"14" [label="string_view" tooltip="string_view"]
"9" [label="condition_variable" tooltip="condition_variable"]
"12" [label="optional" tooltip="optional"]
"17" [label="vector" tooltip="vector"]
"2" [label="array" tooltip="array"]
"3" [label="openssl/evp.h" tooltip="openssl/evp.h"]
"11" [label="mutex" tooltip="mutex"]
"1" [label="src/crypto.h" tooltip="src/crypto.h" fillcolor="#BFBFBF"]
"15" [label="type_traits" tooltip="type_traits"]
"8" [label="algorithm" tooltip="algorithm"]
"10" [label="memory" tooltip="memory"]
"7" -> "8" [dir=forward tooltip="include"]
"7" -> "9" [dir=forward tooltip="include"]
"7" -> "10" [dir=forward tooltip="include"]
"7" -> "11" [dir=forward tooltip="include"]
"7" -> "12" [dir=forward tooltip="include"]
"7" -> "13" [dir=forward tooltip="include"]
"7" -> "14" [dir=forward tooltip="include"]
"7" -> "15" [dir=forward tooltip="include"]
"7" -> "16" [dir=forward tooltip="include"]
"7" -> "17" [dir=forward tooltip="include"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "3" [dir=forward tooltip="include"]
"1" -> "4" [dir=forward tooltip="include"]
"1" -> "5" [dir=forward tooltip="include"]
"1" -> "6" [dir=forward tooltip="include"]
"1" -> "7" [dir=forward tooltip="include"]
}](../../_images/graphviz-213b18294bdf0828597441b40d02e2df27692c37.png)
This graph shows which files directly or indirectly include crypto.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"10" [label="src/stream.cpp" tooltip="src/stream.cpp"]
"3" [label="src/crypto.cpp" tooltip="src/crypto.cpp"]
"6" [label="src/rtsp.h" tooltip="src/rtsp.h"]
"8" [label="src/upnp.cpp" tooltip="src/upnp.cpp"]
"5" [label="src/process.cpp" tooltip="src/process.cpp"]
"7" [label="src/main.cpp" tooltip="src/main.cpp"]
"9" [label="src/stream.h" tooltip="src/stream.h"]
"2" [label="src/confighttp.cpp" tooltip="src/confighttp.cpp"]
"1" [label="src/crypto.h" tooltip="src/crypto.h" fillcolor="#BFBFBF"]
"4" [label="src/httpcommon.cpp" tooltip="src/httpcommon.cpp"]
"6" -> "2" [dir=back tooltip="include"]
"6" -> "4" [dir=back tooltip="include"]
"6" -> "7" [dir=back tooltip="include"]
"6" -> "8" [dir=back tooltip="include"]
"9" -> "10" [dir=back tooltip="include"]
"9" -> "8" [dir=back tooltip="include"]
"1" -> "2" [dir=back tooltip="include"]
"1" -> "3" [dir=back tooltip="include"]
"1" -> "4" [dir=back tooltip="include"]
"1" -> "5" [dir=back tooltip="include"]
"1" -> "6" [dir=back tooltip="include"]
"1" -> "9" [dir=back tooltip="include"]
}](../../_images/graphviz-709ce1b32647ed6164e49a8f05b8f09a03325121.png)
todo
-
namespace crypto#
Typedefs
-
using aes_t = std::array<std::uint8_t, 16>#
-
using bignum_t = util::safe_ptr<BIGNUM, BN_free>#
-
using bio_t = util::safe_ptr<BIO, BIO_free_all>#
-
using cipher_ctx_t = util::safe_ptr<EVP_CIPHER_CTX, EVP_CIPHER_CTX_free>#
-
using md_ctx_t = util::safe_ptr<EVP_MD_CTX, md_ctx_destroy>#
-
using pkey_ctx_t = util::safe_ptr<EVP_PKEY_CTX, EVP_PKEY_CTX_free>#
-
using pkey_t = util::safe_ptr<EVP_PKEY, EVP_PKEY_free>#
-
using sha256_t = std::array<std::uint8_t, SHA256_DIGEST_LENGTH>#
-
using x509_store_ctx_t = util::safe_ptr<X509_STORE_CTX, X509_STORE_CTX_free>#
-
using x509_store_t = util::safe_ptr<X509_STORE, X509_STORE_free>#
-
using x509_t = util::safe_ptr<X509, X509_free>#
Variables
-
constexpr std::size_t digest_size = 256#
-
class cert_chain_t#
Public Functions
-
cert_chain_t()#
-
cert_chain_t(cert_chain_t&&) noexcept = default#
-
cert_chain_t &operator=(cert_chain_t&&) noexcept = default#
-
const char *verify(x509_t::element_type *cert)#
When certificates from two or more instances of Moonlight have been added to x509_store_t, only one of them will be verified by X509_verify_cert, resulting in only a single instance of Moonlight to be able to use Sunshine
To circumvent this, x509_store_t instance will be created for each instance of the certificates.
-
cert_chain_t()#
-
struct creds_t#
-
namespace cipher#
Functions
-
constexpr std::size_t round_to_pkcs7_padded(std::size_t size)#
Variables
-
constexpr std::size_t tag_size = 16#
-
class cbc_t : public crypto::cipher::cipher_t#
Inheritence diagram for crypto::cipher::cbc_t:
Collaboration diagram for crypto::cipher::cbc_t:
-
class cipher_t#
Inheritence diagram for crypto::cipher::cipher_t:
Collaboration diagram for crypto::cipher::cipher_t:
Subclassed by crypto::cipher::cbc_t, crypto::cipher::ecb_t, crypto::cipher::gcm_t
-
class ecb_t : public crypto::cipher::cipher_t#
Inheritence diagram for crypto::cipher::ecb_t:
Collaboration diagram for crypto::cipher::ecb_t:
-
constexpr std::size_t round_to_pkcs7_padded(std::size_t size)#
-
using aes_t = std::array<std::uint8_t, 16>#