Repository navigation
feat(macos): la CA local se instala en la confianza de la persona usuaria de macOS - #2030
Merged
Merged
Conversation
added 2 commits
October 19, 2026 16:05
…aria de macOS Implements #2014: La CA local se instala en la confianza de la persona usuaria de macOS - MacosUserTrust sustituye a PendingMacosKeychainTrust: Security.framework en el dominio de la persona usuaria, con el diálogo de contraseña del sistema. - La confianza de macOS es un perfil más (MACOS_USER_TRUST) con la marca StoreBrand::Macos. - Cancelar el diálogo se distingue de un fallo y deja la CA como no instalada.
…agent/developer/issue-2014 # Conflicts: # rfirma-app/src-tauri/Cargo.toml # rfirma-app/src-tauri/src/desktop/domain/status.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2014
What changed
site/adapters/macos_trust.rs:MacosUserTrustsustituye aPendingMacosKeychainTrustdetrás deTrustStores. Instala la CA local en el llavero de inicio de sesión y la marca de confianza en el dominio de la persona usuaria (SecTrustSettingsSetTrustSettings), así que macOS pide la contraseña con su diálogo. Mide la confianza sin escribir y la retira (SecTrustSettingsRemoveTrustSettingsy la copia del llavero).local_caslista las CA de rFirma del llavero, de modo que el barrido de huérfanas también funciona en macOS.MACOS_USER_TRUST, comoSYSTEM_ROOT_STOREen Windows.brand_oflo rotulaStoreBrand::Macos, la misma marca que El Almacén de macOS lista los certificados del llavero #2004 da a los certificados del llavero (el contrato y la guarda de cruce ya la llevan).errAuthorizationCanceled,errSecUserCanceled), el error dice «se ha cancelado el diálogo de contraseña de macOS», no un fallo genérico. La señal vuelve a medir y deja la CA como no instalada, con su acción de instalar.security-framework,security-framework-sysycore-foundationpara macOS. Ya estaban enCargo.lock, y al fusionar quedó la declaración de El Almacén de macOS lista los certificados del llavero #2004.Decisiones sobre puntos ambiguos:
--debug-info(--debug-infoen macOS #2020), que depende de esta PR.tls_trust_settings_for_certificatedel crate no cuenta una configuración vacía, así quetrust_ofla reconoce aparte (always_trusted).storeBrandLabelno tiene caso para"macos".Test plan
desktop_trust_storesytrust_profilesde macOS.the_trust_profile_is_the_user_trust, en rojo antes de la marca; las guardassingle_cfg_os_sitesiguen en verde, porque el únicocfgestá ensite/adapters/mod.rs, ya autorizado.installing_with_the_password_given_shows_the_macos_store_trusting_the_local_cayan_expired_local_ca_is_replaced_and_the_macos_store_trusts_the_new_one; tambiénthe_macos_user_trust_is_the_macos_brand, que vi en rojo (Nssdb). Las pruebas de la señal salieron en verde a la primera porque la marca ya estaba; se pusieron en rojo conbrand_ofroto a propósito y después lo restauré.cancelling_the_password_dialog_leaves_the_local_ca_not_installed_and_offers_to_install_itya_cancelled_password_dialog_is_told_apart_from_a_failure, esta última vista en rojo con la rama de cancelación quitada.a_local_ca_never_installed_is_not_trusted, vista en rojo con la mutación, ya_path_that_is_not_the_user_trust_is_unreachable_without_asking_for_the_password. Pasan en local en un Mac.just lint-rust(clippy) en verde; las pruebas dedesktop::,identity::,site::adapters,site::application::trustycrossing::, y las guardassingle_cfg_os_site,contract_discovers_adapters,modules_open_with_a_header,comments_cite_nothing_that_rots,adr_citations_resolveymodule_directions, en verde después de fusionarspec-2000.