NSEC3Record (dnsjava documentation)
Date: 2013-04-10

org.xbill.DNS

## Class NSEC3Record

- java.lang.Object
- - org.xbill.DNS.Record
  - - org.xbill.DNS.NSEC3Record

- All Implemented Interfaces:
    Serializable, Cloneable, Comparable

      public class NSEC3Record
      extends Record

  Next SECure name 3 - this record contains the next hashed name in an ordered list of hashed names in the zone, and a set of types for which records exist for this name. The presence of this record in a response signifies a negative response from a DNSSEC-signed zone. This replaces the NSEC and NXT records, when used.
  Author:
    Brian Wellington, David Blacka
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `NSEC3Record.Digest`
    `static class` | `NSEC3Record.Flags`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `SHA1_DIGEST_ID`

    - ### Fields inherited from class org.xbill.DNS.Record

      `dclass, name, ttl, type`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `NSEC3Record(Name name, int dclass, long ttl, int hashAlg, int flags, int iterations, byte[] salt, byte[] next, int[] types)` Creates an NSEC3 record from the given data.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getFlags()` Returns the flags
    `int` | `getHashAlgorithm()` Returns the hash algorithm
    `int` | `getIterations()` Returns the number of iterations
    `byte[]` | `getNext()` Returns the next hash
    `byte[]` | `getSalt()` Returns the salt
    `int[]` | `getTypes()` Returns the set of types defined for this name
    `byte[]` | `hashName(Name name)` Hashes a name with the parameters of this NSEC3 record.
    `boolean` | `hasType(int type)` Returns whether a specific type is in the set of types.

    - ### Methods inherited from class org.xbill.DNS.Record

      `byteArrayFromString, byteArrayToString, compareTo, equals, fromString, fromString, fromWire, getAdditionalName, getDClass, getName, getRRsetType, getTTL, getType, hashCode, newRecord, newRecord, newRecord, newRecord, rdataToString, rdataToWireCanonical, sameRRset, toString, toWire, toWireCanonical, unknownToString, withName`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### SHA1_DIGEST_ID

          public static final int SHA1_DIGEST_ID

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### NSEC3Record

          public NSEC3Record(Name name,
                     int dclass,
                     long ttl,
                     int hashAlg,
                     int flags,
                     int iterations,
                     byte[] salt,
                     byte[] next,
                     int[] types)

      Creates an NSEC3 record from the given data.
      Parameters:
        `name` - The ownername of the NSEC3 record (base32'd hash plus zonename).
        `dclass` - The class.
        `ttl` - The TTL.
        `hashAlg` - The hash algorithm.
        `flags` - The value of the flags field.
        `iterations` - The number of hash iterations.
        `salt` - The salt to use (may be null).
        `next` - The next hash (may not be null).
        `types` - The types present at the original ownername.

  - ### Method Detail

    - #### getHashAlgorithm

          public int getHashAlgorithm()

      Returns the hash algorithm

    - #### getFlags

          public int getFlags()

      Returns the flags

    - #### getIterations

          public int getIterations()

      Returns the number of iterations

    - #### getSalt

          public byte[] getSalt()

      Returns the salt

    - #### getNext

          public byte[] getNext()

      Returns the next hash

    - #### getTypes

          public int[] getTypes()

      Returns the set of types defined for this name

    - #### hasType

          public boolean hasType(int type)

      Returns whether a specific type is in the set of types.

    - #### hashName

          public byte[] hashName(Name name)
                          throws NoSuchAlgorithmException

      Hashes a name with the parameters of this NSEC3 record.
      Parameters:
        `name` - The name to hash
      Returns:
        The hashed version of the name
      Throws:
        `NoSuchAlgorithmException` - The hash algorithm is unknown.