{"id":1466,"date":"2026-10-08T20:51:54","date_gmt":"2026-10-08T20:51:54","guid":{"rendered":"https:\/\/clr-cert.eu\/?page_id=1466"},"modified":"2026-10-29T14:03:33","modified_gmt":"2026-10-29T14:03:33","slug":"produits-certifies","status":"publish","type":"page","link":"https:\/\/clr-cert.eu\/en\/produits-certifies\/","title":{"rendered":"Certified Products"},"content":{"rendered":"\n<!-- ============================================================\n     CLR CERT \u2014 Liste des produits certifi\u00e9s\n     \u00c0 coller dans un bloc \u00ab HTML personnalis\u00e9 \u00bb de WordPress.\n     Pour modifier les produits : voir la section DONN\u00c9ES plus bas.\n     ============================================================ -->\n<div id=\"clr-catalogue\">\n\n  <style>\n    #clr-catalogue {\n      \/* Couleurs du site CLR Cert (reprises des r\u00e9glages Elementor) *\/\n      --clr-accent: #1C3A4D;        \/* bleu principal *\/\n      --clr-beige: #D8C6B3;         \/* couleur secondaire *\/\n      --clr-accent-clair: #EFE7DE;  \/* beige clair (survol) *\/\n      --clr-gris-clair: #F5F5F5;    \/* fond clair *\/\n      --clr-texte: #1C3A4D;\n      --clr-gris: #5B6B76;\n      --clr-bord: #E1E1E1;\n      --clr-fond: #ffffff;\n      font-family: \"Roboto\", Arial, sans-serif;\n      color: var(--clr-texte);\n      max-width: 1200px;\n      margin: 0 auto;\n    }\n    #clr-catalogue * { box-sizing: border-box; }\n\n    \/* Recherche *\/\n    #clr-catalogue .clr-recherche {\n      width: 100%;\n      padding: 12px 16px;\n      font-size: 16px;\n      border: 1px solid var(--clr-bord);\n      border-radius: 8px;\n      margin-bottom: 20px;\n    }\n    #clr-catalogue .clr-recherche:focus {\n      outline: none;\n      border-color: var(--clr-accent);\n      box-shadow: 0 0 0 3px var(--clr-accent-clair);\n    }\n\n    \/* Onglets horizontaux (cat\u00e9gories) *\/\n    #clr-catalogue .clr-onglets {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 4px;\n      border-bottom: 3px solid var(--clr-accent);\n      margin-bottom: 24px;\n    }\n    #clr-catalogue .clr-onglet {\n      background: var(--clr-gris-clair);\n      border: none;\n      border-radius: 6px 6px 0 0;\n      padding: 12px 18px;\n      font-size: 15px;\n      font-weight: 600;\n      color: var(--clr-accent);\n      cursor: pointer;\n      transition: background .15s;\n    }\n    #clr-catalogue .clr-onglet:hover { background: var(--clr-beige); }\n    #clr-catalogue .clr-onglet.actif {\n      background: var(--clr-accent);\n      color: #ffffff;\n    }\n\n    \/* Mise en page : sous-cat\u00e9gories \u00e0 gauche, produits \u00e0 droite *\/\n    #clr-catalogue .clr-corps {\n      display: grid;\n      grid-template-columns: 240px minmax(0, 1fr);\n      gap: 28px;\n      align-items: start;\n    }\n    \/* Position verrouill\u00e9e : rien ne peut d\u00e9caler les deux colonnes *\/\n    #clr-catalogue .clr-corps > .clr-sous-liste { grid-column: 1; grid-row: 1; }\n    #clr-catalogue .clr-corps > .clr-droite { grid-column: 2; grid-row: 1; min-width: 0; }\n    \/* Paragraphes vides ou sauts de ligne ajout\u00e9s par WordPress : masqu\u00e9s *\/\n    #clr-catalogue .clr-corps > :not(.clr-sous-liste):not(.clr-droite),\n    #clr-catalogue > br,\n    #clr-catalogue > p:empty { display: none; }\n    \/* Neutralise les marges que le th\u00e8me applique aux listes *\/\n    #clr-catalogue ul, #clr-catalogue li { margin: 0; padding: 0; list-style: none; }\n\n    \/* Liste verticale (sous-cat\u00e9gories) *\/\n    #clr-catalogue .clr-sous-liste {\n      list-style: none;\n      margin: 0;\n      padding: 0;\n      border: 1px solid var(--clr-bord);\n      border-radius: 8px;\n      overflow: hidden;\n    }\n    #clr-catalogue .clr-sous {\n      display: flex;\n      justify-content: space-between;\n      width: 100%;\n      background: var(--clr-gris-clair);\n      border: none;\n      border-bottom: 1px solid var(--clr-bord);\n      padding: 12px 16px;\n      font-size: 14px;\n      text-align: left;\n      color: var(--clr-texte);\n      cursor: pointer;\n    }\n    #clr-catalogue li:last-child .clr-sous { border-bottom: none; }\n    #clr-catalogue .clr-sous:hover { background: var(--clr-accent-clair); }\n    #clr-catalogue .clr-sous.actif {\n      background: var(--clr-accent);\n      color: #fff;\n      font-weight: 600;\n    }\n    #clr-catalogue .clr-nb {\n      font-size: 12px;\n      opacity: .75;\n    }\n\n    \/* Produits *\/\n    #clr-catalogue .clr-info {\n      font-size: 14px;\n      color: var(--clr-gris);\n      margin: 0 0 14px;\n    }\n    #clr-catalogue .clr-grille {\n      display: grid;\n      grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));\n      gap: 16px;\n    }\n    #clr-catalogue .clr-carte {\n      border: 1px solid var(--clr-bord);\n      border-top: 4px solid var(--clr-beige);\n      border-radius: 8px;\n      padding: 18px;\n      background: var(--clr-gris-clair);\n      display: flex;\n      flex-direction: column;\n      gap: 6px;\n      cursor: pointer;\n      transition: border-color .15s, box-shadow .15s;\n    }\n    #clr-catalogue .clr-carte:hover,\n    #clr-catalogue .clr-carte:focus-visible {\n      border-color: var(--clr-accent);\n      border-top-color: var(--clr-accent);\n      box-shadow: 0 4px 14px rgba(28, 58, 77, .15);\n      outline: none;\n    }\n    #clr-catalogue .clr-carte .clr-titre {\n      font-size: 16px;\n      margin: 0 0 4px;\n      line-height: 1.3;\n    }\n    #clr-catalogue .clr-ligne {\n      font-size: 13px;\n      color: var(--clr-gris);\n      margin: 0;\n    }\n    #clr-catalogue .clr-ligne strong { color: var(--clr-texte); font-weight: 600; }\n    #clr-catalogue .clr-voir {\n      margin-top: auto;\n      align-self: flex-start;\n      padding: 8px 14px;\n      border-radius: 6px;\n      background: var(--clr-accent);\n      color: #ffffff;\n      font-size: 13px;\n      font-weight: 600;\n      transition: background .15s, color .15s;\n    }\n    #clr-catalogue .clr-carte:hover .clr-voir {\n      background: var(--clr-beige);\n      color: var(--clr-accent);\n    }\n    #clr-catalogue .clr-vide {\n      padding: 40px 20px;\n      text-align: center;\n      color: var(--clr-gris);\n      border: 1px dashed var(--clr-bord);\n      border-radius: 8px;\n    }\n\n    \/* Fen\u00eatre du tableau produit *\/\n    #clr-catalogue .clr-voile {\n      position: fixed;\n      inset: 0;\n      background: rgba(15, 23, 32, .55);\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      padding: 16px;\n      z-index: 99999;\n    }\n    #clr-catalogue .clr-voile[hidden] { display: none; }\n    #clr-catalogue .clr-fenetre {\n      background: var(--clr-fond);\n      border-radius: 10px;\n      width: 100%;\n      max-width: 640px;\n      max-height: 90vh;\n      overflow-y: auto;\n      box-shadow: 0 20px 50px rgba(0, 0, 0, .25);\n    }\n    #clr-catalogue .clr-entete {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      gap: 12px;\n      padding: 18px 22px;\n      border-bottom: 1px solid var(--clr-bord);\n      position: sticky;\n      top: 0;\n      background: var(--clr-fond);\n    }\n    #clr-catalogue .clr-entete h2 {\n      font-size: 18px;\n      margin: 0;\n      line-height: 1.3;\n    }\n    #clr-catalogue .clr-fermer {\n      background: none;\n      border: 1px solid var(--clr-bord);\n      border-radius: 6px;\n      width: 36px;\n      height: 36px;\n      flex-shrink: 0;\n      font-size: 20px;\n      line-height: 1;\n      color: var(--clr-gris);\n      cursor: pointer;\n    }\n    #clr-catalogue .clr-fermer:hover { color: var(--clr-texte); border-color: var(--clr-gris); }\n    #clr-catalogue .clr-contenu { padding: 18px 22px 22px; }\n    #clr-catalogue .clr-tableau {\n      width: 100%;\n      border-collapse: collapse;\n      font-size: 14px;\n      margin: 0;\n    }\n    #clr-catalogue .clr-tableau th,\n    #clr-catalogue .clr-tableau td {\n      border: none;\n      padding: 10px 14px;\n      text-align: center;\n      vertical-align: middle;\n      color: #000000;\n    }\n    \/* Lignes altern\u00e9es gris clair \/ beige, comme l'ancien tableau *\/\n    #clr-catalogue .clr-tableau tr:nth-child(odd) th,\n    #clr-catalogue .clr-tableau tr:nth-child(odd) td { background: var(--clr-gris-clair); }\n    #clr-catalogue .clr-tableau tr:nth-child(even) th,\n    #clr-catalogue .clr-tableau tr:nth-child(even) td { background: var(--clr-beige); }\n    #clr-catalogue .clr-tableau th {\n      width: 45%;\n      font-weight: 400;\n    }\n    #clr-catalogue .clr-entete {\n      background: var(--clr-accent);\n    }\n    #clr-catalogue .clr-entete h2 { color: #ffffff; }\n    #clr-catalogue .clr-fermer {\n      color: #ffffff;\n      border-color: rgba(255, 255, 255, .4);\n    }\n    #clr-catalogue .clr-fermer:hover { border-color: #ffffff; }\n    #clr-catalogue .clr-lien {\n      display: inline-block;\n      margin-top: 16px;\n      padding: 10px 16px;\n      background: var(--clr-accent);\n      color: #fff;\n      border-radius: 6px;\n      font-size: 14px;\n      font-weight: 600;\n      text-decoration: none;\n    }\n    #clr-catalogue .clr-lien:hover { opacity: .9; }\n\n    \/* Pastille sur un onglet qui a un filtre actif *\/\n    #clr-catalogue .clr-pastille {\n      display: inline-block;\n      width: 8px;\n      height: 8px;\n      margin-left: 8px;\n      border-radius: 50%;\n      background: var(--clr-beige);\n      vertical-align: middle;\n    }\n\n    \/* Filtres actifs *\/\n    #clr-catalogue .clr-actifs {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: center;\n      gap: 8px;\n      margin: 0 0 14px;\n    }\n    #clr-catalogue .clr-actifs:empty { display: none; }\n    #clr-catalogue .clr-puce {\n      display: inline-flex;\n      align-items: center;\n      gap: 6px;\n      padding: 6px 10px 6px 12px;\n      border: none;\n      border-radius: 20px;\n      background: var(--clr-beige);\n      color: var(--clr-accent);\n      font-size: 13px;\n      cursor: pointer;\n    }\n    #clr-catalogue .clr-puce:hover { background: var(--clr-accent-clair); }\n    #clr-catalogue .clr-puce b { font-size: 15px; line-height: 1; }\n    #clr-catalogue .clr-effacer {\n      background: none;\n      border: none;\n      padding: 6px 4px;\n      font-size: 13px;\n      color: var(--clr-accent);\n      text-decoration: underline;\n      cursor: pointer;\n    }\n\n    \/* ===== Protection contre les styles du th\u00e8me ===== *\/\n    \/* Pas d'\u00e9l\u00e9ments invisibles ajout\u00e9s par le th\u00e8me dans les grilles *\/\n    #clr-catalogue .clr-grille::before, #clr-catalogue .clr-grille::after,\n    #clr-catalogue .clr-corps::before, #clr-catalogue .clr-corps::after,\n    #clr-catalogue .clr-onglets::before, #clr-catalogue .clr-onglets::after,\n    #clr-catalogue .clr-sous-liste::before, #clr-catalogue .clr-sous-liste::after,\n    #clr-catalogue div::before, #clr-catalogue div::after {\n      content: none !important;\n      display: none !important;\n    }\n    #clr-catalogue .clr-grille > * { margin: 0 !important; float: none !important; width: auto !important; }\n    \/* Textes des cartes : m\u00eame police et espacement partout *\/\n    #clr-catalogue .clr-carte .clr-titre {\n      font-family: \"Roboto\", Arial, sans-serif;\n      font-size: 16px;\n      font-weight: 600;\n      color: var(--clr-texte);\n      line-height: 1.3;\n      margin: 0 0 4px;\n    }\n    #clr-catalogue .clr-carte .clr-ligne { line-height: 1.45; margin: 0; }\n    \/* Champ de recherche : notre loupe, plac\u00e9e \u00e0 gauche du texte *\/\n    #clr-catalogue input.clr-recherche {\n      padding: 12px 16px 12px 44px !important;\n      background-color: #ffffff !important;\n      background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235B6B76' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'\/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'\/%3E%3C\/svg%3E\") !important;\n      background-repeat: no-repeat !important;\n      background-position: 16px center !important;\n      background-size: 18px 18px !important;\n      height: auto !important;\n      line-height: 1.4 !important;\n      box-sizing: border-box !important;\n    }\n\n    \/* Mobile : la liste verticale devient une rang\u00e9e d\u00e9filante *\/\n    @media (max-width: 760px) {\n      #clr-catalogue .clr-corps { grid-template-columns: minmax(0, 1fr); gap: 16px; }\n      #clr-catalogue .clr-corps > .clr-droite { grid-column: 1; grid-row: 2; }\n      #clr-catalogue .clr-onglets { flex-wrap: nowrap; overflow-x: auto; }\n      #clr-catalogue .clr-onglet { white-space: nowrap; padding: 10px 14px; }\n      #clr-catalogue .clr-sous-liste {\n        display: flex;\n        overflow-x: auto;\n        border: none;\n        gap: 8px;\n      }\n      #clr-catalogue .clr-sous {\n        white-space: nowrap;\n        border: 1px solid var(--clr-bord);\n        border-radius: 20px;\n        gap: 8px;\n      }\n      #clr-catalogue li:last-child .clr-sous { border-bottom: 1px solid var(--clr-bord); }\n      #clr-catalogue .clr-tableau th { width: 45%; }\n      #clr-catalogue .clr-tableau th,\n      #clr-catalogue .clr-tableau td { padding: 8px 10px; font-size: 13px; }\n    }\n  <\/style>\n\n  <input type=\"search\" class=\"clr-recherche\" placeholder=\"Rechercher un produit, une soci\u00e9t\u00e9, un r\u00e9f\u00e9rentiel, un n\u00b0 de certificat\u2026\" aria-label=\"Rechercher un produit\"><div class=\"clr-onglets\" role=\"tablist\"><\/div><div class=\"clr-corps\"><ul class=\"clr-sous-liste\"><\/ul><div class=\"clr-droite\"><div class=\"clr-actifs\"><\/div><div class=\"clr-info\" aria-live=\"polite\"><\/div><div class=\"clr-grille\"><\/div><\/div><\/div><div class=\"clr-voile\" hidden><div class=\"clr-fenetre\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"clr-titre-fenetre\"><div class=\"clr-entete\"><h2 id=\"clr-titre-fenetre\"><\/h2><button type=\"button\" class=\"clr-fermer\" aria-label=\"Fermer\">&times;<\/button><\/div><div class=\"clr-contenu\"><\/div><\/div><\/div>\n\n  <script>\n  (function () {\n\n    \/* ==========================================================\n       1) LES ONGLETS HORIZONTAUX (crit\u00e8res de filtre)\n       ----------------------------------------------------------\n       Chaque onglet correspond \u00e0 un champ des produits.\n       La liste verticale affiche toutes les valeurs de ce champ.\n       ========================================================== *\/\n    var FILTRES = [\n      { titre: \"R\u00e9f\u00e9rentiel\",         cle: \"fRef\" },\n      { titre: \"Cat\u00e9gorie\",           cle: \"fCat\" },\n      { titre: \"Centre d'\u00e9valuation\", cle: \"centre\" },\n      { titre: \"Soci\u00e9t\u00e9\",             cle: \"fSoc\" }\n    ];\n\n    \/* ==========================================================\n       2) LES LIGNES DU TABLEAU (fiche produit)\n       ----------------------------------------------------------\n       Colonne de gauche = \u00ab titre \u00bb, colonne de droite = valeur\n       du produit pour la \u00ab cle \u00bb indiqu\u00e9e.\n       ========================================================== *\/\n    var LIGNES_TABLEAU = [\n      { titre: \"Soci\u00e9t\u00e9\",                             cle: \"societe\" },\n      { titre: \"Le produit \u00e9valu\u00e9\",                   cle: \"nom\" },\n      { titre: \"Version\",                             cle: \"version\" },\n      { titre: \"Niveau de certification\",             cle: \"niveau\" },\n      { titre: \"Date de certification\",               cle: \"dateCertification\" },\n      { titre: \"Date de fin de validit\u00e9\",             cle: \"dateFin\" },\n      { titre: \"Cat\u00e9gorie\",                           cle: \"categorie\" },\n      { titre: \"R\u00e9f\u00e9rentiel\",                         cle: \"referentiel\" },\n      { titre: \"D\u00e9veloppeur(s)\",                      cle: \"developpeur\" },\n      { titre: \"Commanditaire(s)\",                    cle: \"commanditaire\" },\n      { titre: \"Centre d'\u00e9valuation\",                 cle: \"centre\" },\n      { titre: \"R\u00e9f\u00e9rence de la cible de s\u00e9curit\u00e9\",   cle: \"cibleSecurite\" }\n    ];\n\n    \/* ==========================================================\n       3) LES PRODUITS\n       ----------------------------------------------------------\n       Copiez un bloc { ... }, collez-le \u00e0 la suite (avec une\n       virgule entre deux blocs) et changez les valeurs.\n       Les 12 premiers champs = les lignes du tableau affich\u00e9.\n       fRef \/ fCat \/ fSoc = valeurs utilis\u00e9es pour les filtres\n       (onglets), \u00e9crites de fa\u00e7on uniforme pour regrouper les\n       produits (ex. tous les \u00ab CEN\/TS 18099\u2026 \u00bb sous \u00ab CEN\/TS 18099 \u00bb).\n       lien : (facultatif) lien vers le certificat PDF, \"\" sinon.\n       ========================================================== *\/\n    var PRODUITS = [\n      {\n        societe: \"Blinking\",\n        nom: \"Blinking Liveness\",\n        version: \"Product Version: 1.0\",\n        niveau: \"Basique\",\n        dateCertification: \"06\/07\/2026\",\n        dateFin: \"05\/07\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 19989-3:2020\",\n        referentiel: \"ISO\/IEC 19989-3:2020\",\n        developpeur: \"Blinking\",\n        commanditaire: \"Blinking\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2026CLR-0303_1 1.0\",\n        fRef: \"ISO\/IEC 19989\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Blinking\",\n        lien: \"\"\n      },\n      {\n        societe: \"Blinking\",\n        nom: \"Blinking Liveness\",\n        version: \"Product Version: 1.0\",\n        niveau: \"Basique\",\n        dateCertification: \"06\/07\/2026\",\n        dateFin: \"05\/07\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 30107-3:2023\",\n        referentiel: \"ISO\/IEC 30107-3:2023\",\n        developpeur: \"Blinking\",\n        commanditaire: \"Blinking\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2026CLR-0303_1 1.0\",\n        fRef: \"ISO\/IEC 30107-3\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Blinking\",\n        lien: \"\"\n      },\n      {\n        societe: \"Entrust\",\n        nom: \"Face Match\",\n        version: \"Face Match model: v6 API: v3.6 Matching Threshold: 0.5\",\n        niveau: \"N.A\",\n        dateCertification: \"12\/08\/2026\",\n        dateFin: \"11\/08\/2028\",\n        categorie: \"Test de performances biom\u00e9triques\",\n        referentiel: \"ISO\/IEC 19795- 2:2007 (Type Technologique)\",\n        developpeur: \"Entrust\",\n        commanditaire: \"Entrust\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.005.REP.2025CLR-1106_5 0.1 (Evaluation report)\",\n        fRef: \"ISO\/IEC 19795\",\n        fCat: \"Test de performances biom\u00e9triques\",\n        fSoc: \"Entrust\",\n        lien: \"\"\n      },\n      {\n        societe: \"Entrust\",\n        nom: \"Motion\",\n        version: \"V47 \/ Android SDK v100.13.0 \/ iOS SDK v100.14.0 \/ Web SDK 14.83.0\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"08\/10\/2026\",\n        dateFin: \"07\/10\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 19989-3:2020\",\n        referentiel: \"ISO\/IEC 19989-3:2020\",\n        developpeur: \"Entrust\",\n        commanditaire: \"Entrust\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-1106_1\",\n        fRef: \"ISO\/IEC 19989\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Entrust\",\n        lien: \"\"\n      },\n      {\n        societe: \"Entrust\",\n        nom: \"Motion\",\n        version: \"V47 \/ Android SDK v100.13.0 \/ iOS SDK v100.14.0 \/ Web SDK 14.83.0\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"08\/10\/2026\",\n        dateFin: \"07\/10\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 30107-3:2023\",\n        referentiel: \"ISO\/IEC 30107-3:2023\",\n        developpeur: \"Entrust\",\n        commanditaire: \"Entrust\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-1106_1\",\n        fRef: \"ISO\/IEC 30107-3\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Entrust\",\n        lien: \"\"\n      },\n      {\n        societe: \"InfoCert\",\n        nom: \"AI Face Matching\",\n        version: \"1.2.1\",\n        niveau: \"N.A\",\n        dateCertification: \"17\/03\/2026\",\n        dateFin: \"17\/03\/2028\",\n        categorie: \"Test de performances biom\u00e9triques\",\n        referentiel: \"ISO\/IEC 19795- 2:2007 (Type Technologique)\",\n        developpeur: \"InfoCert\",\n        commanditaire: \"InfoCert\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.005.REP.2026CLR-0210 1.0 (Evaluation report)\",\n        fRef: \"ISO\/IEC 19795\",\n        fCat: \"Test de performances biom\u00e9triques\",\n        fSoc: \"InfoCert\",\n        lien: \"\"\n      },\n      {\n        societe: \"InfoCert S.p.A.\",\n        nom: \"InfoCert Liveness\",\n        version: \"4.1\",\n        niveau: \"Substantiel\",\n        dateCertification: \"03\/02\/2025\",\n        dateFin: \"03\/02\/2027\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN\/TS 18099\",\n        developpeur: \"InfoCert S.p.A.\",\n        commanditaire: \"InfoCert S.p.A.\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2023CLR-0614\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"InfoCert\",\n        lien: \"\"\n      },\n      {\n        societe: \"InfoCert S.p.A.\",\n        nom: \"InfoCert Liveness\",\n        version: \"4.1\",\n        niveau: \"Substantiel\",\n        dateCertification: \"03\/02\/2025\",\n        dateFin: \"03\/02\/2027\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 19989\",\n        referentiel: \"ISO\/IEC 19989-1\",\n        developpeur: \"InfoCert S.p.A.\",\n        commanditaire: \"InfoCert S.p.A.\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2023CLR-0614\",\n        fRef: \"ISO\/IEC 19989\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"InfoCert\",\n        lien: \"\"\n      },\n      {\n        societe: \"Innovatrics\",\n        nom: \"IDV Toolkit iOS SDK\",\n        version: \"iOS\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"28\/10\/2026\",\n        dateFin: \"27\/10\/2028\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN\/TS 18099\",\n        developpeur: \"Innovatrics\",\n        commanditaire: \"Innovatrics\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2026CLR-0319_2\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"Innovatrics\",\n        lien: \"\"\n      },\n      {\n        societe: \"Innovatrics\",\n        nom: \"Liveness Service\",\n        version: \"Product Version: 3.1.0\",\n        niveau: \"Substantiel\",\n        dateCertification: \"24\/06\/2026\",\n        dateFin: \"23\/06\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 19989-3:2020\",\n        referentiel: \"ISO\/IEC 19989-3:2020\",\n        developpeur: \"Innovatrics\",\n        commanditaire: \"Innovatrics\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0708_3 1.1\",\n        fRef: \"ISO\/IEC 19989\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Innovatrics\",\n        lien: \"\"\n      },\n      {\n        societe: \"Innovatrics\",\n        nom: \"Liveness Service\",\n        version: \"Product Version: 3.1.0\",\n        niveau: \"Substantiel\",\n        dateCertification: \"24\/06\/2026\",\n        dateFin: \"23\/06\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 30107-3:2023\",\n        referentiel: \"ISO\/IEC 30107-3:2023\",\n        developpeur: \"Innovatrics\",\n        commanditaire: \"Innovatrics\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0708_3 1.1\",\n        fRef: \"ISO\/IEC 30107-3\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Innovatrics\",\n        lien: \"\"\n      },\n      {\n        societe: \"Keyless\",\n        nom: \"Keyless Anti-Inject: Mobile SDK plus anti-injection detection\",\n        version: \"Version 5.2.0 (version including Build38 RASP v3.2.2)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"14\/01\/2026\",\n        dateFin: \"14\/01\/2028\",\n        categorie: \"Biom\u00e9trie IAD CEN\/TS 18099:2024\",\n        referentiel: \"CEN\/TS 18099:2024\",\n        developpeur: \"Keyless\",\n        commanditaire: \"Keyless\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.002.REA.I.2025CLR-0902_2\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"Keyless\",\n        lien: \"\"\n      },\n      {\n        societe: \"Keyless\",\n        nom: \"Keyless Anti-Inject: Mobile SDK plus anti-injection detection\",\n        version: \"5.1.0.8920 (With Rootbeer 0.1.0 \/ Build38 RASP v3.2.2)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"12\/09\/2025\",\n        dateFin: \"12\/09\/2027\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN\/TS 18099\",\n        developpeur: \"Keyless\",\n        commanditaire: \"Keyless\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2024CLR-1216_5\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"Keyless\",\n        lien: \"\"\n      },\n      {\n        societe: \"KIS\",\n        nom: \"EVOBOOTH\",\n        version: \"V1.0 (PAD KIS: KisAntispoofing v1.0, PAD UNISSEY: Unissey API PAD2.15.1, PhotoBooth: clrlabs.x7 1.1.23)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"11\/02\/2026\",\n        dateFin: \"11\/02\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 19989-3:2020\",\n        referentiel: \"ISO\/IEC 19989-3:2020\",\n        developpeur: \"KIS\",\n        commanditaire: \"KIS\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.002.REA.2025CLR-0718\",\n        fRef: \"ISO\/IEC 19989\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"KIS\",\n        lien: \"\"\n      },\n      {\n        societe: \"KIS\",\n        nom: \"EVOBOOTH\",\n        version: \"EvoBooth V1.0 (PAD KIS: KisAntispoofing v1.0, PAD UNISSEY: Unissey API PAD2.15.1, PhotoBooth: clrlabs.x7 1.1.23)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"11\/02\/2026\",\n        dateFin: \"11\/02\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 30107-3:2023\",\n        referentiel: \"ISO\/IEC 30107-3:2023\",\n        developpeur: \"KIS\",\n        commanditaire: \"KIS\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.002.REA.2025CLR-0718\",\n        fRef: \"ISO\/IEC 30107-3\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"KIS\",\n        lien: \"\"\n      },\n      {\n        societe: \"Mailinblack\",\n        nom: \"Sikker web application\",\n        version: \"8.44.1\",\n        niveau: \"Substantiel\",\n        dateCertification: \"30\/01\/2025\",\n        dateFin: \"30\/01\/2030\",\n        categorie: \"Application web\",\n        referentiel: \"EN 17640\",\n        developpeur: \"Mailinblack\",\n        commanditaire: \"Mailinblack\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.E.2024CLR-0122\",\n        fRef: \"EN 17640\",\n        fCat: \"Application Web\",\n        fSoc: \"Mailinblack\",\n        lien: \"\"\n      },\n      {\n        societe: \"MOBAI\",\n        nom: \"MOBAI Android Client SDK\",\n        version: \"2.3.1\",\n        niveau: \"Basique\",\n        dateCertification: \"06\/01\/2026\",\n        dateFin: \"06\/01\/2028\",\n        categorie: \"Biom\u00e9trie IAD CEN\/TS 18099:2024\",\n        referentiel: \"CEN\/TS 18099:2024\",\n        developpeur: \"MOBAI\",\n        commanditaire: \"MOBAI\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.002. REA.I.2025 CLR-0321\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"MOBAI\",\n        lien: \"\"\n      },\n      {\n        societe: \"Omnitech Security\",\n        nom: \"SEAL System\",\n        version: \"34.1.16740.1688 configuration 2025-06\",\n        niveau: \"Substantiel\",\n        dateCertification: \"16\/10\/2025\",\n        dateFin: \"16\/10\/2030\",\n        categorie: \"Application web\",\n        referentiel: \"EN 17640:2022 | Protection profile 2: Physical Access Control | Protection profile 4: WEB application\",\n        developpeur: \"OMNITECH SECURITY\",\n        commanditaire: \"OMNITECH SECURITY\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.E.2024CLR-0802\",\n        fRef: \"EN 17640\",\n        fCat: \"Application Web\",\n        fSoc: \"Omnitech Security\",\n        lien: \"\"\n      },\n      {\n        societe: \"ShareID\",\n        nom: \"Liveness IDV\",\n        version: \"Android\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"26\/10\/2026\",\n        dateFin: \"25\/10\/2028\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN TS 18099\",\n        developpeur: \"ShareID\",\n        commanditaire: \"ShareID\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0731_8\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"ShareID\",\n        lien: \"\"\n      },\n      {\n        societe: \"ShareID\",\n        nom: \"ShareID Onboarding Service\",\n        version: \"2.7.9 (iOS)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"17\/08\/2026\",\n        dateFin: \"16\/08\/2028\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN TS 18099\",\n        developpeur: \"ShareID\",\n        commanditaire: \"ShareID\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0731_10\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"ShareID\",\n        lien: \"\"\n      },\n      {\n        societe: \"ShareID\",\n        nom: \"ShareID Onboarding Service\",\n        version: \"2.7.9 (iOS) 2.7.9(Android) 2.1.5(Web)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"17\/08\/2026\",\n        dateFin: \"16\/08\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 19989-3:2020\",\n        referentiel: \"ISO\/IEC 19989-3:2020\",\n        developpeur: \"ShareID\",\n        commanditaire: \"ShareID\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0731_2\",\n        fRef: \"ISO\/IEC 19989\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"ShareID\",\n        lien: \"\"\n      },\n      {\n        societe: \"ShareID\",\n        nom: \"ShareID Onboarding Service\",\n        version: \"2.7.9 (iOS) 2.7.9(Android) 2.1.5(Web)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"17\/08\/2026\",\n        dateFin: \"16\/08\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 30107-3\",\n        referentiel: \"ISO\/IEC 30107-3\",\n        developpeur: \"ShareID\",\n        commanditaire: \"ShareID\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0731_2\",\n        fRef: \"ISO\/IEC 30107-3\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"ShareID\",\n        lien: \"\"\n      },\n      {\n        societe: \"Smartphone iD\",\n        nom: \"Smartphone iD : Liveness Detection Module\",\n        version: \"2.20\",\n        niveau: \"Basique\",\n        dateCertification: \"30\/04\/2025\",\n        dateFin: \"30\/04\/2027\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 30107\",\n        referentiel: \"ISO\/IEC 30107-3\",\n        developpeur: \"Smartphone iD\",\n        commanditaire: \"Smartphone iD\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.E.2024CLR-0728\",\n        fRef: \"ISO\/IEC 30107-3\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Smartphone iD\",\n        lien: \"\"\n      },\n      {\n        societe: \"STiD\",\n        nom: \"STiD Mobile ID Android\",\n        version: \"3.0.4.376\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"16\/10\/2024\",\n        dateFin: \"16\/10\/2029\",\n        categorie: \"Application Mobile\",\n        referentiel: \"EN 17640\",\n        developpeur: \"STiD\",\n        commanditaire: \"STiD\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.002.REA.2024CLR0627_2\",\n        fRef: \"EN 17640\",\n        fCat: \"Application Mobile\",\n        fSoc: \"STiD\",\n        lien: \"\"\n      },\n      {\n        societe: \"STiD\",\n        nom: \"STiD Mobile ID iOS\",\n        version: \"3.1.1\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"30\/01\/2025\",\n        dateFin: \"30\/01\/2030\",\n        categorie: \"Application Mobile\",\n        referentiel: \"EN 17640\",\n        developpeur: \"STiD\",\n        commanditaire: \"STiD\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.002.REA.2024CLR0627_3\",\n        fRef: \"EN 17640\",\n        fCat: \"Application Mobile\",\n        fSoc: \"STiD\",\n        lien: \"\"\n      },\n      {\n        societe: \"Thales DIS\",\n        nom: \"Multimodal Biometric SDK \u2013 Face\",\n        version: \"Multimodal Biometric SDK : 4.6.2.17575870 with Face Module:7.0.1.974\",\n        niveau: \"N.A\",\n        dateCertification: \"01\/12\/2025\",\n        dateFin: \"01\/12\/2027\",\n        categorie: \"Test de performances biom\u00e9triques\",\n        referentiel: \"ISO\/IEC 19795- 2:2007\",\n        developpeur: \"Thales DIS\",\n        commanditaire: \"Thales DIS\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.005. REP.2024CL R-0622_2\",\n        fRef: \"ISO\/IEC 19795\",\n        fCat: \"Test de performances biom\u00e9triques\",\n        fSoc: \"Thales DIS\",\n        lien: \"\"\n      },\n      {\n        societe: \"Thales DIS\",\n        nom: \"Multimodal Biometric SDK \u2013 FaceLite\",\n        version: \"Multimodal Biometric SDK : 4.6.2.17575 870 with Face Module: 5.4.0.943\",\n        niveau: \"N.A\",\n        dateCertification: \"01\/12\/2025\",\n        dateFin: \"01\/12\/2027\",\n        categorie: \"Test de performances biom\u00e9triques\",\n        referentiel: \"ISO\/IEC 19795- 2:2007\",\n        developpeur: \"Thales DIS\",\n        commanditaire: \"Thales DIS\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.005. REP.2024CL R-0622\",\n        fRef: \"ISO\/IEC 19795\",\n        fCat: \"Test de performances biom\u00e9triques\",\n        fSoc: \"Thales DIS\",\n        lien: \"\"\n      },\n      {\n        societe: \"Unissey\",\n        nom: \"Liveness Detection Module \u2013 \\\"Dynamic\\\" Mode\",\n        version: \"Product Version: 3.3 (Decision Threshold - Pad-1:0.975, Pad-2:0.9271193, Pad-3:0.9999)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"19\/03\/2026\",\n        dateFin: \"19\/03\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 19989-3:2020\",\n        referentiel: \"ISO\/IEC 19989-3:2020\",\n        developpeur: \"Unissey\",\n        commanditaire: \"Unissey\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0903_1 1.0\",\n        fRef: \"ISO\/IEC 19989\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Unissey\",\n        lien: \"\"\n      },\n      {\n        societe: \"Unissey\",\n        nom: \"Liveness Detection Module \u2013 \\\"Dynamic\\\" Mode\",\n        version: \"Product Version: 3.3 (Decision Threshold - Pad-1:0.975, Pad-2:0.9271193, Pad-3:0.9999)\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"19\/03\/2026\",\n        dateFin: \"19\/03\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 30107-3:2023\",\n        referentiel: \"ISO\/IEC 30107-3:2023\",\n        developpeur: \"Unissey\",\n        commanditaire: \"Unissey\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0903_1 1.0\",\n        fRef: \"ISO\/IEC 30107-3\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Unissey\",\n        lien: \"\"\n      },\n      {\n        societe: \"Unissey\",\n        nom: \"Liveness Detection Module \u2013 \\\"Static\\\" Mode\",\n        version: \"Product Version: 3.3 (Decision Threshold - Pad-1:0.975, Pad-2:0.9271193, Pad-3:0.9999)\",\n        niveau: \"Substantiel\",\n        dateCertification: \"19\/03\/2026\",\n        dateFin: \"19\/03\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 19989-3:2020\",\n        referentiel: \"ISO\/IEC 19989-3:2020\",\n        developpeur: \"Unissey\",\n        commanditaire: \"Unissey\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0903_3 1.0\",\n        fRef: \"ISO\/IEC 19989\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Unissey\",\n        lien: \"\"\n      },\n      {\n        societe: \"Unissey\",\n        nom: \"Liveness Detection Module \u2013 \\\"Static\\\" Mode\",\n        version: \"Product Version: 3.3 (Decision Threshold - Pad-1:0.975, Pad-2:0.9271193, Pad-3:0.9999)\",\n        niveau: \"Substantiel\",\n        dateCertification: \"19\/03\/2026\",\n        dateFin: \"19\/03\/2028\",\n        categorie: \"Biom\u00e9trie PAD \u2013 ISO\/IEC 30107-3:2023\",\n        referentiel: \"ISO\/IEC 30107-3:2023\",\n        developpeur: \"Unissey\",\n        commanditaire: \"Unissey\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.2025CLR-0903_3 1.0\",\n        fRef: \"ISO\/IEC 30107-3\",\n        fCat: \"Biom\u00e9trie PAD\",\n        fSoc: \"Unissey\",\n        lien: \"\"\n      },\n      {\n        societe: \"Unissey\",\n        nom: \"Unissey API Analyze\",\n        version: \"3.0\",\n        niveau: \"N.A\",\n        dateCertification: \"22\/09\/2025\",\n        dateFin: \"22\/09\/2027\",\n        categorie: \"Test de performances biom\u00e9triques\",\n        referentiel: \"ISO\/IEC 19795- 2:2007\",\n        developpeur: \"Unissey\",\n        commanditaire: \"Unissey\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.005.REP.2024CLR-0621\",\n        fRef: \"ISO\/IEC 19795\",\n        fCat: \"Test de performances biom\u00e9triques\",\n        fSoc: \"Unissey\",\n        lien: \"\"\n      },\n      {\n        societe: \"Unissey\",\n        nom: \"Unissey IAD\",\n        version: \"2.0\",\n        niveau: \"Basique\",\n        dateCertification: \"15\/10\/2024\",\n        dateFin: \"15\/10\/2026\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN\/TS 18099\",\n        developpeur: \"Unissey\",\n        commanditaire: \"Unissey\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"N.A\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"Unissey\",\n        lien: \"\"\n      },\n      {\n        societe: \"Unissey\",\n        nom: \"Unissey IAD Web Module\",\n        version: \"Unissey IAD Web Module 2.0 api analyze v3.27.0, iad service v1.8.0, iad-1 v2.8.0\",\n        niveau: \"Substantiel\",\n        dateCertification: \"25\/09\/2025\",\n        dateFin: \"25\/09\/2027\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN\/TS 18099\",\n        developpeur: \"Unissey\",\n        commanditaire: \"Unissey\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.004.E.2025CLR-0219\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"Unissey\",\n        lien: \"\"\n      },\n      {\n        societe: \"Unissey\",\n        nom: \"Unissey IAD Web Module\",\n        version: \"Unissey IAD Web Module 2.1 api analyze v3.31.0, iad service v1.8.2, iad-1 v2.11.0\",\n        niveau: \"\u00c9lev\u00e9\",\n        dateCertification: \"07\/10\/2025\",\n        dateFin: \"07\/10\/2027\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN\/TS 18099\",\n        developpeur: \"Unissey\",\n        commanditaire: \"Unissey\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"CLR.FE.002.REA.P.2025CLR-0903_21.0\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"Unissey\",\n        lien: \"\"\n      },\n      {\n        societe: \"Yoti\",\n        nom: \"SICAP\",\n        version: \"2.9.2\",\n        niveau: \"Basique\",\n        dateCertification: \"07\/10\/2026\",\n        dateFin: \"06\/10\/2028\",\n        categorie: \"Biom\u00e9trie IAD\",\n        referentiel: \"CEN\/TS 18099\",\n        developpeur: \"Yoti\",\n        commanditaire: \"Yoti\",\n        centre: \"CLR Labs\",\n        cibleSecurite: \"N.A\",\n        fRef: \"CEN\/TS 18099\",\n        fCat: \"Biom\u00e9trie IAD\",\n        fSoc: \"Yoti\",\n        lien: \"\"\n      }\n    ];\n\n    \/* ===== Fonctionnement (rien \u00e0 modifier en dessous) ===== *\/\n\n    var TOUS = \"Tous\";\n    var racine = document.getElementById(\"clr-catalogue\");\n    var elOnglets = racine.querySelector(\".clr-onglets\");\n    var elSous = racine.querySelector(\".clr-sous-liste\");\n    var elGrille = racine.querySelector(\".clr-grille\");\n    var elInfo = racine.querySelector(\".clr-info\");\n    var elActifs = racine.querySelector(\".clr-actifs\");\n    var elRecherche = racine.querySelector(\".clr-recherche\");\n    var elVoile = racine.querySelector(\".clr-voile\");\n    var elTitre = racine.querySelector(\"#clr-titre-fenetre\");\n    var elContenu = racine.querySelector(\".clr-contenu\");\n    var elFermer = racine.querySelector(\".clr-fermer\");\n    var dernierFocus = null;\n\n    var etat = { onglet: 0, choix: {}, texte: \"\", auto: null };\n    FILTRES.forEach(function (f) { etat.choix[f.cle] = TOUS; });\n\n    var ESC = {};\n    ESC[\"\\u0026\"] = \"\\u0026amp;\";\n    ESC[\"\\u003c\"] = \"\\u0026lt;\";\n    ESC[\"\\u003e\"] = \"\\u0026gt;\";\n    ESC['\"'] = \"\\u0026quot;\";\n    ESC[\"'\"] = \"\\u0026#39;\";\n\n    function echapper(t) {\n      return String(t == null ? \"\" : t).replace(\/[\\u0026\\u003c\\u003e\\u0022\\u0027]\/g, function (c) {\n        return ESC[c];\n      });\n    }\n\n    function normaliser(t) {\n      return String(t || \"\").toLowerCase().normalize(\"NFD\").replace(\/[\u0300-\u036f]\/g, \"\");\n    }\n\n    function correspondTexte(p) {\n      if (!etat.texte) return true;\n      var botte = normaliser(LIGNES_TABLEAU.map(function (l) { return p[l.cle]; }).join(\" \"));\n      return botte.indexOf(etat.texte) !== -1;\n    }\n\n    \/* Produits qui respectent tous les filtres, sauf \u00e9ventuellement \u00ab sauf \u00bb *\/\n    function filtrer(sauf) {\n      return PRODUITS.filter(function (p) {\n        var ok = FILTRES.every(function (f) {\n          var choix = etat.choix[f.cle];\n          return f.cle === sauf || choix === TOUS || p[f.cle] === choix;\n        });\n        return ok ? correspondTexte(p) : false;\n      });\n    }\n\n    function afficherOnglets() {\n      elOnglets.innerHTML = FILTRES.map(function (f, i) {\n        var actif = i === etat.onglet;\n        var filtre = etat.choix[f.cle] !== TOUS;\n        return '\\u003cbutton type=\"button\" role=\"tab\" class=\"clr-onglet' + (actif ? \" actif\" : \"\") +\n          '\" aria-selected=\"' + actif + '\" data-i=\"' + i + '\"\\u003e' + echapper(f.titre) +\n          (filtre ? '\\u003cspan class=\"clr-pastille\" title=\"Filtre actif\"\\u003e\\u003c\/span\\u003e' : \"\") + \"\\u003c\/button\\u003e\";\n      }).join(\"\");\n    }\n\n    function afficherListe() {\n      var cle = FILTRES[etat.onglet].cle;\n      var base = filtrer(cle);\n      var valeurs = [];\n      base.forEach(function (p) {\n        if (p[cle]) { if (valeurs.indexOf(p[cle]) === -1) valeurs.push(p[cle]); }\n      });\n      if (etat.choix[cle] !== TOUS) { if (valeurs.indexOf(etat.choix[cle]) === -1) valeurs.push(etat.choix[cle]); }\n      valeurs.sort(function (a, b) { return a.localeCompare(b, \"fr\"); });\n\n      var items = valeurs.map(function (v) {\n        return { nom: v, nb: base.filter(function (p) { return p[cle] === v; }).length };\n      });\n      elSous.innerHTML = items.map(function (it) {\n        var actif = it.nom === etat.choix[cle];\n        return '\\u003cli\\u003e\\u003cbutton type=\"button\" class=\"clr-sous' + (actif ? \" actif\" : \"\") +\n          '\" data-valeur=\"' + echapper(it.nom) + '\"\\u003e\\u003cspan\\u003e' + echapper(it.nom) +\n          '\\u003c\/span\\u003e\\u003cspan class=\"clr-nb\"\\u003e' + it.nb + \"\\u003c\/span\\u003e\\u003c\/button\\u003e\\u003c\/li\\u003e\";\n      }).join(\"\");\n    }\n\n    \/* Jamais \u00ab aucun filtre \u00bb : sinon tous les produits s'affichent\n       d'un coup. On s\u00e9lectionne alors la 1re valeur de l'onglet en cours. *\/\n    function assurerUnFiltre() {\n      var auMoinsUn = FILTRES.some(function (f) { return etat.choix[f.cle] !== TOUS; });\n      if (auMoinsUn) return;\n      var cle = FILTRES[etat.onglet].cle;\n      var valeurs = [];\n      PRODUITS.forEach(function (p) {\n        if (p[cle]) { if (valeurs.indexOf(p[cle]) === -1) valeurs.push(p[cle]); }\n      });\n      valeurs.sort(function (a, b) { return a.localeCompare(b, \"fr\"); });\n      if (valeurs.length) {\n        etat.choix[cle] = valeurs[0];\n        etat.auto = cle; \/* s\u00e9lection automatique, effac\u00e9e au prochain choix *\/\n      }\n    }\n\n    \/* Efface la s\u00e9lection automatique (si elle existe) *\/\n    function oublierAuto() {\n      if (etat.auto) {\n        etat.choix[etat.auto] = TOUS;\n        etat.auto = null;\n      }\n    }\n\n    function afficherActifs() {\n      var puces = FILTRES.filter(function (f) {\n        return !(etat.choix[f.cle] === TOUS || f.cle === etat.auto);\n      }).map(function (f) {\n        return '\\u003cbutton type=\"button\" class=\"clr-puce\" data-cle=\"' + f.cle + '\" title=\"Retirer ce filtre\"\\u003e' +\n          echapper(f.titre) + \" : \" + echapper(etat.choix[f.cle]) + \" \\u003cb\\u003e\\u0026times;\\u003c\/b\\u003e\\u003c\/button\\u003e\";\n      });\n      elActifs.innerHTML = puces.length\n        ? puces.join(\"\") + (puces.length > 1 ? '\\u003cbutton type=\"button\" class=\"clr-effacer\"\\u003eR\u00e9initialiser\\u003c\/button\\u003e' : \"\")\n        : \"\";\n    }\n\n    function afficherProduits() {\n      var liste = filtrer(null);\n      elInfo.textContent = liste.length + (liste.length > 1 ? \" produits certifi\u00e9s\" : \" produit certifi\u00e9\");\n      if (!liste.length) {\n        elGrille.innerHTML = '\\u003cdiv class=\"clr-vide\"\\u003eAucun produit ne correspond \u00e0 votre recherche.\\u003c\/div\\u003e';\n        return;\n      }\n      elGrille.innerHTML = liste.map(function (p) {\n        return '\\u003cdiv class=\"clr-carte\" tabindex=\"0\" role=\"button\" data-index=\"' + PRODUITS.indexOf(p) + '\"\\u003e' +\n          '\\u003cdiv class=\"clr-titre\"\\u003e' + echapper(p.nom) + \"\\u003c\/div\\u003e\" +\n          (p.societe ? '\\u003cdiv class=\"clr-ligne\"\\u003eSoci\u00e9t\u00e9 : \\u003cstrong\\u003e' + echapper(p.societe) + \"\\u003c\/strong\\u003e\\u003c\/div\\u003e\" : \"\") +\n          (p.referentiel ? '\\u003cdiv class=\"clr-ligne\"\\u003eR\u00e9f\u00e9rentiel : \\u003cstrong\\u003e' + echapper(p.referentiel) + \"\\u003c\/strong\\u003e\\u003c\/div\\u003e\" : \"\") +\n          (p.version ? '\\u003cdiv class=\"clr-ligne\"\\u003eVersion : \\u003cstrong\\u003e' + echapper(p.version.length > 60 ? p.version.slice(0, 57) + \"\u2026\" : p.version) + \"\\u003c\/strong\\u003e\\u003c\/div\\u003e\" : \"\") +\n          (p.dateCertification ? '\\u003cdiv class=\"clr-ligne\"\\u003eCertifi\u00e9 le : \\u003cstrong\\u003e' + echapper(p.dateCertification) + \"\\u003c\/strong\\u003e\\u003c\/div\\u003e\" : \"\") +\n          '\\u003cspan class=\"clr-voir\"\\u003eVoir la fiche \u2192\\u003c\/span\\u003e' +\n          \"\\u003c\/div\\u003e\";\n      }).join(\"\");\n    }\n\n    function toutAfficher() {\n      afficherOnglets();\n      afficherListe();\n      afficherActifs();\n      afficherProduits();\n    }\n\n    function ouvrirFiche(p) {\n      dernierFocus = document.activeElement;\n      elTitre.textContent = p.nom || \"Produit\";\n      var lignes = LIGNES_TABLEAU.map(function (l) {\n        var valeur = p[l.cle];\n        return '\\u003ctr\\u003e\\u003cth scope=\"row\"\\u003e' + echapper(l.titre) + \"\\u003c\/th\\u003e\\u003ctd\\u003e\" +\n          (valeur ? echapper(valeur) : \"\u2014\") + \"\\u003c\/td\\u003e\\u003c\/tr\\u003e\";\n      }).join(\"\");\n      elContenu.innerHTML = '\\u003ctable class=\"clr-tableau\"\\u003e\\u003ctbody\\u003e' + lignes + \"\\u003c\/tbody\\u003e\\u003c\/table\\u003e\" +\n        (p.lien ? '\\u003ca class=\"clr-lien\" href=\"' + echapper(p.lien) + '\" target=\"_blank\" rel=\"noopener\"\\u003eVoir le certificat \u2192\\u003c\/a\\u003e' : \"\");\n      elVoile.hidden = false;\n      document.body.style.overflow = \"hidden\";\n      elFermer.focus();\n    }\n\n    function fermerFiche() {\n      elVoile.hidden = true;\n      document.body.style.overflow = \"\";\n      if (dernierFocus) { if (dernierFocus.focus) dernierFocus.focus(); }\n    }\n\n    elOnglets.addEventListener(\"click\", function (e) {\n      var b = e.target.closest(\".clr-onglet\");\n      if (!b) return;\n      oublierAuto();\n      etat.onglet = +b.getAttribute(\"data-i\");\n      assurerUnFiltre();\n      toutAfficher();\n    });\n\n    elSous.addEventListener(\"click\", function (e) {\n      var b = e.target.closest(\".clr-sous\");\n      if (!b) return;\n      var cle = FILTRES[etat.onglet].cle;\n      if (etat.auto) { if (etat.auto !== cle) etat.choix[etat.auto] = TOUS; }\n      etat.auto = null;\n      etat.choix[cle] = b.getAttribute(\"data-valeur\");\n      toutAfficher();\n    });\n\n    elActifs.addEventListener(\"click\", function (e) {\n      var puce = e.target.closest(\".clr-puce\");\n      if (puce) {\n        etat.choix[puce.getAttribute(\"data-cle\")] = TOUS;\n      } else if (e.target.closest(\".clr-effacer\")) {\n        FILTRES.forEach(function (f) { etat.choix[f.cle] = TOUS; });\n      } else {\n        return;\n      }\n      assurerUnFiltre();\n      toutAfficher();\n    });\n\n    elRecherche.addEventListener(\"input\", function () {\n      etat.texte = normaliser(elRecherche.value.trim());\n      afficherListe();\n      afficherProduits();\n    });\n\n    elGrille.addEventListener(\"click\", function (e) {\n      var carte = e.target.closest(\".clr-carte\");\n      if (carte) ouvrirFiche(PRODUITS[+carte.getAttribute(\"data-index\")]);\n    });\n\n    elGrille.addEventListener(\"keydown\", function (e) {\n      if (!(e.key === \"Enter\" || e.key === \" \")) return;\n      var carte = e.target.closest(\".clr-carte\");\n      if (!carte) return;\n      e.preventDefault();\n      ouvrirFiche(PRODUITS[+carte.getAttribute(\"data-index\")]);\n    });\n\n    elFermer.addEventListener(\"click\", fermerFiche);\n    elVoile.addEventListener(\"click\", function (e) {\n      if (e.target === elVoile) fermerFiche();\n    });\n    document.addEventListener(\"keydown\", function (e) {\n      if (e.key === \"Escape\") { if (!elVoile.hidden) fermerFiche(); }\n    });\n\n    assurerUnFiltre();\n    toutAfficher();\n  })();\n  <\/script>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&times;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1466","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/clr-cert.eu\/en\/wp-json\/wp\/v2\/pages\/1466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clr-cert.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/clr-cert.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/clr-cert.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/clr-cert.eu\/en\/wp-json\/wp\/v2\/comments?post=1466"}],"version-history":[{"count":8,"href":"https:\/\/clr-cert.eu\/en\/wp-json\/wp\/v2\/pages\/1466\/revisions"}],"predecessor-version":[{"id":1477,"href":"https:\/\/clr-cert.eu\/en\/wp-json\/wp\/v2\/pages\/1466\/revisions\/1477"}],"wp:attachment":[{"href":"https:\/\/clr-cert.eu\/en\/wp-json\/wp\/v2\/media?parent=1466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}