/// Constructs an instance out of the hash algorithm, flags, iterations, salt, next hashed owner name and types exist fields.
/// </summary>
/// <param name="hashAlgorithm">Identifies the cryptographic hash algorithm used to construct the hash-value.</param>
/// <param name="flags">Can be used to indicate different processing. All undefined flags must be zero.</param>
/// <param name="iterations">
/// Defines the number of additional times the hash function has been performed.
/// More iterations result in greater resiliency of the hash value against dictionary attacks,
/// but at a higher computational cost for both the server and resolver.
/// </param>
/// <param name="salt">Appended to the original owner name before hashing in order to defend against pre-calculated dictionary attacks.</param>
/// <param name="nextHashedOwnerName">
/// Contains the next hashed owner name in hash order.
/// This value is in binary format.
/// Given the ordered set of all hashed owner names, the Next Hashed Owner Name field contains the hash of an owner name that immediately follows the owner name of the given NSEC3 RR.
/// The value of the Next Hashed Owner Name field in the last NSEC3 RR in the zone is the same as the hashed owner name of the first NSEC3 RR in the zone in hash order.
/// Note that, unlike the owner name of the NSEC3 RR, the value of this field does not contain the appended zone name.
/// </param>
/// <param name="typesExist">Identifies the RRSet types that exist at the original owner name of the NSEC3 RR.</param>