DÉMO

📄 Certifier un document

Uploadez votre PDF, placez le QR code à l'endroit voulu, certifiez.

📄

Glissez votre PDF ici ou cliquez

A5 · A4 · A3 · A2 · A1 · A0

OUTIL

📐 Outil de position

Uploadez un PDF, déplacez le QR code, récupérez les coordonnées X% et Y% à envoyer à l'API.

📄

Glissez votre PDF ici ou cliquez

v1.0

ASN-CRYPTODOME

Certification et vérification de documents PDF — ECDSA P-256.

1

Envoyez votre PDF via l'API

2

ASN certifie — hash + signature + QR + DRM

3

Vous recevez hash + QR SVG

4

Vos clients vérifient localement

Clé publique ASN

POST /api/v1/protect

QR placé en bas à droite par défaut. Personnalisable avec qr_x, qr_y.
Param Type Requis Description
file PDF Document
mode string non public / private
metadata JSON non Max 8 champs
redirect_url string non URL vérif
user_key string si private Clé AES
logo PNG/JPG non Logo QR
qr_x float non X %
qr_y float non Y %
qr_size float non Taille %

Simple

curl -X POST http://localhost:8100/api/v1/protect -F "file=@doc.pdf"

Complet

curl -X POST http://localhost:8100/api/v1/protect \
  -F "file=@doc.pdf" -F "mode=public" \
  -F 'metadata={"a":"RTI","t":"CCV"}' \
  -F "logo=@logo.png"

POST /api/v1/verify/upload

curl -X POST http://localhost:8100/api/v1/verify/upload -F "file=@certified.pdf"

QR SVG

SVG autonome — logo embarqué. ASN ne conserve rien.

Python

with open("qr.svg","w") as f: f.write(result["qr_svg"])

PHP

file_put_contents("qr.svg", $result["qr_svg"]);

PHP

<?php
$p=$_GET['p']??'';$pad=4-strlen($p)%4;if($pad!==4)$p.=str_repeat('=',$pad);
$d=json_decode(base64_decode(strtr($p,'-_','+/')),true);
$c=json_encode(['at'=>$d['at'],'h'=>$d['h'],'m'=>$d['m']],JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
echo openssl_verify($c,hex2bin($d['sig']),file_get_contents('keys/asn_public_key.pem'),OPENSSL_ALGO_SHA256)===1?"✅":"❌";

React / JS

// Décoder base64url puis vérifier ECDSA via Web Crypto API

Python

from Crypto.PublicKey import ECC
from Crypto.Signature import DSS
from Crypto.Hash import SHA256
# Vérifier sig ECDSA avec clé publique ASN

Payload

Champ Description
h Hash SHA-256
m Metadata
at Date ISO 8601
sig Signature ECDSA

Modes

Mode m Qui lit
public JSON Tous
private Chiffré Détenteur clé

FAQ

Appeler ASN ?

Non. Local.

ASN stocke ?

Non.

Logo lisible ?

Oui. H 30%. Logo 16%.