XRootD
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()

static 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()

static 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().

+ 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().