﻿// File JScript

//Calcola la firma dei dati di input
function getSignCertificates(contenuto) { 

    var MyStore = new ActiveXObject("CAPICOM.Store"); 
	var oCertificates = new ActiveXObject("CAPICOM.Certificates"); 
	var oCertificate = new ActiveXObject("CAPICOM.Certificate"); 
	var Signer = new ActiveXObject("CAPICOM.Signer");
	var SignedData = new ActiveXObject("CAPICOM.SignedData");
	var SigningTime = new ActiveXObject("CAPICOM.Attribute");
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var fso1 = new ActiveXObject("Scripting.FileSystemObject");
	var enc = new ActiveXObject("CAPICOM.Utilities");
	try { 
		MyStore.Open(4,"My",0)
		oCertificates = MyStore.Certificates; 
		oCertificates = oCertificates.Select("Seleziona il Certificato","Seleziona il Certificato per l'apposizione della firma digitale");
		oCertificate = oCertificates(1);
		Signer.Certificate = oCertificate;
		SignedData.Content = contenuto

		// in origine
        //var Message = SignedData.Sign(Signer,false,0)
        //Il parametro ‘True’ indica che il contenuto firmato non è
        //incluso nella stringa di firma.
        var Message = SignedData.Sign(Signer,true,0) 
        return Message;
      } 
    catch (e) { 
        alert("Errore: " + e.message)
        return ""; 
	   } 
		
		
} // fine getSignCertificates


// prende i dati del certificato che si vuole abilitare
function getCertificates() { 
	var MyStore = new ActiveXObject("CAPICOM.Store"); 
	var oCertificates = new ActiveXObject("CAPICOM.Certificates"); 
	var oCertificate = new ActiveXObject("CAPICOM.Certificate"); 
	// serve per la firma
	var SignedData = new ActiveXObject("CAPICOM.SignedData");
	var Signer = new ActiveXObject("CAPICOM.Signer");
	
	try { 
		MyStore.Open(4,"My",0);
		oCertificates = MyStore.Certificates; 
		oCertificates = oCertificates.Select("Seleziona il Certificato","Seleziona il Certificato Digitale");
		oCertificate = oCertificates(1);

		// firmo qualcosa di fittizio 
		// serve per la richiesta del pin
		Signer.Certificate = oCertificate;
		SignedData.Content = "Xdeal Abilitazione Smart Card"
        var Message = SignedData.Sign(Signer,false,0);
       	
       	// Recupero i dati del certificato 	
		Form1.NomeSoggetto.value = oCertificate.SubjectName;
		Form1.NumeroSeriale.value = oCertificate.SerialNumber;
		Form1.NomeIssuer.value = oCertificate.IssuerName;
		Form1.ValidoDal.value = oCertificate.ValidFromDate;
		Form1.ValidoAl.value = oCertificate.ValidToDate;
		// invio i dati alla pagina
		Form1.submit();
		//__doPostBack('','');
	} 
	catch (e) { 
		alert(e.name + "\r\n" + e.message) 
	}
}//Fine getCertificates


	
	// Verifica la firma di un file .p7m in input
	function verify(URL) 
	{ 
	   if(URL.length > 0)
	   {		
	    var MyStore = new ActiveXObject("CAPICOM.Store"); 
	    var oCertificates = new ActiveXObject("CAPICOM.Certificates"); 
	    var oCertificate = new ActiveXObject("CAPICOM.Certificate"); 
	    var Signer = new ActiveXObject("CAPICOM.Signer");
	    var SignedData = new ActiveXObject("CAPICOM.SignedData");
	    var SigningTime = new ActiveXObject("CAPICOM.Attribute");
	    var fso = new ActiveXObject("Scripting.FileSystemObject");
	    var fso1 = new ActiveXObject("Scripting.FileSystemObject");
	    var enc = new ActiveXObject("CAPICOM.Utilities");

	    try { 
		    ts = fso1.OpenTextFile(URL,1,false,-2);
		    var Message = ts.ReadAll();
		    ts.Close();
    		
		    var content = SignedData.Verify(Message, false,0);
		    alert("il file .p7m è valido");
	    } 
	    catch (e) 
	    { 
		    alert(e.name + "\r\n" + e.message); 
		    return false; 
	    } 
	    }
	    else
	    {
		    alert("Indicare il file (.p7m) da verificare!");
	    }
	
     }	
     
     

