See draft-miller-posh for more details on PKIX over Secure HTTP (POSH).
Make a POSH-verified connection to a given domain on a given service.
Events:
'posh request', url about to request a POSH document at the given URL'no posh', er No POSH document could be retrieved. Not really an error.'connecting', host, port, tls Connecting on the given host and port. If
tls is true, a TLS handshake will start as soon as the connection
finishes.'error', er an error was detected.'connect', socket the given socket was connected'secure', service_cert, posh_document the connection is secure
either by RFC 6125 or POSH. The posh_document is null if the service_cert
was valid via RFC 6125.'insecure', service_cert, posh_document the connection could not be
determined to be secure. The posh_document is null if it could not be
retrieved.Create a POSH connection object
dns_domain connect to the given domaindns_srv the DNS SRV protocol name to connect with.
For example, "_xmpp-server._tcp"options a configuration objectfallback_port The port to fall back on if SRV fails. If -1, use
the port for the given SRV protocol name from /etc/services. Defaults
to -1.start_tls Don't do TLS immediately after connecting. Instead, wait
for a listener for the connect event to call start_tls().ca An array of zero or more certificate authority (CA) certs to trust
when making HTTPS calls for POSH certs.Attempt to get the POSH assertion for the domain and SRV protocol given in the constructor
Do the SRV resolution.
host, port when complete. Ignores DNS errors, returning
the original domain and fallback port.Connect without starting TLS. Wait for the connect event, then call
start_tls.
Connect to the given serice, and start TLS immediately.
On the already-connected socket, start a TLS handshake. This MUST occur after the 'connect' event has been called.
Connect to the domain on the specified service, using either an initially- plaintext approach (options.start_tls=true), or an initially-encrypted approach (options.start_tls=false).
Create a POSH document from a list of certificates.
certs an array of PEM-encoded certificate chains. The first certificate
in each chain will be extracted into the POSH public key information.maxdepth the maxiumum number of certificates to use from each chain.Write a file with the given POSH object in a file with the correct name for the given service.
dir the directory to write intoservice the SRV record name for the target service.
Example: "_xmpp-server._tcp"