Only create CSR once per app invocation
Summary: The CSR has no need to change, don't recreate it every time we need it. Useful for the physical iOS case especially, because it connects to the portforwarder and keeps attempting to send a CSR. Reviewed By: passy Differential Revision: D14131617 fbshipit-source-id: 82a69d5aff813d77fa05dd13fc2441b784766d99
This commit is contained in:
committed by
Facebook Github Bot
parent
b594fb7c76
commit
9c87dfe230
@@ -42,7 +42,10 @@ bool ConnectionContextStore::hasRequiredFiles() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ConnectionContextStore::createCertificateSigningRequest() {
|
std::string ConnectionContextStore::getCertificateSigningRequest() {
|
||||||
|
if (csr != "") {
|
||||||
|
return csr;
|
||||||
|
}
|
||||||
resetFlipperDir();
|
resetFlipperDir();
|
||||||
bool success = generateCertSigningRequest(
|
bool success = generateCertSigningRequest(
|
||||||
deviceData_.appId.c_str(),
|
deviceData_.appId.c_str(),
|
||||||
@@ -51,7 +54,7 @@ std::string ConnectionContextStore::createCertificateSigningRequest() {
|
|||||||
if (!success) {
|
if (!success) {
|
||||||
throw new std::runtime_error("Failed to generate CSR");
|
throw new std::runtime_error("Failed to generate CSR");
|
||||||
}
|
}
|
||||||
std::string csr = loadStringFromFile(absoluteFilePath(CSR_FILE_NAME));
|
csr = loadStringFromFile(absoluteFilePath(CSR_FILE_NAME));
|
||||||
|
|
||||||
return csr;
|
return csr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class ConnectionContextStore {
|
|||||||
public:
|
public:
|
||||||
ConnectionContextStore(DeviceData deviceData);
|
ConnectionContextStore(DeviceData deviceData);
|
||||||
bool hasRequiredFiles();
|
bool hasRequiredFiles();
|
||||||
std::string createCertificateSigningRequest();
|
std::string getCertificateSigningRequest();
|
||||||
std::shared_ptr<SSLContext> getSSLContext();
|
std::shared_ptr<SSLContext> getSSLContext();
|
||||||
std::string getCertificateDirectoryPath();
|
std::string getCertificateDirectoryPath();
|
||||||
std::string getDeviceId();
|
std::string getDeviceId();
|
||||||
@@ -29,6 +29,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
DeviceData deviceData_;
|
DeviceData deviceData_;
|
||||||
|
std::string csr = "";
|
||||||
|
|
||||||
std::string absoluteFilePath(const char* filename);
|
std::string absoluteFilePath(const char* filename);
|
||||||
bool resetFlipperDir();
|
bool resetFlipperDir();
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ bool FlipperConnectionManagerImpl::isCertificateExchangeNeeded() {
|
|||||||
|
|
||||||
void FlipperConnectionManagerImpl::requestSignedCertFromFlipper() {
|
void FlipperConnectionManagerImpl::requestSignedCertFromFlipper() {
|
||||||
auto generatingCSR = flipperState_->start("Generate CSR");
|
auto generatingCSR = flipperState_->start("Generate CSR");
|
||||||
std::string csr = contextStore_->createCertificateSigningRequest();
|
std::string csr = contextStore_->getCertificateSigningRequest();
|
||||||
generatingCSR->complete();
|
generatingCSR->complete();
|
||||||
|
|
||||||
folly::dynamic message =
|
folly::dynamic message =
|
||||||
|
|||||||
Reference in New Issue
Block a user