DNSSEC: add knot_dnssec_sign_key() function

refs #2413

Change-Id: I8c40b8bdf39bff7cf4e5d6ae41cb2612b634b932
DNSSEC: add knot_dnssec_sign_new() function

Allows cleaning up of the digest context to create multiple signatures.

refs #2413

Change-Id: Idcc23b99269d266d2ed1cbb6abda0bc73ec07338
key loading: convert base64 strings to binary data

refs #2413

Change-Id: I071d0a4560ded8051352ee6d30513a8c10b51a02
key parameters: active/inactive timestamp

refs #2413

Change-Id: I44e0e6b9058781d58c54ee8521e294836ee4e183
public key loading: multiline, skip comments

The public key is specified as DNS RR. Before this patch, only first
line of the input file was read even if it contained comment, white
spaces or just a part of the RR.

refs #2413

Change-Id: I4cf3374121fbb676d89a52fa4ba741e497b04564
RRSET: add knot_rrset_to_wire_one()

refs #2413

Change-Id: I3d97bc4ea2f0986900c503bd10bc5f5ceb2585a6
in progress: DNSSEC: zone signing

refs #2413

Change-Id: I0b0a572eb5cc11787e332404226b0b079ed85f88
in progress: NSEC
in progress: NSEC, refactor chain iteration
in progress: NSEC: refactor, add comments, fix memory leaks
common: add knot_memdup() function
util/tolower: remove magic and add knot_strtolower()
NSEC3: add KNOT_NSEC3_ECOMPUTE_HASH error code
NSEC3: refactor hash computation

- always use OpenSSL EVP
- do not touch output parameters if there is an error
- do not abort when there is an allocation error
- prepare for additional hash algorithms
- remove debug outputs
in progress: NSEC: temporarily allow NSEC without RRSIG
NSEC: zone adjusting: remove connecting of regular nodes and NSEC3 nodes

- connections are generated when NSEC3 nodes are created
- explicitly request node connecting when the zone is loaded or after incoming transfer
config: add 'dnssec-keydir' and 'dnssec-enable' options

- 'dnssec-keydir' is set for all zones
- 'dnssec-enable' is set for all zones, can be overridden for individual zone
zones: disable incoming XFR if DNSSEC signing is enabled
zone-content: clean up of zone adjusting functions

- no functional changes
- outdated descriptions were removed/updated
- reduced number of necessary iterations over the zone nodes
common lib: add hex string to bytes conversion