Package org.xbill.DNS

Class KEYRecord

java.lang.Object
org.xbill.DNS.Record
org.xbill.DNS.KEYRecord
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Record>

public class KEYRecord extends Record
Key - contains a cryptographic public key. The data can be converted to objects implementing java.security.interfaces.PublicKey
Author:
Brian Wellington
See Also:
  • Field Details

    • FLAG_NOCONF

      public static final int FLAG_NOCONF
      This key cannot be used for confidentiality (encryption)
      See Also:
    • FLAG_NOAUTH

      public static final int FLAG_NOAUTH
      This key cannot be used for authentication
      See Also:
    • FLAG_NOKEY

      public static final int FLAG_NOKEY
      This key cannot be used for authentication or confidentiality
      See Also:
    • OWNER_ZONE

      public static final int OWNER_ZONE
      A zone key
      See Also:
    • OWNER_HOST

      public static final int OWNER_HOST
      A host/end entity key
      See Also:
    • OWNER_USER

      public static final int OWNER_USER
      A user key
      See Also:
    • PROTOCOL_TLS

      public static final int PROTOCOL_TLS
      Key was created for use with transaction level security
      See Also:
    • PROTOCOL_EMAIL

      public static final int PROTOCOL_EMAIL
      Key was created for use with email
      See Also:
    • PROTOCOL_DNSSEC

      public static final int PROTOCOL_DNSSEC
      Key was created for use with DNSSEC
      See Also:
    • PROTOCOL_IPSEC

      public static final int PROTOCOL_IPSEC
      Key was created for use with IPSEC
      See Also:
    • PROTOCOL_ANY

      public static final int PROTOCOL_ANY
      Key was created for use with any protocol
      See Also:
    • flags

      protected int flags
    • proto

      protected int proto
    • alg

      protected int alg
    • key

      protected byte[] key
    • footprint

      protected int footprint
    • publicKey

      protected PublicKey publicKey
  • Constructor Details

    • KEYRecord

      public KEYRecord(Name name, int dclass, long ttl, int flags, int proto, int alg, byte[] key)
      Creates a KEY Record from the given data
      Parameters:
      flags - Flags describing the key's properties
      proto - The protocol that the key was created for
      alg - The key's algorithm
      key - Binary data representing the key
    • KEYRecord

      public KEYRecord(Name name, int dclass, long ttl, int flags, int proto, int alg, PublicKey key) throws DNSSEC.DNSSECException
      Creates a KEY Record from the given data
      Parameters:
      flags - Flags describing the key's properties
      proto - The protocol that the key was created for
      alg - The key's algorithm
      key - The key as a PublicKey
      Throws:
      DNSSEC.DNSSECException - The PublicKey could not be converted into DNS format.
  • Method Details

    • rdataFromString

      protected void rdataFromString(Tokenizer st, Name origin) throws IOException
      Description copied from class: Record
      Converts the text format of an RR to the internal format - must be overriden
      Specified by:
      rdataFromString in class Record
      Throws:
      IOException
    • rrFromWire

      protected void rrFromWire(DNSInput in) throws IOException
      Description copied from class: Record
      Converts the type-specific RR to wire format - must be overridden
      Specified by:
      rrFromWire in class Record
      Throws:
      IOException
    • rrToString

      protected String rrToString()
      Converts the DNSKEY/KEY Record to a String
      Specified by:
      rrToString in class Record
    • getFlags

      public int getFlags()
      Returns the flags describing the key's properties
    • getProtocol

      public int getProtocol()
      Returns the protocol that the key was created for
    • getAlgorithm

      public int getAlgorithm()
      Returns the key's algorithm
    • getKey

      public byte[] getKey()
      Returns the binary data representing the key
    • getFootprint

      public int getFootprint()
      Returns the key's footprint (after computing it)
    • getPublicKey

      public PublicKey getPublicKey() throws DNSSEC.DNSSECException
      Returns a PublicKey corresponding to the data in this key.
      Throws:
      DNSSEC.DNSSECException - The key could not be converted.
    • rrToWire

      protected void rrToWire(DNSOutput out, Compression c, boolean canonical)
      Description copied from class: Record
      Converts the type-specific RR to wire format - must be overridden.
      Specified by:
      rrToWire in class Record