Las implementaciones, y en qué difieren
El servicio de GNOME, el de KDE y los demás: qué comparten por la especificación, en qué se comportan distinto, y qué pasa en un escritorio que no trae ninguno.
Las que existen
Qué garantiza la especificación
Lo que puedes dar por hecho si hay alguna implementación:
- Guardar, leer, borrar y buscar por atributos. Las cuatro operaciones del nivel 34.1 funcionan.
- La colección por omisión existe o se puede crear.
- Y el bloqueo y desbloqueo forman parte del protocolo, aunque cuándo y cómo se desbloquea sea de cada implementación.
Lo que no garantiza y por tanto no puedes usar:
- Que haya una interfaz gráfica para el usuario. La hay en las dos grandes; no siempre en las ligeras.
- Cuándo aparece una petición de contraseña, ni qué aspecto tiene.
- Ni ninguna noción de qué aplicación pregunta. Nivel 37.1.
La variabilidad que sí importa
Tres comportamientos que difieren y que hay que asumir en lugar de detectar:
El segundo bloque es la lección práctica: la tentación de detectar el escritorio aparece cuando algo falla, y casi siempre el diagnóstico correcto es otro —no hay servicio, el anillo está bloqueado— y se resuelve igual en todos.
Y la operación que puede bloquearse
Un detalle que conecta con la fase IV y que en Linux deja de ser teórico: una llamada al almacén puede tardar indefinidamente, porque al otro lado puede haber un diálogo esperando a que alguien escriba una contraseña.
En macOS pasa lo mismo con el diálogo de autorización, y en Windows no pasa nunca. Pero en Linux se junta con que también puede colgarse esperando a un servicio que no responde.
Conclusión operativa: las llamadas al almacén no van en el hilo principal ni en un manejador de eventos que bloquee la interfaz. Es el patrón del nivel 24 aplicado aquí, y es la razón por la que las funciones de secretos de una aplicación seria son asíncronas o se ejecutan en un hilo aparte aunque parezcan instantáneas.