Zaman Damgası Bouncy Castle Kütüphanesi ile Kullanımı

Zaman Damgasının Bouncy Castle Kütüphanesi ile kullanmak için aşağıdaki örnek kodu kullanabilirsiniz.

C#

// using Org.BouncyCastle.Math;
// using Org.BouncyCastle.Tsp;

            String zdUrl = "http://zd.imza.at";
            String USERNAME = "";
            String PASSWORD= "";

            byte[] hash = StringToByteArray(“”);

            TimeStampRequestGenerator reqGen = new TimeStampRequestGenerator();
            reqGen.SetCertReq(true);
            TimeStampRequest tsReq;
            byte[] tsData;
            tsReq = reqGen.Generate(TspAlgorithms.Sha256, hash, BigInteger.ValueOf(100));  // veya SHA512
            tsData = tsReq.GetEncoded();
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(zdUrl );
              req.Method = "POST";
              req.ContentType = "application/timestamp-query";
              req.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(USERNAME+":"+PASSWORD))); // basic auth
              req.ContentLength = tsData.Length;

            Stream reqStream = req.GetRequestStream();
            reqStream.Write(tsData, 0, tsData.Length);
            reqStream.Close();

            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
            if (res == null) {
                sonuc = "Cevap Gelmedi";
             }
            else
            {
                Stream resStream = new BufferedStream(res.GetResponseStream());
                TimeStampResponse tsRes = new TimeStampResponse(resStream); resStream.Close();
                try
                {
                    tsRes.Validate(tsReq);
                    if (null != tsRes.GetFailInfo())
                    {
                        sonuc = tsRes.GetStatusString();
                    } else
                    {
                        sonuc = Convert.ToBase64String(tsRes.TimeStampToken.GetEncoded()); 
                    }
                }
                catch (TspException ex)
                {
                    Console.WriteLine(ex.Message);
                    sonuc = ex.Message;
                }
            }

Makale Detayları

Makale Kodu :
2
Oylama :