Subject: Re: bug#50507: New function in Emacs GnuTLS implementation

From: Nikolaos Chatzikonstantinou <[email-masked]>
Date: Mon, 26 Sep 2022 05:56:27 -0400

On Thu, Sep 15, 2022 at 3:09 AM Lars Ingebrigtsen <[email-masked]> wrote:
>
> Nikolaos Chatzikonstantinou <[email-masked]> writes:
> >
> > My goal is to increase the completion of the Emacs wrapper of
> > GnuTLS. Originally I cared only to add enough to implement
> > encryption-at-rest for the circe IRC client.
>
> Great; looking forward to it.

I have a small update.

I looked into src/gnutls.c to see which functions are implemented. In
total, there's 19 functions defined with DEFUN,

    gnutls-hash-digest
    gnutls-format-certificate
    gnutls-peer-status-warning-describe
    gnutls-peer-status
    gnutls-deinit
    gnutls-hash-mac
    gnutls-errorp
    gnutls-error-fatalp
    gnutls-error-string
    gnutls-macs
    gnutls-digests
    gnutls-ciphers
    gnutls-available-p
    gnutls-boot
    gnutls-bye
    gnutls-asynchronous-parameters
    gnutls-get-initstage
    gnutls-symmetric-encrypt
    gnutls-symmetric-decrypt

However, I suspect that this API is not used by most
packages. Instead, these functions are called from Emacs'
make-network-process and friends in src/process.c. If I just dump new
gnutls functions in src/gnutls.c, they might not be accessible for
use, or I might duplicate functionality.

Before I make sensible changes to src/gnutls.c, I would need to
understand better how the functions are used in
src/process.c. However, that file is lacking function
comments. Therefore, since I'll be studying it anyhow, I suggest that
my first patch will be C documentation for those functions in
src/process.c.