Subject: bug#33780: network-stream.el: network-stream-certificate always returns nil

From: Vinothan Shankar <[email-masked]>
Date: Thu, 20 Dec 2018 11:24:12 +0000

On Wed, 2018-12-19 at 18:19 +0100, Robert Pluim wrote:
> Could you apply the following patch, and test something like
> 
> (open-network-stream
>  "*tls*" (current-buffer) "server.example.com"
>  "443"
>  :type 'tls
>  :warn-unless-encrypted t
>  :return-list t
>  :client-certificate t)
> 
> with the appropriate entries in your .authinfo (replace the
> servername
> and port number as needed)? It works in my limited testing, and
> doesnʼt appear to have broken Gnus (but none of my TLS connections
> require client certificates).

OK, so a few minutes into the process of trying to do this, I came
across a snag: the syntax for using certificates in authinfo files
doesn't appear to be documented anywhere; I had to extract it from a
stackexchange question.  Docs bug, or lack of search-fu?  Moving on...

Results:

Initial failure, but this is because I've been testing with ERC, which
calls open-network-stream with ":nowait t".  If I add the ":keylist
(and cert (list cert))" stanza to the other branch of open-gnutls-
stream as well, in the gnutls-boot-parameters call, it works perfectly:
Freenode picks up my identity even when I supply a blank password.