KEXT signing is not normal signing. It requires a special certificate issued by Apple. It cannot be done with a normal developer account. (Source: I have developed and signed KEXTs.)
Also why Nvidia's certificate leak is likely to be a red herring. They can't use their own certificate to sign. They'd need to get one from Apple. If you look at the trace on the first page: The Nvidia drivers are signed with Apple's Root CA. Not Nvidia's.
My read on this is Apple voided their KEXT through Gatekeeper. Signed things usually don't just expire on their own, even if the cert expires.
Did you try re-signing all the driver files with your developer account?
I tried signing with a local self signed codesigning certificate, but it doesn’t seem replace the signature correctly, because I’m still getting the nvidia signature revoked error in my boot log or kextload -> kextutil test.
I’m new to codesigning, is it even possible to fully replace the signature in .kext and .bundle files? Should I use
codesign -s CERNAME --deep --force pathtofile
(I haven’t tried deep yet, but I read somewhere you are not supposed to…?)
I also extracted the certificates Nvidia used with
codesign -dvvv pathtofile --extract-certificates
And converted them into der files
openssl x509 -inform DER -in codesign0 -text > codesign0.der
To store them in my keychain and “always trust” them as if I’m part of the team
This didn’t work, because still my OS is giving the CER Revoked invalid error. Where is this revoke status stores??
I removed all the files in /var/db/crls/*
There was a files with *.revoked extension so I though better trash that too.
Also found another OCSP cache with this command
getconf DARWIN_USER_CACHE_DIR
and used this path to find the folder com.apple.trustd to edit the ocspcache.sqlite3 db with this app
sqlitebrowser.org
But you could probably use this command
sudo sqlite3 darwinconfpath/com.apple.trustd/ocspcache.sqlite3 ‘DELETE * FROM ocsp;’
My OS still is able to remember that the Nvidia dev certificate signature has been revoked (without internet) …
I think the best solution is probably to re-sign the driver ourselves? But how to do it fully and properly?
Or we find exactly where the Certificate Revocation List crl is stored and make it so our OS doesn’t remember or contact Apple ocsp about it.
Help