Blame src/danetool-args.def

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