package org.adullact.iparapheur.admin; import java.security.cert.X509Certificate; import org.alfresco.repo.jscript.BaseScopableProcessorExtension; import org.alfresco.util.InputStreamContent; import org.alfresco.web.scripts.servlet.FormData; import org.alfresco.web.scripts.servlet.FormData.FormField; import org.apache.commons.ssl.KeyMaterial; public class JsKeyMaterial extends BaseScopableProcessorExtension { public String getIdCertificat(FormData formData, String password) { try { InputStreamContent contenu = null; for (FormField field : formData.getFields()) { if ("file".equals(field.getName()) && field.getIsFile()) { contenu = (InputStreamContent) field.getContent(); } } KeyMaterial km = new KeyMaterial (contenu.getInputStream(), password.toCharArray()); X509Certificate[] certs = km.getAssociatedCertificateChain(); return getUniqueId(certs); } catch (Exception e) { return null; } } public static String getUniqueId(X509Certificate[] certs) { String identifier = null; for (X509Certificate cert : certs) { if (identifier == null) { identifier = cert.getSerialNumber().toString(); } else { identifier += "/" + cert.getSerialNumber().toString(); } } return identifier; } }