Blame src/danetool-args.def

Packit 549fdc
AutoGen Definitions options;
Packit 549fdc
prog-name     = danetool;
Packit 549fdc
prog-title    = "GnuTLS DANE tool";
Packit 549fdc
prog-desc     = "Generate DANE TLSA RR entries.";
Packit 549fdc
detail    = "Tool to generate and check DNS resource records for the DANE protocol.";
Packit 549fdc
short-usage   = "danetool --[tlsa-rr|check] [options]
Packit 549fdc
danetool --help for additional usage instructions.\n";
Packit 549fdc
explain       = "";
Packit 549fdc
Packit 549fdc
#define  INFILE_OPT    0
Packit 549fdc
#define  OUTFILE_OPT   1
Packit 549fdc
#define  VERBOSE_OPT 1
Packit 549fdc
#include args-std.def
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = load-pubkey;
Packit 549fdc
    descrip   = "Loads a public key file";
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    doc = "This can be either a file or a PKCS #11 URL";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = load-certificate;
Packit 549fdc
    descrip   = "Loads a certificate file";
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    doc = "This can be either a file or a PKCS #11 URL";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = dlv;
Packit 549fdc
    descrip   = "Sets a DLV file";
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    doc = "This sets a DLV file to be used for DNSSEC verification.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = hash;
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    descrip   = "Hash algorithm to use for signing";
Packit 549fdc
    doc = "Available hash functions are SHA1, RMD160, SHA256, SHA384, SHA512.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = check;
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    descrip   = "Check a host's DANE TLSA entry";
Packit 549fdc
    doc = "Obtains the DANE TLSA entry from the given hostname and prints information. Note that the actual certificate of the host can be provided using --load-certificate, otherwise danetool will connect to the server to obtain it. The exit code on verification success will be zero.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = check-ee;
Packit 549fdc
    descrip   = "Check only the end-entity's certificate";
Packit 549fdc
    doc = "Checks the end-entity's certificate only. Trust anchors or CAs are not considered.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = check-ca;
Packit 549fdc
    descrip   = "Check only the CA's certificate";
Packit 549fdc
    doc = "Checks the trust anchor's and CA's certificate only. End-entities are not considered.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = tlsa-rr;
Packit 549fdc
    descrip   = "Print the DANE RR data on a certificate or public key";
Packit 549fdc
    flags_must = host;
Packit 549fdc
    doc = "This command prints the DANE RR data needed to enable DANE on a DNS server.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = host;
Packit 549fdc
    descrip   = "Specify the hostname to be used in the DANE RR";
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    arg-name  = "Hostname";
Packit 549fdc
    doc = "This command sets the hostname for the DANE RR.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = proto;
Packit 549fdc
    descrip   = "The protocol set for DANE data (tcp, udp etc.)";
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    arg-name  = "Protocol";
Packit 549fdc
    doc = "This command specifies the protocol for the service set in the DANE data.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = port;
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    descrip   = "The port or service to connect to, for DANE data";
Packit 549fdc
    default-value = "443";
Packit 549fdc
    doc      = "";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = app-proto;
Packit 549fdc
    aliases   = starttls-proto;
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = starttls-proto;
Packit 549fdc
    descrip   = "The application protocol to be used to obtain the server's certificate (https, ftp, smtp, imap, ldap, xmpp, lmtp, pop3, nntp, sieve, postgres)";
Packit 549fdc
    arg-type  = string;
Packit 549fdc
    doc = "When the server's certificate isn't provided danetool will connect to the server to obtain the certificate. In that case it is required to know the protocol to talk with the server prior to initiating the TLS handshake.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = ca;
Packit 549fdc
    descrip   = "Whether the provided certificate or public key is a Certificate Authority";
Packit 549fdc
    doc      = "Marks the DANE RR as a CA certificate if specified.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = x509;
Packit 549fdc
    descrip   = "Use the hash of the X.509 certificate, rather than the public key";
Packit 549fdc
    doc      = "This option forces the generated record to contain the hash of the full X.509 certificate. By default only the hash of the public key is used.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = local;
Packit 549fdc
    aliases   = domain;
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = domain;
Packit 549fdc
    descrip   = "The provided certificate or public key is issued by the local domain";
Packit 549fdc
    enabled;
Packit 549fdc
    disable   = "no";
Packit 549fdc
    doc      = "DANE distinguishes certificates and public keys offered via the DNSSEC to trusted and local entities. This flag indicates that this is a domain-issued certificate, meaning that there could be no CA involved.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = local-dns;
Packit 549fdc
    descrip   = "Use the local DNS server for DNSSEC resolving";
Packit 549fdc
    disabled;
Packit 549fdc
    disable   = "no";
Packit 549fdc
    doc       = "This option will use the local DNS server for DNSSEC.
Packit 549fdc
This is disabled by default due to many servers not allowing DNSSEC.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = insecure;
Packit 549fdc
    descrip   = "Do not verify any DNSSEC signature";
Packit 549fdc
    doc = "Ignores any DNSSEC signature verification results.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = inder;
Packit 549fdc
    descrip   = "Use DER format for input certificates and private keys";
Packit 549fdc
    disabled;
Packit 549fdc
    disable   = "no";
Packit 549fdc
    doc       = "The input files will be assumed to be in DER or RAW format. 
Packit 549fdc
Unlike options that in PEM input would allow multiple input data (e.g. multiple 
Packit 549fdc
certificates), when reading in DER format a single data structure is read.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = inraw;
Packit 549fdc
    aliases   = inder;
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = print-raw;
Packit 549fdc
    descrip   = "Print the received DANE data in raw format";
Packit 549fdc
    disabled;
Packit 549fdc
    disable   = "no";
Packit 549fdc
    doc = "This option will print the received DANE data.";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
flag = {
Packit 549fdc
    name      = quiet;
Packit 549fdc
    descrip   = "Suppress several informational messages";
Packit 549fdc
    doc      = "In that case on the exit code can be used as an indication of verification success";
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
Packit 549fdc
Packit 549fdc
doc-section = {
Packit 549fdc
  ds-type = 'SEE ALSO';
Packit 549fdc
  ds-format = 'texi';
Packit 549fdc
  ds-text   = <<-_EOT_
Packit 549fdc
    certtool (1)
Packit 549fdc
_EOT_;
Packit 549fdc
};
Packit 549fdc
Packit 549fdc
doc-section = {
Packit 549fdc
  ds-type = 'EXAMPLES';
Packit 549fdc
  ds-format = 'texi';
Packit 549fdc
  ds-text   = <<-_EOT_
Packit 549fdc
@subheading DANE TLSA RR generation
Packit 549fdc
Packit 549fdc
To create a DANE TLSA resource record for a certificate (or public key) 
Packit 549fdc
that was issued localy and may or may not be signed by a CA use the following command.
Packit 549fdc
@example
Packit 549fdc
$ danetool --tlsa-rr --host www.example.com --load-certificate cert.pem
Packit 549fdc
@end example
Packit 549fdc
Packit 549fdc
To create a DANE TLSA resource record for a CA signed certificate, which will
Packit 549fdc
be marked as such use the following command.
Packit 549fdc
@example
Packit 549fdc
$ danetool --tlsa-rr --host www.example.com --load-certificate cert.pem \
Packit 549fdc
  --no-domain
Packit 549fdc
@end example
Packit 549fdc
Packit 549fdc
The former is useful to add in your DNS entry even if your certificate is signed 
Packit 549fdc
by a CA. That way even users who do not trust your CA will be able to verify your
Packit 549fdc
certificate using DANE.
Packit 549fdc
Packit 549fdc
In order to create a record for the CA signer of your certificate use the following.
Packit 549fdc
@example
Packit 549fdc
$ danetool --tlsa-rr --host www.example.com --load-certificate cert.pem \
Packit 549fdc
  --ca --no-domain
Packit 549fdc
@end example
Packit 549fdc
Packit 549fdc
To read a server's DANE TLSA entry, use:
Packit 549fdc
@example
Packit 549fdc
$ danetool --check www.example.com --proto tcp --port 443
Packit 549fdc
@end example
Packit 549fdc
Packit 549fdc
To verify an HTTPS server's DANE TLSA entry, use:
Packit 549fdc
@example
Packit 549fdc
$ danetool --check www.example.com --proto tcp --port 443 --load-certificate chain.pem
Packit 549fdc
@end example
Packit 549fdc
Packit 549fdc
To verify an SMTP server's DANE TLSA entry, use:
Packit 549fdc
@example
Packit 549fdc
$ danetool --check www.example.com --proto tcp --starttls-proto=smtp --load-certificate chain.pem
Packit 549fdc
@end example
Packit 549fdc
_EOT_;
Packit 549fdc
};
Packit 549fdc
Packit 549fdc