aboutsummaryrefslogtreecommitdiff
path: root/cast/common/certificate/cast_trust_store.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cast/common/certificate/cast_trust_store.cc')
-rw-r--r--cast/common/certificate/cast_trust_store.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/cast/common/certificate/cast_trust_store.cc b/cast/common/certificate/cast_trust_store.cc
index 93db49ba..d8ec513c 100644
--- a/cast/common/certificate/cast_trust_store.cc
+++ b/cast/common/certificate/cast_trust_store.cc
@@ -4,6 +4,9 @@
#include "cast/common/certificate/cast_trust_store.h"
+#include <utility>
+
+#include "util/crypto/pem_helpers.h"
#include "util/osp_logging.h"
namespace openscreen {
@@ -48,6 +51,16 @@ CastTrustStore* CastTrustStore::CreateInstanceForTest(
return store_;
}
+// static
+CastTrustStore* CastTrustStore::CreateInstanceFromPemFile(
+ absl::string_view file_path,
+ TrustStore::Mode mode) {
+ OSP_DCHECK(!store_);
+ store_ = new CastTrustStore();
+ store_->trust_store_ = TrustStore::CreateInstanceFromPemFile(file_path, mode);
+ return store_;
+}
+
CastTrustStore::CastTrustStore() {
trust_store_.certs.emplace_back(MakeTrustAnchor(kCastRootCaDer));
trust_store_.certs.emplace_back(MakeTrustAnchor(kEurekaRootCaDer));
@@ -57,6 +70,9 @@ CastTrustStore::CastTrustStore(const std::vector<uint8_t>& trust_anchor_der) {
trust_store_.certs.emplace_back(MakeTrustAnchor(trust_anchor_der));
}
+CastTrustStore::CastTrustStore(TrustStore trust_store)
+ : trust_store_(std::move(trust_store)) {}
+
CastTrustStore::~CastTrustStore() = default;
// static