#include "ios/web/public/security/cert_policy.h"
#include "net/cert/x509_certificate.h"
namespace web {
CertPolicy::CertPolicy() {}
CertPolicy::~CertPolicy() {}
CertPolicy::Judgment CertPolicy::Check(const net::X509Certificate* cert,
net::CertStatus error) const {
auto allowed_iter = allowed_.find(cert->CalculateChainFingerprint256());
if ((allowed_iter != allowed_.end()) && (allowed_iter->second & error) &&
!(~(allowed_iter->second & error) ^ ~error)) {
return ALLOWED;
}
return UNKNOWN;
}
void CertPolicy::Allow(const net::X509Certificate* cert,
net::CertStatus error) {
allowed_[cert->CalculateChainFingerprint256()] = error;
}
}