Пример #1
0
        /// <summary>
        /// Gets the input data.
        /// </summary>
        /// <param name="data">The input data.</param>
        /// <returns>input data</returns>
        private static byte[] GetInputData(DsInputData data)
        {
            byte[] ownerDataBytes = CanonicalFormatHelper.BuildUnpackedDomainInCanonicalForm(data.Domain);
            var    test           = ownerDataBytes.ToHexString();

            byte[] dnsKeyRRDataBytes = GeRRData(data);
            return(ownerDataBytes.Concat(dnsKeyRRDataBytes).ToArray());
        }
        public static byte[] GetCanonicalFormatData(int ttl, DnsKeyRecord rec)
        {
            var rrdata = GetCanonicalRRData(rec);

            using (var ms = new MemoryStream())
            {
                byte[] domainBytes = CanonicalFormatHelper.BuildUnpackedDomainInCanonicalForm(rec.Name);
                ms.Write(domainBytes, 0, domainBytes.Length);
                ms.Write(BitConverter.GetBytes((ushort)rec.RecordType).Reverse(), 0, 2);
                ms.Write(BitConverter.GetBytes((ushort)rec.RecordClass).Reverse(), 0, 2);
                ms.Write(BitConverter.GetBytes(ttl).Reverse(), 0, 4);
                ms.Write(BitConverter.GetBytes((ushort)rrdata.Length).Reverse(), 0, 2);
                ms.Write(rrdata, 0, rrdata.Length);
                return(ms.ToArray());
            }
        }