static protected byte[] GetTSAResponse(String tsaURL, string tsaUserName, string tsaPassword, byte[] hash) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(tsaURL); request.Method = "POST"; String hash1 = ToHexString(hash); //Convert Byte[] to HexaString String algo = "SHA256"; String WC = "true"; String respuesta = "hashAlgo=" + HttpUtility.UrlEncode(algo) + "&hashValue=" + HttpUtility.UrlEncode(hash1) + "&withCert=" + HttpUtility.UrlEncode(WC); requestBytes = StrToByteArray(respuesta); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = requestBytes.Length; request.PreAuthenticate = true; String userPassword = tsaUserName + ":" + tsaPassword; userPassword = Convert.ToBase64String(Encoding.Default.GetBytes(userPassword)); request.Headers["Authorization"] = "Basic " + userPassword; Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Flush(); requestStream.Close(); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); MemoryStream ms = new MemoryStream(); byte[] responseBytes; byte[] buffer = new byte[4096]; using (MemoryStream memoryStream = new MemoryStream()) { int count = 0; do { count = resStream.Read(buffer, 0, buffer.Length); memoryStream.Write(buffer, 0, count); } while (count != 0); responseBytes = memoryStream.ToArray(); } response.Close(); return responseBytes; //return timeStampToken Object }