Saltar al contenido

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.