function isEmpty(str) { return (!str || 0 === str.length); } function isBlank(str) { return (!str || /^\s*$/.test(str)); } function getContextRoot() { //Location object's href gives the complete URL var url = location.protocol + "//" + location.host; return url + "/validation/"; } function getUrlPcks11Libs(){ return getContextRoot() + "pkcs11Lib/pkcs11Libs.xml"; } /** * Affiche le veuillez patienter */ function afficherVeuillezPatienter() { document.getElementById('loading').style.display = 'block'; } /** * Masque le veuillez patienter */ function masquerVeuillezPatienter() { document.getElementById('loading').style.display = 'none'; } /** * Initialise le filtre des extensions � appliquer pour la s�lection de fichiers ainsi * que l'applet de selection. * * @param identifiant l'identifiant du champs html auquel rattach� le r�sultat (chemin du fichier � signer) * */ function initialiserSelectionFichierApplet(identifiant,extensions,methodeJavascriptRenvoiResultat) { document.SelectionFichierApplet.setMethodeJavascriptRenvoiResultat(methodeJavascriptRenvoiResultat); document.SelectionFichierApplet.initialiser(identifiant, extensions); document.SelectionFichierApplet.executer(); } /** * * */ function initialiserSelectionDossierApplet(identifiant) { document.SelectionFichierApplet.initialiserRepertoire(identifiant); document.SelectionFichierApplet.executer(); } /** * Initialise la textbox avec le chemin vers le fichier � signer * * @param identifiant l'identifiant du champs html auquel rattach� le r�sultat (chemin du fichier � signer) * @param cheminFichierPdfSelectionne chemin du fichier � signer */ function selectionEffectuee(identifiant, cheminFichierSelectionne) { document.getElementById(identifiant).value = cheminFichierSelectionne; } function selectionEffectueeReponse(identifiant, cheminFichierPdfSelectionne) { document.getElementById(identifiant + '_cheminFichier').value = cheminFichierPdfSelectionne; document.getElementById(identifiant + '_ajouterPieceLibre').click(); //document.getElementById('ctl0_CONTENU_PAGE_candidature_ctl0_atexoReponseEnveloppeCandidature_atexoReponsePiecesLibres_ajouterPieceLibre').click(); } /** * Initialise de l'applet de signature Pades/Xades et de chiffrement. * * @param chiffrementRequis true si le chiffrement est requis ,sinon false * @param signatureRequise true si la signature Xades est requise ,sinon false * @param signaturePadesActeEngagement true si la signature Pades du fichier d'acte d'engagement est requis ,sinon false * @param effectuerVerificationSignature true si la verification de la signature est requis (uniquement si le fichier de signature Xades est lui aussi pass� en param�tre * @param afficherBarreProgression true si l'on veut afficher la barre de progression, sinon false * de la fonction d'ajout de fichiers),sinon false */ function initialiserSignDocApplet(cheminFichier,urlModuleValidation,cheminFichierFinal) { var url = null; var uid = null; document.MpeChiffrementApplet.initialiser(0, url, uid, 1, 0, 0, urlModuleValidation, 0); var cheminFichierDoc = document.getElementById(cheminFichier).value; if (!isEmpty(cheminFichierDoc)) { ajouterFichier(cheminFichierDoc, 1, 1, 0, cheminFichierFinal, "", null, 1); } document.MpeChiffrementApplet.ajouterRestrictionTypeCertificatSignatureElectronique(); document.MpeChiffrementApplet.executer(); } function initialiserCoSignHeliosApplet(HashFichier,nomFichier,identifiantFichier,urlModuleValidation) { HashFichierContent = document.getElementById(HashFichier).value; if (!isEmpty(HashFichierContent)) { document.MpeChiffrementApplet.setMethodeJavascriptRecuperationLog('logAppletSignature'); document.MpeChiffrementApplet.initialiser(0, null, null, 1, 0, 0, urlModuleValidation, 1); document.MpeChiffrementApplet.ajouterHashFichier('0', '0', 1, identifiantFichier, HashFichierContent, nomFichier, "ACE", null, null); document.MpeChiffrementApplet.ajouterRestrictionTypeCertificatSignatureElectronique(); document.MpeChiffrementApplet.executer(); } } function ajouterFichier(cheminFichierSelectionne, typeEnveloppe, numeroLot, indexFichier, identifiantFichier, typeFichier, cheminFichierSignatureXML, signatureNecessaire) { document.MpeChiffrementApplet.ajouterFichier(typeEnveloppe, numeroLot, indexFichier, identifiantFichier, cheminFichierSelectionne, typeFichier, null, cheminFichierSignatureXML, signatureNecessaire); } function ajouterHashFichier(hashFichierSelectionne, nomFichierSelectionne, typeEnveloppe, numeroLot, indexFichier, identifiantFichier, typeFichier, contenuFichierSignatureXML) { document.MpeChiffrementApplet.ajouterHashFichier(typeEnveloppe, numeroLot, indexFichier, identifiantFichier, hashFichierSelectionne, nomFichierSelectionne, typeFichier, null, contenuFichierSignatureXML); } /** * Renvoie le resultat de la signature pades / xades et le chiffrement effectu�e. * * @param reponseJson le contenu de la reponse au format json * */ function renvoiResultat(reponseJson) { try { document.getElementById('ctl0_CONTENU_PAGE_signature').value=reponseJson; var reponse = jQuery.parseJSON(reponseJson); for (var i = 0; i < reponse.fichiers.length; i++) { var fichier = reponse.fichiers[i]; var identifiantFichier = fichier.identifiant; var nomFichier = fichier.cheminSignatureXML; var chaine = nomFichier.split('*'); if(chaine.length<=1){ var index = nomFichier.lastIndexOf("\\"); if(index<0) { index = nomFichier.lastIndexOf("/"); } hideProcessingBlock(); alert("Le jeton de la signature a été créé " + " : \n\n - Nom du jeton : \n"+nomFichier.substring(index+1,nomFichier.length)+"\n\n - Jeton de signature placé dans le répertoire : \n"+ nomFichier.substring(0,index)); } } } catch(e) { alert(e); } } function renvoiResultatHelios(reponseJson) { try { var reponse = jQuery.parseJSON(reponseJson); for (var i = 0; i < reponse.hashs.length; i++) { var hash = reponse.hashs[i]; var identifiantRepeater = hash.identifiant; var signature = hash.contenuSignatureXML; var idSignature = identifiantRepeater+'_signature'; var buttonAddCosignature =identifiantRepeater+'_buttonAddCosignature'; var wishOne = identifiantRepeater+'_wishOne'; document.getElementById(wishOne).value = '1'; document.getElementById(idSignature).value = signature; document.getElementById(buttonAddCosignature).click(); } } catch(e) { alert(e); } } /** * Renvoie le resultat du d�chiffrement effectue. * */ function renvoiResultatMpeDechiffrement(resultat) { jsEnveloppedDecrypted(""); } /** * Ajoute des identifiant des enveloppes � d�chiffrer (doit correspondre � celle se trouvant dans le fichier reponse annonce xml) * Peut �tre appeler n fois si l'on veut d�chiffrer explicitement plusieurs enveloppe. Si on n'ajoute aucune restriction d'identifiant d'envelope, alors * l'ensemble des enveloppes se trouvant le fichier reponse annonce xml seront trait�s. * * @param idEnveloppe l'identifiant de l'enveloppe � d�chiffrer */ function ajouterIdEnveloppe(idEnveloppe) { document.MpeDechiffrementApplet.ajouterIdEnveloppe(idEnveloppe); } /** * Renvoie le resultat du t�l�chargement effectue. * */ function renvoiResultatTelechargement(resultat) { panelInfos = document.getElementById('panelInfos'); panelInfos.style.display = 'block'; document.getElementById("panelInfos").focus(); } /** * M�thode appel� lorsque l'ensemble des hash a �t� g�n�r�. */ function finTraitementSignaturePkcs7Applet() { } /** * Permet d'initialiser l'applet de selection des fichiers lors de la reponse * * @param identifiant l'identifiant du champs html auquel rattach� le r�sultat (chemin du fichier � signer) * */ function initialiserAppletSelectionFichierReponse(identifiant) { document.getElementById(identifiant + '_listePiecesSelectionnees').value = ""; document.getElementById('ctl0_CONTENU_PAGE_clientIdPieceLibre').value = identifiant; var extensions = new Array('PDF', 'DOC', 'ZIP', 'XLS', 'PPT'); document.SelectionFichierApplet.setMethodeJavascriptRecuperationLog('logAppletSelectionFile'); document.SelectionFichierApplet.initialiser(identifiant, 1, extensions); document.SelectionFichierApplet.executer(); } /** * Permet d'initialiser l'applet de selection des fichiers de l'acte d'engagement lors de la reponse * * @param identifiant l'identifiant du champs html auquel rattach� le r�sultat (chemin du fichier � signer) * */ function initialiserAppletSelectionFichierReponseAe(identifiant) { document.getElementById(identifiant + '_listePiecesSelectionnees').value = ""; document.getElementById('ctl0_CONTENU_PAGE_clientIdPieceType').value = identifiant; var extensions = new Array('PDF', 'DOC', 'ZIP', 'XLS', 'PPT'); document.SelectionFichierApplet.setMethodeJavascriptRecuperationLog('logAppletGenerationAE'); document.SelectionFichierApplet.initialiser(identifiant, 0, extensions); document.SelectionFichierApplet.executer(); } /** * Initialise la textbox avec le chemin vers le fichier (appel n fois) * * @param identifiant l'identifiant du champs html auquel rattach� le r�sultat (chemin du fichier) * @param cheminFichier chemin du fichier */ function selectionMultipleEffectuee(identifiant, cheminFichier) { document.getElementById(identifiant).value = cheminFichier; } /** * * Methode appel�e par l'applet apr�s la s�lection des pi�ces */ function selectionEffectueeAppletDepotReponse(identifiant, cheminFichierPdfSelectionne) { //Sauvegarde du parametre "identifiant" pour le r�utiliser dans la fonction "finTraitement()" //Recuperer toutes les pi�ces renvoy�es par l'applet de selection multiple pour les mettre dans un hidden: identifiant + '_listePiecesSelectionnees' document.getElementById('ctl0_CONTENU_PAGE_valeurClientIdBoutonAjoutPiece').value = identifiant; listePiece = document.getElementById(identifiant + '_listePiecesSelectionnees'); listePiece.value += cheminFichierPdfSelectionne+"|__&&__|"; } /** * M�thode appel�e par l'applet � la fin du traitement pour la selection des pi�ces (simple ou multiple) */ function finTraitementAppletSelectionFichiers() { initialiserAppletVerifSignature(); } function initialiserAppletVerifSignature() { typeFichier = "ACE"; clientIdAjoutPiece = document.getElementById('ctl0_CONTENU_PAGE_valeurClientIdBoutonAjoutPiece').value; signatureRequis = document.getElementById('ctl0_CONTENU_PAGE_isSignatureRequis').value; if(clientIdAjoutPiece && signatureRequis) { var listePiecesSelectionnees = document.getElementById(clientIdAjoutPiece + '_listePiecesSelectionnees').value; var arrayListePieces = listePiecesSelectionnees.split('|__&&__|'); if(arrayListePieces.length) { //Initialisation de l'applet de v�rification de la signature var urlPkcs11 = getUrlPcks11Libs(); document.MpeChiffrementApplet.setUrlPkcs11LibRefXml(urlPkcs11); var urlModuleValidation = "http://applet-crypto-v4.local-trust.com/validation/signatureXades"; document.MpeChiffrementApplet.setMethodeJavascriptRecuperationLog('logAppletSignature'); document.MpeChiffrementApplet.setMethodeJavascriptRenvoiResultat('renvoiResultatVerificationSignature'); document.MpeChiffrementApplet.setOriginePlateforme('CLANCY'); document.MpeChiffrementApplet.setOrigineOrganisme('ATEXO-DEV'); document.MpeChiffrementApplet.setOrigineItem('0'); document.MpeChiffrementApplet.setOrigineContexteMetier('MPE_Signature_libre'); document.MpeChiffrementApplet.setTypeHash('SHA1'); document.MpeChiffrementApplet.setMethodeJavascriptDebutAttente('showLoader'); document.MpeChiffrementApplet.setMethodeJavascriptFinAttente('hideLoader'); document.MpeChiffrementApplet.initialiser(0, null, null, 0, 0, 1, urlModuleValidation, 0); //Ajout des fichiers � l'applet clientIdAjoutPiece = document.getElementById('ctl0_CONTENU_PAGE_valeurClientIdBoutonAjoutPiece').value; if(clientIdAjoutPiece) { var idHtmlCheminFichier = clientIdAjoutPiece + '_listePiecesSelectionnees'; var cheminFichier = document.getElementById(idHtmlCheminFichier).value; if (!isEmpty(cheminFichier)) { for(var i=0;i < arrayListePieces.length;i++) { if(arrayListePieces[i]) { document.MpeChiffrementApplet.ajouterFichier(1, 1, 0, idHtmlCheminFichier, arrayListePieces[i], typeFichier, null, null, 1); } } } } //Executer l'applet document.MpeChiffrementApplet.executer(); } //Masquer le loader "Veuillez patienter..." s'il est affich� sur la page hideLoader(); }else{ clientIdAjoutPiece = document.getElementById('ctl0_CONTENU_PAGE_valeurClientIdBoutonAjoutPiece').value; if(clientIdAjoutPiece) { document.getElementById(clientIdAjoutPiece+'_ajouterPiecesSelectionnees').click(); } hideLoader(); } } /** * Renvoie le resultat de la signature pades / xades et le chiffrement effectu�e. * * @param reponseJson le contenu de la reponse au format json * */ function renvoiResultatVerificationSignature(reponseSignatureFichierJson) { try { hideLoader(); clientIdAjoutPiece = document.getElementById('ctl0_CONTENU_PAGE_valeurClientIdBoutonAjoutPiece').value; if(clientIdAjoutPiece) { document.getElementById(clientIdAjoutPiece + '_listeJsonRetoursAppletPiecesSelectionnees').value = reponseSignatureFichierJson; document.getElementById(clientIdAjoutPiece+'_ajouterPiecesSelectionnees').click(); } } catch(e) { } } ///////////////////////////////////////////////////// Applet g�n�ration AE /////////////////////////////////////////////////// /** * Lance l'initialisation de l'applet en mode g�n�ration de l'acte d'engagement. */ function initialiserGenerationActeEngagementApplet(id_inputAE, id_inputXMl, stringXml, urlDownloadAE, num_lot) { var arrayElement = id_inputAE.split('_'); arrayElement.pop() var prefixeId = arrayElement.join('_'); document.getElementById('ctl0_CONTENU_PAGE_valeurClientIdBoutonAjoutPiece').value = prefixeId; stringXml = base64_encode(document.getElementById(stringXml).value); document.MpeGenerationActeEngagementApplet.initialiserGeneration(id_inputAE, id_inputXMl, stringXml, 0, urlDownloadAE); document.MpeGenerationActeEngagementApplet.executer(); } /** * Renvoi le resultat de la g�n�ration * * @param identifiantFichier * @param cheminFichier * @param identifiantFichierXML * @param cheminFichierXML. */ function renvoiResultatGeneration(identifiantFichier, cheminFichier, identifiantFichierXML, cheminFichierXML) { document.getElementById(identifiantFichier).value = cheminFichier; document.getElementById(identifiantFichierXML).value = cheminFichierXML; clientIdAjoutPiece = document.getElementById('ctl0_CONTENU_PAGE_valeurClientIdBoutonAjoutPiece').value; //alert(clientIdAjoutPiece+'_ajouterPiecesSelectionnees'); if(clientIdAjoutPiece) { document.getElementById(clientIdAjoutPiece+'_ajouterPiecesSelectionnees').click(); } } /** * Permet de loger les erreur de l'applet au moment de l'ajout d'un AE */ function logAppletGenerationAE(log){ if(document.getElementById('ctl0_CONTENU_PAGE_clientIdPieceType').value){ var identiant = document.getElementById('ctl0_CONTENU_PAGE_clientIdPieceType').value; document.getElementById(identiant+'_logAppletAjoutAE').value = log; document.getElementById(identiant+'_boutonlogAppletAjoutFichier').click(); } } /** * Permet de loger les erreur de l'applet au moment de l'ajout d'une * piece libre */ function logAppletSelectionFile(log){ if(document.getElementById('ctl0_CONTENU_PAGE_clientIdPieceLibre').value){ var identifiant = document.getElementById('ctl0_CONTENU_PAGE_clientIdPieceLibre').value; document.getElementById(identifiant+'_logAppletAjoutFichier').value = log; document.getElementById(identifiante+'_boutonlogAppletAjoutFichier').click(); } } /** * Permet de loger les erreurs de l'applet pendant la signature */ function logAppletSignature(log){ document.getElementById('ctl0_CONTENU_PAGE_logAppletSignature').value = log; } /** * Permet de loger les erreurs de l'applet pendant le depot de la reponse */ function logAppletDepotReponse(log){ document.getElementById('ctl0_CONTENU_PAGE_logAppletdepotReponse').value = log; }