/*
- * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2020 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
#ifndef SQUID_SRC_SECURITY_KEYDATA_H
#define SQUID_SRC_SECURITY_KEYDATA_H
+#include "anyp/forward.h"
#include "sbuf/SBuf.h"
#include "security/forward.h"
/// TLS certificate and private key details from squid.conf
class KeyData
{
+public:
+ /// load the contents of certFile and privateKeyFile into memory cert, pkey and chain
+ void loadFromFiles(const AnyP::PortCfg &, const char *portType);
+
public:
SBuf certFile; ///< path of file containing PEM format X.509 certificate
SBuf privateKeyFile; ///< path of file containing private key in PEM format
+
+ /// public X.509 certificate from certFile
+ Security::CertPointer cert;
+ /// private key from privateKeyFile
+ Security::PrivateKeyPointer pkey;
+ /// any certificates which must be chained from cert
+ Security::CertList chain;
+
+private:
+ bool loadX509CertFromFile();
+ void loadX509ChainFromFile();
+ bool loadX509PrivateKeyFromFile();
};
} // namespace Security