public static void ReferansEkle(this PaketOzeti paketOzeti,
                                        PaketVersiyonTuru paketVersiyon,
                                        OzetAlgoritmaTuru ozetAlgoritma,
                                        byte[] ozetDegeri,
                                        Uri uri,
                                        byte[] ozetDegeriSha512 = null,
                                        bool hariciBilesenMi    = false)
        {
            if (ozetAlgoritma == OzetAlgoritmaTuru.YOK)
            {
                throw new ArgumentException(
                          nameof(ozetAlgoritma) + " değeri " + nameof(OzetAlgoritmaTuru.YOK) + " olmamalıdır.",
                          nameof(ozetAlgoritma));
            }
            if (ozetAlgoritma == OzetAlgoritmaTuru.SHA384 && paketVersiyon == PaketVersiyonTuru.Versiyon1X)
            {
                throw new ArgumentException(
                          nameof(OzetAlgoritmaTuru.SHA384) +
                          " özet algoritması yalnızca e-Yazışma API 2.X versiyonlarında kullanılabilir.",
                          nameof(ozetAlgoritma));
            }

            if (paketOzeti.Referanslar != null && paketOzeti.Referanslar.Count > 0)
            {
                var oncekiReferans = paketOzeti.Referanslar.Find(p =>
                                                                 string.Compare(p.URI, uri.ToString(), StringComparison.InvariantCultureIgnoreCase) == 0);
                if (oncekiReferans != default(Referans))
                {
                    paketOzeti.Referanslar.Remove(oncekiReferans);
                }
            }
            else
            {
                paketOzeti.Referanslar = new List <Referans>();
            }

            var yeniReferans = new Referans
            {
                Ozet = Ozet.Kilavuz.OzetAlgoritmasiAta(OzetAlgoritmasi.Kilavuz.AlgoritmaAta(ozetAlgoritma).Olustur())
                       .OzetDegeriAta(ozetDegeri).Olustur(),
                URI  = uri.ToString(),
                Type = hariciBilesenMi
                    ? Constants.HARICI_PAKET_BILESENI_REFERANS_TIPI
                    : Constants.DAHILI_PAKET_BILESENI_REFERANS_TIPI
            };

            if (paketVersiyon == PaketVersiyonTuru.Versiyon2X)
            {
                yeniReferans.Ozet1 = Ozet.Kilavuz
                                     .OzetAlgoritmasiAta(OzetAlgoritmasi.Kilavuz.AlgoritmaAta(OzetAlgoritmaTuru.SHA512).Olustur())
                                     .OzetDegeriAta(ozetDegeriSha512).Olustur();
            }

            paketOzeti.Referanslar.Add(yeniReferans);
        }
Пример #2
0
 public static byte[] CalculateHash(this OzetAlgoritmaTuru algoritmaTuru, byte[] value)
 {
     if (value == null)
     {
         return(null);
     }
     using (var ms = new MemoryStream(value))
     {
         return(algoritmaTuru.CalculateHash(ms));
     }
 }
Пример #3
0
        public static string ToXmlNameSpace(this OzetAlgoritmaTuru algoritmaTuru)
        {
            switch (algoritmaTuru)
            {
            case OzetAlgoritmaTuru.RIPEMD160: return(Constants.ALGORITHM_RIPEMD160);

            case OzetAlgoritmaTuru.SHA1: return(Constants.ALGORITHM_SHA1);

            case OzetAlgoritmaTuru.SHA256: return(Constants.ALGORITHM_SHA256);

            case OzetAlgoritmaTuru.SHA384: return(Constants.ALGORITHM_SHA384);

            case OzetAlgoritmaTuru.SHA512: return(Constants.ALGORITHM_SHA512);

            default: return("");
            }
        }
Пример #4
0
        public static byte[] CalculateHash(this OzetAlgoritmaTuru algoritmaTuru, Stream value)
        {
            switch (algoritmaTuru)
            {
            case OzetAlgoritmaTuru.RIPEMD160:
                using (var hashAlgorithm = new RIPEMD160Managed())
                {
                    return(hashAlgorithm.ComputeHash(value));
                }

            case OzetAlgoritmaTuru.SHA1:
            {
                using (var hashAlgorithm = new SHA1Managed())
                {
                    return(hashAlgorithm.ComputeHash(value));
                }
            }

            case OzetAlgoritmaTuru.SHA256:
                using (var hashAlgorithm = new SHA256Managed())
                {
                    return(hashAlgorithm.ComputeHash(value));
                }

            case OzetAlgoritmaTuru.SHA384:
                using (var hashAlgorithm = new SHA384Managed())
                {
                    return(hashAlgorithm.ComputeHash(value));
                }

            case OzetAlgoritmaTuru.SHA512:
                using (var hashAlgorithm = new SHA512Managed())
                {
                    return(hashAlgorithm.ComputeHash(value));
                }

            default:
                return(null);
            }
        }
 /// <summary>
 ///     Algoritma türü değeridir.
 /// </summary>
 /// <param name="algoritma">OzetAlgoritmaTuru tipinde olmalıdır.</param>
 /// <remarks>Zorunlu alandır.</remarks>
 public static IOzetAlgoritmasiFluentAlgoritma AlgoritmaAta(OzetAlgoritmaTuru algoritma)
 {
     return(new Kilavuz(algoritma));
 }
 private Kilavuz(OzetAlgoritmaTuru algoritma)
 {
     _algoritma = algoritma;
 }
 private OzetAlgoritmasi(OzetAlgoritmaTuru algoritma, XmlNode[] any)
 {
     Algoritma = algoritma;
     Any       = any;
 }