Saltar al contenido

Qué es un elemento del llavero

El modelo de macOS: llaveros, elementos, atributos y clases. Qué se guarda de verdad cuando guardas una contraseña, y por qué los atributos son la parte que importa.

Las cuatro piezas

La identidad de un elemento

El detalle que explica el comportamiento raro: un elemento no se identifica por un identificador que tú pongas, sino por la combinación de unos atributos concretos — para una contraseña genérica, el servicio y la cuenta.

De ahí salen tres consecuencias prácticas:

  • Guardar con el mismo servicio y la misma cuenta actualiza. No crea otro.
  • Guardar cambiando cualquiera de los dos crea uno nuevo, y el anterior sigue ahí. Es el origen de los llaveros con seis entradas de la misma aplicación.
  • Y buscar solo por servicio devuelve varios si hay varias cuentas. Si tu código coge el primero, coge uno cualquiera.
Rust
// mismo servicio + misma cuenta = el mismo elemento, se actualizaEntry::new("dev.wandres.miapp", "ana@ejemplo.com")?.set_password(&testigo)?;// cambia la cuenta y aparece un elemento nuevo; el de ana sigue en el llaveroEntry::new("dev.wandres.miapp", "luis@ejemplo.com")?.set_password(&otro)?;

Por eso el criterio del nivel 34.3 —la cuenta identifica al sujeto— no era estética: es lo que decide si tu aplicación actualiza o acumula.

Lo que sí se cifra y lo que no

Una distinción que casi nadie hace y que importa:

La consecuencia práctica: no metas información delicada en los atributos. Un servicio llamado con el nombre de tu aplicación está bien; una cuenta que sea el correo del usuario es normal y aceptado; un atributo que revele qué plan tiene contratado o qué hace con tu aplicación, no.

La clase, en una línea

Para lo que hace una aplicación de escritorio normal, contraseña genérica y punto. Es la clase pensada para «un secreto que mi aplicación guarda», con servicio y cuenta como identidad, y es lo que usan las librerías.

Las otras clases existen por razones concretas que probablemente no son la tuya: la de internet lleva servidor, protocolo, puerto y ruta —está pensada para navegadores y clientes de correo—; las de claves y certificados son para material criptográfico que el sistema usa, no para cadenas que tú guardas.