Example #1
0
        /// <summary>
        /// Funzione di generazione della marca temporale.
        /// </summary>
        /// <param name="inMarca">Struttura contente le informazioni per la generazione della marca</param>
        /// <param name="svcUrl">Url del webservice tibco della marca temporale</param>
        /// <returns></returns>
        public OutputResponseMarca getMarcaByFile(InputMarca inMarca, string svcUrl)
        {
            logger.DebugFormat("INIZIO {0}  - {1}", inMarca.file_p7m, svcUrl);
            byte[] fileContent = String_To_Bytes(inMarca.file_p7m);  //System.IO.File.ReadAllBytes(inMarca.file_p7m);

            OutputResponseMarca retval = new OutputResponseMarca();

            retval.TSA = new TSARFC2253();
            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Ssl3;
            MarcaturaTemporale.MarcaturaTemporalePortTypeClient client = createClient(svcUrl);

            try
            {
                MarcaturaTemporale.MarcaType mt = client.EmissioneMarcaTemporale(fileContent);
                retval.marca              = Convert.ToBase64String(mt.marca);
                retval.sernum             = mt.serialNumber.ToString();
                retval.TSA.TSARFC2253Name = mt.timestampAuthority;
                retval.docm_date          = mt.dataOraMarca.ToString();
                retval.esito              = "OK";
                logger.DebugFormat("Generazione Marca per file  MarcaBase64 len:{2} Val [{0}] DATATA {1}", retval.marca, retval.docm_date.ToString(), mt.marca.Length);


                //Per la generazione del fhash.. ma non รจ richiesto per il funzionamento
                SHA256Managed sha256 = new SHA256Managed();
                byte[]        hash   = sha256.ComputeHash(fileContent);

                string hexHash = BitConverter.ToString(hash);
                hexHash = hexHash.Replace("-", "");

                retval.fhash = hexHash;
            }
            catch (FaultException <MarcaturaTemporale.FaultType> f)
            {
                logger.Error(String.Format("Errore {0} code {1}", f.Detail.userMessage, f.Code));
                //Console.WriteLine(String.Format("Errore {0} code {1}", f.Detail.userMessage, f.Code));
                retval.descrizioneErrore = f.Detail.userMessage;
                retval.esito             = "KO";
            }
            catch (Exception e)
            {
                logger.Error(String.Format("Errore {0} code {1}", e.Message, e.Data));
                // Console.WriteLine(String.Format("Errore {0} code {1}", pe.Message, pe.Data));
                retval.descrizioneErrore = e.Message;
                retval.esito             = "KO";
            }


            return(retval);
        }
Example #2
0
        /// <summary>
        /// Funzione di verifica della marca temporale
        /// </summary>
        /// <param name="base64Marca">Marca temporale il formato stringa Base64</param>
        /// <param name="base64File">File marcato temporalmente in formato stringa Base64</param>
        /// <param name="svcUrl">Url del webservice tibco della marca temporale</param>
        /// <returns></returns>
        public OutputResponseMarca verificaTimeStamp(string base64Marca, string base64File, string svcUrl)
        {
            logger.DebugFormat("INIZIO {0}", svcUrl);
            OutputResponseMarca retval = new OutputResponseMarca();

            retval.TSA = new TSARFC2253();
            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Ssl3;
            MarcaturaTemporale.MarcaturaTemporalePortTypeClient client = createClient(svcUrl);
            try
            {
                byte[] marca = Convert.FromBase64String(base64Marca);
                byte[] file  = Convert.FromBase64String(base64File);

                Console.WriteLine("marca " + marca.Length + " file " + file.Length);

                MarcaturaTemporale.MarcaType mt = client.VerificaMarcatura(marca, file);
                retval.marca              = Convert.ToBase64String(mt.marca);
                retval.sernum             = mt.serialNumber.ToString();
                retval.TSA.TSARFC2253Name = mt.timestampAuthority;
                retval.docm_date          = mt.dataOraMarca.ToString();
                retval.esito              = "OK";
                logger.DebugFormat("Verifica Marca OK  DATATA {1}", retval.docm_date.ToString());
            }
            catch (FaultException <MarcaturaTemporale.FaultType> f)
            {
                logger.Error(String.Format("Errore {0} code {1}", f.Detail.userMessage, f.Code));
                Console.WriteLine(String.Format("Errore {0} code {1}", f.Detail.userMessage, f.Code));
                retval.descrizioneErrore = f.Detail.userMessage;
                retval.esito             = "KO";
            }
            catch (Exception e)
            {
                logger.Error(String.Format("Errore {0} code {1}", e.Message, e.Data));
                Console.WriteLine(String.Format("Errore {0} code {1}", e.Message, e.Data));
                retval.descrizioneErrore = e.Message;
                retval.esito             = "KO";
            }
            return(retval);
        }