TLDR: ¿Cómo puedo hacer que security set-key-partition-list
se ejecute contra una única entrada, en lugar de todo en el almacén de claves?
Estaba enfrentando problemas con un desajuste de cifrado con una aplicación dotnet/aspnet y un certificado autofirmado:
Finalmente encontré este problema en github, que me llevó a
log stream --process
Lo que arrojó:
securityd: [com.apple.securityd:integrity] failure extending partition
securityd: [com.apple.securityd:security_exception] MacOS error: 32
securityd: [com.apple.securityd:clientid] code requirement check failed (-67050), client is not Apple-signed
securityd: [com.apple.securityd:integrity] ACL partition mismatch: client teamid:UBF8T346G9 ACL ("cdhash:71c6a2e36e9b3aa01232049c467ebbad51311b9")
Buscando desde ahí llegué a esta pregunta en SO (!), que sugirió
sudo security set-key-partition-list -D localhost -S unsigned:,teamid:UBF8T346G9 $(security login-keychain)
Y voilà, funcionó - ahora puedo usar este certificado para ejecutar la aplicación localmente.
Pero, ese comando se ejecutó contra ~2489 entradas, en lugar del 1 que esperaba.
Entonces, ¿cómo puedo hacer que security set-key-partition-list
se ejecute contra una única entrada, en lugar de todo en el almacén de claves?
Parece que security find-key
tiene argumentos completamente diferentes que no parecen coincidir - o bien no obtengo resultados, o ~2489 resultados.
Incluso llegué al punto de explorar el código fuente para tratar de entender esto, pero no avancé mucho.