Documentation développeur

Intégrez la preuve d'authenticité
en quelques minutes

Certifiez n'importe quel fichier avec un horodatage et une signature cryptographique. Les fichiers de vos utilisateurs sont hachés côté client — jamais téléversés, jamais stockés.

$ npm install evidencia

Comment ça marche

Trois étapes. Aucun fichier téléversé. La preuve est vérifiable mathématiquement par quiconque, partout, pour toujours.

1
Hash

Le SDK calcule une empreinte numérique du fichier sur l'appareil de l'utilisateur. Le fichier original ne quitte jamais le navigateur ni le serveur.

Côté client
2
Signature

Evidencia signe l'empreinte avec une clé cryptographique et émet un reçu horodaté — la preuve d'existence.

Serveur Evidencia
3
Vérification

N'importe qui peut vérifier le reçu contre la clé publique — hors ligne, en tribunal, ou via le portail de vérification.

Partout

Démarrage rapide

Créez votre première preuve en moins de 10 lignes de code.

import { Evidencia } from 'evidencia';

const client = new Evidencia({ apiKey: 'evd_sk_live_...' });

// Certifier une photo depuis un input fichier
const file = document.querySelector('#photo').files[0];
const proof = await client.proofs.create({
  file,
  captureMethod: 'mobile_camera',
});

console.log(proof.id);                // "prf_01J4X9..."
console.log(proof.receipt.signature); // signature cryptographique en base64
console.log(proof.receipt.timestamp); // "2026-03-14T10:42:00.000Z"
const { Evidencia, hashFile } = require('evidencia');
const fs = require('fs');

const client = new Evidencia({
  apiKey: process.env.EVIDENCIA_API_KEY,
});

// Hacher un fichier et créer une preuve
const buffer = fs.readFileSync('./evidence.pdf');
const fileHash = await hashFile(buffer);

const proof = await client.proofs.create({
  fileHash,
  captureMethod: 'server',
  metadata: { caseId: 'INS-2026-4821' },
});

// Vérifier la preuve
const result = await client.proofs.verify({
  proofId: proof.id,
  fileHash,
});
console.log(result.valid);                // true
console.log(result.checks.signatureValid); // true

Référence API

Tous les endpoints acceptent et retournent du JSON. L'authentification utilise un token Bearer dans le header Authorization.

Méthode Endpoint Auth Description
POST /v1/proofs API key Créer une nouvelle preuve à partir d'un hash de fichier
GET /v1/proofs API key Lister les preuves récentes (max 100, retourne proofs[], total, limit)
POST /v1/verify Public Vérifier la signature et le hash d'une preuve
GET /v1/publicKey Public Obtenir la clé publique active
GET /v1/info Public Métadonnées et capacités de l'API
GET /health Public Vérification de santé pour le monitoring

Format du reçu

Chaque preuve retourne un reçu autonome — un objet JSON signé, vérifiable hors ligne sans contacter Evidencia.

{
  "proofId": "prf_01J4X9K2M8...",
  "fileHash": "sha256:e3b0c44298fc...",
  "timestamp": "2026-03-14T10:42:00.000Z",
  "signature": "base64...",
  "verificationUrl": "https://verify.evidencia.tech/prf_01J4..."
}
proofId Identifiant unique de la preuve
fileHash Empreinte numérique du fichier original
timestamp ISO 8601 UTC — date de création de la preuve
signature Signature cryptographique du payload déterministe signé par Evidencia
verificationUrl URL de vérification publique de la preuve
mediaRef Optionnel — référence média durable pour les intégrations B2B

mediaRef — références média durables

Le champ mediaRef permet aux clients B2B d'attacher une référence durable au fichier certifié — un numéro de sinistre, un identifiant d'annonce ou une URL d'article. Il est stocké dans le reçu mais ne fait jamais partie du payload de signature. La preuve cryptographique est toujours le hash du fichier.

POST /v1/proofs — avec mediaRef
const proof = await client.proofs.create({
  fileHash: 'sha256:e3b0c44298fc1c14...',
  captureMethod: 'mobile_camera',
  metadata: {
    mediaRef: {
      type: 'insurance_claim',
      claimId: 'CLM-2026-4821',
      storage: 's3://bucket/claims/CLM-2026-4821/photo_001.jpg',
    },
  },
});
🏠
Assurance

Associez des numéros de sinistre et des chemins de stockage aux photos de dommages certifiées. Prouvez quand la photo a été prise, pas seulement quand le sinistre a été déclaré.

claimId: "CLM-2026-4821"
🛒
Marketplace

Certifiez les photos produit à la mise en ligne. Les acheteurs et équipes de litiges peuvent vérifier que l'original n'a pas été modifié après la vente.

listingId: "LST-8842"
📰
Journalisme

Certifiez les images brutes à la capture. Reliez-les à l'article publié ou à l'identifiant CMS pour une traçabilité de bout en bout.

articleUrl: "https://..."

SDK JavaScript

Le SDK officiel gère le hachage côté client, l'authentification, les tentatives automatiques et les types TypeScript. Compatible Node.js 18+ et tous les navigateurs modernes.

Installation
npm install evidencia
Navigateur — CDN
<script src="https://cdn.jsdelivr.net/npm/evidencia@1/evidencia.js"></script>
<script>
  const client = new Evidencia({ apiKey: 'evd_sk_live_...' });
</script>
Méthode Description
client.proofs.create(params) Créer une preuve. Accepte file ou fileHash, plus captureMethod et metadata optionnels.
client.proofs.retrieve(proofId) Récupérer un reçu de preuve par son identifiant.
client.proofs.verify(params) Vérifier la signature et optionnellement le hash du fichier. Accepte proofId ou un receipt inline.
client.publicKey.retrieve() Obtenir la clé publique active.
hashFile(input) Utilitaire d'empreinte numérique autonome. Accepte File, Blob, Buffer, ArrayBuffer, Uint8Array. Retourne une empreinte préfixée.

Sécurité

Evidencia est conçu pour l'intégrité cryptographique de bout en bout.

🔒
Signatures cryptographiques
Chaque preuve est signée avec une clé cryptographique de haute sécurité. Les signatures sont déterministes et vérifiables de manière indépendante.
🧮
Empreinte numérique
Les fichiers sont hachés côté client. Le fichier original ne touche jamais le serveur Evidencia.
🔑
Sécurité des clés API
Les clés API sont protégées par un algorithme de hachage renforcé avant stockage. Les clés brutes ne sont jamais persistées en base de données.
🛡
Aucun stockage de médias
Evidencia stocke les hash et les reçus — jamais les fichiers originaux. Vos données restent sur votre infrastructure.
🌐
Content Security Policy
Headers CSP stricts via Helmet. Aucun script inline, pas d'eval, aucun tracker tiers.
Payload de signature déterministe
Le payload de signature utilise un format déterministe. Modifier un seul octet invalide la signature.

Prêt à intégrer ?

Demandez une clé API et commencez à certifier vos fichiers en quelques minutes.

Demander une clé API