X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/79b9da22a1f4b26279940d285c1bc28ce4e99252..7e6b461318c8a779d91381531435a68ee4e8b6ed:/OSX/libsecurity_codesigning/lib/reqdumper.cpp diff --git a/OSX/libsecurity_codesigning/lib/reqdumper.cpp b/OSX/libsecurity_codesigning/lib/reqdumper.cpp index 75e240d5..f0fc8dd5 100644 --- a/OSX/libsecurity_codesigning/lib/reqdumper.cpp +++ b/OSX/libsecurity_codesigning/lib/reqdumper.cpp @@ -199,6 +199,15 @@ void Dumper::expr(SyntaxLevel level) case opCertField: print("certificate"); certSlot(); print("["); dotString(); print("]"); match(); break; + case opCertFieldDate: + print("certificate"); certSlot(); print("["); +#if TARGET_OS_OSX + { + const unsigned char *data; size_t length; + getData(data, length); + print("timestamp.%s", CssmOid((unsigned char *)data, length).toOid().c_str()); + } +#endif case opCertGeneric: print("certificate"); certSlot(); print("["); #if TARGET_OS_OSX @@ -239,6 +248,9 @@ void Dumper::expr(SyntaxLevel level) case opNotarized: print("notarized"); break; + case opLegacyDevID: + print("legacy"); + break; default: if (op & opGenericFalse) { print(" false /* opcode %d */", op & ~opFlagMask); @@ -274,6 +286,9 @@ void Dumper::match() case matchExists: print(" /* exists */"); break; + case matchAbsent: + print(" absent "); + break; case matchEqual: print(" = "); data(); break; @@ -298,6 +313,21 @@ void Dumper::match() case matchGreaterThan: print(" > "); data(); break; + case matchOn: + print(" = "); timestamp(); + break; + case matchBefore: + print(" < "); timestamp(); + break; + case matchAfter: + print(" > "); timestamp(); + break; + case matchOnOrBefore: + print(" <= "); timestamp(); + break; + case matchOnOrAfter: + print(" >= "); timestamp(); + break; default: print("MATCH OPCODE %d NOT UNDERSTOOD", op); break; @@ -362,6 +392,16 @@ void Dumper::data(PrintMode bestMode /* = isSimple */, bool dotOkay /* = false * break; } } + +void Dumper::timestamp() +{ + CFAbsoluteTime at = static_cast(get()); + CFRef date = CFDateCreate(NULL, at); + + CFRef str = CFCopyDescription(date); + + print("<%s>", cfString(str).c_str()); +} void Dumper::printBytes(const Byte *data, size_t length) {