X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=blobdiff_plain;f=folly%2Fio%2Fasync%2FSSLContext.h;h=bdd04509119d4c82b34d1d769716ea9b9a57e7b9;hp=c8db033eb525e780599c920642e560e0bfba1b9e;hb=3e19d28a142149241d81c5e736aa4117fe7cbec8;hpb=36ac103264634cafe2944c33a9677ce9a8b2ac2d diff --git a/folly/io/async/SSLContext.h b/folly/io/async/SSLContext.h index c8db033e..bdd04509 100644 --- a/folly/io/async/SSLContext.h +++ b/folly/io/async/SSLContext.h @@ -275,6 +275,7 @@ class SSLContext { * @param cert A PEM formatted certificate */ virtual void loadCertificateFromBufferPEM(folly::StringPiece cert); + /** * Load private key. * @@ -288,6 +289,41 @@ class SSLContext { * @param pkey A PEM formatted key */ virtual void loadPrivateKeyFromBufferPEM(folly::StringPiece pkey); + + /** + * Load cert and key from PEM buffers. Guaranteed to throw if cert and + * private key mismatch so no need to call isCertKeyPairValid. + * + * @param cert A PEM formatted certificate + * @param pkey A PEM formatted key + */ + virtual void loadCertKeyPairFromBufferPEM( + folly::StringPiece cert, + folly::StringPiece pkey); + + /** + * Load cert and key from files. Guaranteed to throw if cert and key mismatch. + * Equivalent to calling loadCertificate() and loadPrivateKey(). + * + * @param certPath Path to the certificate file + * @param keyPath Path to the private key file + * @param certFormat Certificate file format + * @param keyFormat Private key file format + */ + virtual void loadCertKeyPairFromFiles( + const char* certPath, + const char* keyPath, + const char* certFormat = "PEM", + const char* keyFormat = "PEM"); + + /** + * Call after both cert and key are loaded to check if cert matches key. + * Must call if private key is loaded before loading the cert. + * No need to call if cert is loaded first before private key. + * @return true if matches, or false if mismatch. + */ + virtual bool isCertKeyPairValid() const; + /** * Load trusted certificates from specified file. *