/// <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); }
/// <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); }