int32_t targetPlatform = get<int32_t>();
return mContext->directory && mContext->directory->platform == targetPlatform;
}
int32_t targetPlatform = get<int32_t>();
return mContext->directory && mContext->directory->platform == targetPlatform;
}
default:
// opcode not recognized - handle generically if possible, fail otherwise
if (op & (opGenericFalse | opGenericSkip)) {
default:
// opcode not recognized - handle generically if possible, fail otherwise
if (op & (opGenericFalse | opGenericSkip)) {
bool Requirement::Interpreter::certFieldValue(const string &key, const Match &match, SecCertificateRef cert)
{
bool Requirement::Interpreter::certFieldValue(const string &key, const Match &match, SecCertificateRef cert)
{
// unrecognized key. Fail but do not abort to promote backward compatibility down the road
secinfo("csinterp", "cert field notation \"%s\" not understood", key.c_str());
// unrecognized key. Fail but do not abort to promote backward compatibility down the road
secinfo("csinterp", "cert field notation \"%s\" not understood", key.c_str());
bool Requirement::Interpreter::certFieldGeneric(const string &key, const Match &match, SecCertificateRef cert)
{
// the key is actually a (binary) OID value
bool Requirement::Interpreter::certFieldGeneric(const string &key, const Match &match, SecCertificateRef cert)
{
// the key is actually a (binary) OID value
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
additionalTrustedCertificates = getAdditionalTrustedAnchors();
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
additionalTrustedCertificates = getAdditionalTrustedAnchors();