# Passo Native — cryptographie et authentification Berkios

Source : https://docs.berkios.online/modules/passo/ · Section : Modules · Documentation officielle BERKIOS (https://docs.berkios.online)


Passo est la bibliothèque cryptographique native de Berkios. Son unique algorithme de stockage des mots de passe est **PBKDF2-HMAC-SHA256**, implémenté avec `node:crypto`.

- Aucun paquet `bcrypt` ou `argon2`.
- Aucune dépendance cryptographique à télécharger à l'installation.
- Sel aléatoire de 16 octets par mot de passe.
- 600 000 itérations par défaut, SHA-256, clé dérivée de 32 octets.
- Comparaison des empreintes avec `timingSafeEqual`.
- Comptes, tentatives et sessions persistés dans SQLite (`node:sqlite`).

## API

```js
import passo from './src/index.mjs';
import PassoAuthStore from './src/auth-store.mjs';

const empreinte = await passo.hacher('MonSecretFort2026!');
const valide = await passo.verifier('MonSecretFort2026!', empreinte);

const auth = new PassoAuthStore({ filename: './auth.sqlite' });
await auth.enregistrer('admin', 'MonSecretFort2026!');
const session = await auth.authentifier('admin', 'MonSecretFort2026!');
const utilisateur = auth.verifierSession(session.token);
auth.revoquerSession(session.token);
await auth.changerMotDePasse('admin', 'MonSecretFort2026!', 'UnAutreSecretFort2027!'); // révoque les sessions
auth.purgerSessions();                                  // nettoie sessions expirées
auth.fermer();
```

Node.js 22+ est requis pour SQLite natif (`node:sqlite`). Passo n'installe aucun pilote SQLite externe. Les commandes cryptographiques Bridge sont natives et utilisent le même module Passo.
