XRootD
Loading...
Searching...
No Matches
XrdCryptosslCipher.cc File Reference
#include <cstring>
#include <cassert>
#include "XrdSut/XrdSutRndm.hh"
#include "XrdCrypto/XrdCryptosslTrace.hh"
#include "XrdCrypto/XrdCryptosslCipher.hh"
#include <openssl/bio.h>
#include <openssl/pem.h>
#include <openssl/dh.h>
Include dependency graph for XrdCryptosslCipher.cc:

Go to the source code of this file.

Functions

static EVP_PKEY * getFixedDHParams ()
static int XrdCheckDH (EVP_PKEY *pkey)

Variables

static const char dh_param_enc []

Function Documentation

◆ getFixedDHParams()

EVP_PKEY * getFixedDHParams ( )
static

Definition at line 76 of file XrdCryptosslCipher.cc.

76 {
77 static EVP_PKEY *dhparms = [] {
78 EVP_PKEY *dhParam = 0;
79
80 BIO *biop = BIO_new(BIO_s_mem());
81 BIO_write(biop, dh_param_enc, strlen(dh_param_enc));
82 PEM_read_bio_Parameters(biop, &dhParam);
83 BIO_free(biop);
84 return dhParam;
85 }();
86
87 assert(dhparms);
88 return dhparms;
89}
static const char dh_param_enc[]

References dh_param_enc.

Referenced by XrdCryptosslCipher::XrdCryptosslCipher(), and XrdCheckDH().

Here is the caller graph for this function:

◆ XrdCheckDH()

int XrdCheckDH ( EVP_PKEY * pkey)
static

Definition at line 91 of file XrdCryptosslCipher.cc.

91 {
92 // If the DH parameters we received are our fixed set we know they
93 // are acceptable. The parameter check requires computation and more
94 // with openssl 3 than previously. So skip if DH params are known.
95 const EVP_PKEY *dhparms = getFixedDHParams();
96#if OPENSSL_VERSION_NUMBER >= 0x30000000L
97 const bool skipcheck = EVP_PKEY_parameters_eq(pkey, dhparms);
98#else
99 const bool skipcheck = EVP_PKEY_cmp_parameters(pkey, dhparms);
100#endif
101 if (skipcheck) return 1;
102
103 int rc;
104 EVP_PKEY_CTX *ckctx = EVP_PKEY_CTX_new(pkey, 0);
105 rc = EVP_PKEY_param_check(ckctx);
106 EVP_PKEY_CTX_free(ckctx);
107 return rc;
108}
static EVP_PKEY * getFixedDHParams()

References getFixedDHParams().

Referenced by XrdCryptosslCipher::XrdCryptosslCipher(), XrdCryptosslCipher::XrdCryptosslCipher(), and XrdCryptosslCipher::XrdCryptosslCipher().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ dh_param_enc

const char dh_param_enc[]
static
Initial value:
=
R"(
-----BEGIN DH PARAMETERS-----
MIIBiAKCAYEAzcEAf3ZCkm0FxJLgKd1YoT16Hietl7QV8VgJNc5CYKmRu/gKylxT
MVZJqtUmoh2IvFHCfbTGEmZM5LdVaZfMLQf7yXjecg0nSGklYZeQQ3P0qshFLbI9
u3z1XhEeCbEZPq84WWwXacSAAxwwRRrN5nshgAavqvyDiGNi+GqYpqGPb9JE38R3
GJ51FTPutZlvQvEycjCbjyajhpItBB+XvIjWj2GQyvi+cqB0WrPQAsxCOPrBTCZL
OjM0NfJ7PQfllw3RDQev2u1Q+Rt8QyScJQCFUj/SWoxpw2ydpWdgAkrqTmdVYrev
x5AoXE52cVIC8wfOxaaJ4cBpnJui3Y0jZcOQj0FtC0wf4WcBpHnLLBzKSOQwbxts
WE8LkskPnwwrup/HqWimFFg40bC9F5Lm3CTDCb45mtlBxi3DydIbRLFhGAjlKzV3
s9G3opHwwfgXpFf3+zg7NPV3g1//HLgWCvooOvMqaO+X7+lXczJJLMafEaarcAya
Kyo8PGKIAORrAgEF
-----END DH PARAMETERS-----
)"

Definition at line 55 of file XrdCryptosslCipher.cc.

Referenced by getFixedDHParams().