/// <inheritdoc /> public override void WriteData(PresentationWriter writer) { writer.WriteUInt16(KeyTag); writer.WriteByte((byte)Algorithm); writer.WriteByte((byte)HashAlgorithm); writer.WriteBase16String(Digest, appendSpace: false); }
/// <inheritdoc /> public override void WriteData(PresentationWriter writer) { writer.WriteByte((byte)HashAlgorithm); writer.WriteByte((byte)Flags); writer.WriteUInt16(Iterations); if (Salt == null || Salt.Length == 0) { writer.WriteString("-"); } else { writer.WriteBase16String(Salt); } writer.WriteString(Base32.ExtendedHex.Encode(NextHashedOwnerName, padding: false).ToLowerInvariant()); bool next = false; foreach (var type in Types) { if (next) { writer.WriteSpace(); } writer.WriteDnsType(type, appendSpace: false); next = true; } }
/// <summary> /// Write the textual representation of the data that is specific to /// the resource record. /// </summary> /// <param name="writer"> /// The destination for the resource record's data. /// </param> /// <remarks> /// Derived classes should implement this method. /// <para> /// By default, this will write the hex encoding of /// the <see cref="GetData">RDATA</see> preceeded by /// "\#" and the number integer bytes. /// </para> /// </remarks> public virtual void WriteData(PresentationWriter writer) { var rdata = GetData(); var hasData = rdata.Length > 0; writer.WriteStringUnencoded("\\#"); writer.WriteUInt32((uint)rdata.Length, appendSpace: hasData); if (hasData) { writer.WriteBase16String(rdata, appendSpace: false); } }
/// <inheritdoc /> public override void WriteData(PresentationWriter writer) { writer.WriteByte((byte)HashAlgorithm); writer.WriteByte((byte)Flags); writer.WriteUInt16(Iterations); if (Salt == null || Salt.Length == 0) { writer.WriteString("-"); } else { writer.WriteBase16String(Salt, appendSpace: false); } }