All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chuck Lever <cel@kernel.org>
To: <kernel-tls-handshake@lists.linux.dev>
Cc: Xin Long <lucien.xin@gmail.com>, Chuck Lever <chuck.lever@oracle.com>
Subject: [PATCH v1 05/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/config.c
Date: Thu, 25 Sep 2025 21:21:54 -0400	[thread overview]
Message-ID: <20250926012207.3642990-6-cel@kernel.org> (raw)
In-Reply-To: <20250926012207.3642990-1-cel@kernel.org>

From: Chuck Lever <chuck.lever@oracle.com>

I started the ktls-utils project using the Linux kernel flavor of
Doxygen commenting which user-space Doxygen does not recognize by
default.

Convert existing comments in config.c to what a normal user space
Doxygen run expects to see. This will enable deployment of an
automatically-generated documentation web site.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 src/tlshd/config.c | 152 ++++++++++++++++++++++++++-------------------
 1 file changed, 88 insertions(+), 64 deletions(-)

diff --git a/src/tlshd/config.c b/src/tlshd/config.c
index bf57df17f48c..1afe1ff9bca0 100644
--- a/src/tlshd/config.c
+++ b/src/tlshd/config.c
@@ -1,6 +1,10 @@
+/**
+ * @file config.c
+ * @brief Parse tlshd's config file
+ */
+
 /*
- * Parse tlshd's config file.
- *
+ * @copyright
  * Copyright (c) 2022 Oracle and/or its affiliates.
  *
  * ktls-utils is free software; you can redistribute it and/or
@@ -44,16 +48,20 @@
 
 #include "tlshd.h"
 
+/**
+ * @var GKeyFile *tlshd_configuration
+ * In-memory parsed config file
+ */
 static GKeyFile *tlshd_configuration;
 
 /**
- * tlshd_config_init - Read tlshd's config file
- * @pathname: Pathname to config file
- * @legacy: Don't generate an error if the config file doesn't exist
+ * @brief Parse tlshd's config file
+ * @param[in]    pathname  Pathname to config file
+ * @param[in]    legacy    Don't generate an error if the specified
+ *			   config file doesn't exist
  *
- * Return values:
- *   %true: Config file read successfully
- *   %false: Unable to read config file
+ * @retval true   Config file parsed successfully
+ * @retval false  Unable to read config file
  */
 bool tlshd_config_init(const gchar *pathname, bool legacy)
 {
@@ -111,26 +119,49 @@ bool tlshd_config_init(const gchar *pathname, bool legacy)
 	return true;
 }
 
+/**
+ * @brief Release parsed config file data
+ */
 void tlshd_config_shutdown(void)
 {
 	g_key_file_free(tlshd_configuration);
 }
 
 /**
- * ALLPERMS exists in glibc, but not on musl, so we manually
- * define TLSHD_ACCESSPERMS instead of using ALLPERMS.
+ * @def TLSHD_ACCESSPERMS
+ * @brief ALLPERMS exists in glibc, but not on musl, so we manually
+ *	  define TLSHD_ACCESSPERMS instead of using ALLPERMS.
  */
 #define TLSHD_ACCESSPERMS	(S_IRWXU|S_IRWXG|S_IRWXO)
 
-/*
- * Expected file attributes
+/**
+ * @def TLSHD_OWNER
+ * @brief Expected owner of certificate and private key files
  */
 #define TLSHD_OWNER		0	/* root */
+
+/**
+ * @def TLSHD_CERT_MODE
+ * @brief Expected mode of certificate files
+ */
 #define TLSHD_CERT_MODE		(S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
+
+/**
+ * @def TLSHD_PRIVKEY_MODE
+ * @brief Expected mode of private key files
+ */
 #define TLSHD_PRIVKEY_MODE	(S_IRUSR|S_IWUSR)
 
-/*
- * On success, caller must release buffer returned in @data by calling free(3)
+/**
+ * @brief Read one configuration file
+ * @param[in]    pathname  Pathname to file that is to be read
+ * @param[out]   data      Buffer containing all file content
+ * @param[in]    owner     Expected owner of file
+ * @param[in]    mode      Expected mode of file
+ *
+ * @retval true   File content retrieved successfully. Caller must
+ *		  release "data->data" by calling free(3)
+ * @retval false  File content not retrieved
  */
 static bool tlshd_config_read_datum(const char *pathname, gnutls_datum_t *data,
 				    uid_t owner, mode_t mode)
@@ -189,13 +220,13 @@ out:
 }
 
 /**
- * tlshd_config_get_truststore - Get truststore for {Client,Server}Hello from .conf
- * @peer_type: IN: peer type
- * @bundle: OUT: pathname to truststore
+ * @brief Get truststore to use for {Client,Server}Hello
+ * @param[in]     peer_type  peer type
+ * @param[out]    bundle     pathname to truststore
  *
- * Return values:
- *   %false: pathname not retrieved
- *   %true: pathname retrieved successfully; caller must free @bundle using free(3)
+ * @retval true   Trust store retrieved successfully. Caller must free
+ *		  "*bundle" using free(3)
+ * @retval false  Trust store not retrieved
  */
 bool tlshd_config_get_truststore(int peer_type, char **bundle)
 {
@@ -226,13 +257,13 @@ bool tlshd_config_get_truststore(int peer_type, char **bundle)
 }
 
 /**
- * tlshd_config_get_crl - Get CRL for {Client,Server}Hello from .conf
- * @peer_type: IN: peer type
- * @result: OUT: pathname to CRL
+ * @brief Get CRL for {Client,Server}Hello from .conf
+ * @param[in]     peer_type  peer type
+ * @param[out]    result     pathname to CRL
  *
- * Return values:
- *   %false: pathname not retrieved
- *   %true: pathname retrieved successfully; caller must free @result using free(3)
+ * @retval true   CRL retrieved successfully. Caller must free
+ *		  "*result" using free(3)
+ * @retval false  CRL not retrieved
  */
 bool tlshd_config_get_crl(int peer_type, char **result)
 {
@@ -308,16 +339,14 @@ static bool tlshd_cert_check_pk_alg(__attribute__ ((unused)) gnutls_datum_t *dat
 #endif /* HAVE_GNUTLS_MLDSA */
 
 /**
- * __tlshd_config_get_certs - Helper for tlshd_config_get_certs()
- * @peer_type: IN: peer type
- * @certs: OUT: in-memory certificates
- * @certs_len: IN: maximum number of certs to get, OUT: number of certs found
- * @pkgalg: IN: if non-NULL, indicates we want to retrieve the PQ cert,
- *	 OUT: if non-NULL, store the PQ public-key alg that was used in the PQ cert
+ * @brief Helper for tlshd_config_get_certs()
+ * @param[in]      peer_type  peer type
+ * @param[out]     certs      in-memory certificates
+ * @param[in,out]  certs_len  maximum number of certs to get, number of certs found
+ * @param[out]     pkalg      buffer for returning PQ algorithm
  *
- * Return values:
- *   %true: certificate retrieved successfully
- *   %false: certificate not retrieved
+ * @retval true   Certificate(s) retrieved successfully
+ * @retval false  Certificate(s) not retrieved
  */
 static bool __tlshd_config_get_certs(int peer_type, gnutls_pcert_st *certs,
 				     unsigned int *certs_len,
@@ -372,21 +401,20 @@ static bool __tlshd_config_get_certs(int peer_type, gnutls_pcert_st *certs,
 }
 
 /**
- * tlshd_config_get_certs - Get certs for {Client,Server} Hello from .conf
- * @peer_type: IN: peer type
- * @certs: OUT: in-memory certificates
- * @pq_certs_len: IN: maximum number of PQ certs to get, OUT: number of PQ certs found
- * @certs_len: IN: maximum number of certs to get, OUT: number of certs found
- * @pkgalg: OUT: the PQ public-key alg that was used in the PQ cert
+ * @brief Get certs for {Client,Server} Hello
+ * @param[in]      peer_type     peer type
+ * @param[out]     certs         in-memory certificates
+ * @param[in,out]  pq_certs_len  maximum number of PQ certs to get, number of PQ certs found
+ * @param[in,out]  certs_len     maximum number of certs to get, number of certs found
+ * @param[out]     pkalg         the PQ public-key alg that was used in the PQ cert
  *
- * Retrieve the PQ cert(s) first, then the RSA cert(s).  Both are stored in the
- * same list.  Note that @pq_certs_len is deducted from the available @certs_len
- * and is also used to determine the offset to store the RSA cert(s) in the
- * @certs array.
+ * Retrieve the PQ cert(s) first, then the RSA cert(s).  Both are
+ * stored in the same list.  Note that "pq_certs_len" is deducted
+ * from the available "certs_len" and is also used to determine
+ * the offset to store the RSA cert(s) in the "certs array".
  *
- * Return values:
- *   %true: certificate retrieved successfully
- *   %false: certificate not retrieved
+ * @retval true   Certificate(s) retrieved successfully
+ * @retval false  Certificate(s) not retrieved
  */
 bool tlshd_config_get_certs(int peer_type, gnutls_pcert_st *certs,
 			    unsigned int *pq_certs_len,
@@ -407,14 +435,13 @@ bool tlshd_config_get_certs(int peer_type, gnutls_pcert_st *certs,
 }
 
 /**
- * __tlshd_config_get_privkey - Helper for tlshd_config_get_privkey()
- * @peer_type: IN: peer type
- * @privkey: OUT: in-memory private key
- * @pq: IN: if true, retrieve the PQ private key
+ * @brief Helper for tlshd_config_get_privkey()
+ * @param[in]      peer_type  peer type
+ * @param[out]     privkey    in-memory private key
+ * @param[in]      pq         if true, retrieve the PQ private key
  *
- * Return values:
- *   %true: private key retrieved successfully
- *   %false: private key not retrieved
+ * @retval true   Private key retrieved successfully
+ * @retval false  Private key not retrieved
  */
 static bool __tlshd_config_get_privkey(int peer_type, gnutls_privkey_t *privkey, bool pq)
 {
@@ -463,16 +490,13 @@ static bool __tlshd_config_get_privkey(int peer_type, gnutls_privkey_t *privkey,
 }
 
 /**
- * tlshd_config_get_privkey - Get private key for {Client,Server}Hello from .conf
- * @peer_type: IN: peer type
- * @pq_privkey: OUT: in-memory PQ private key
- * @privkey: OUT: in-memory private key
+ * @brief Get private key for {Client,Server}Hello
+ * @param[in]      peer_type   peer type
+ * @param[out]     pq_privkey  in-memory PQ private key
+ * @param[out]     privkey     in-memory private key
  *
- * Retrieve the PQ private key first, then the RSA private key.
- *
- * Return values:
- *   %true: private key retrieved successfully
- *   %false: private key not retrieved
+ * @retval true   Private key retrieved successfully
+ * @retval false  Private key not retrieved
  */
 bool tlshd_config_get_privkey(int peer_type, gnutls_privkey_t *pq_privkey,
 			      gnutls_privkey_t *privkey)
-- 
2.51.0


  parent reply	other threads:[~2025-09-26  1:22 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-26  1:21 [PATCH v1 00/16] Create gh-pages for ktls-utils Chuck Lever
2025-09-26  1:21 ` [PATCH v1 01/16] tlshd: Add kernel's quic.h Chuck Lever
2025-09-26  1:21 ` [PATCH v1 02/16] tlshd: leave session_status as EIO on GnuTLS failure in QUIC session setup Chuck Lever
2025-09-26  1:21 ` [PATCH v1 03/16] tlshd: set conn errcode to EACCES on GnuTLS failure in QUIC handshake Chuck Lever
2025-09-26  1:21 ` [PATCH v1 04/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/client.c Chuck Lever
2025-09-26  1:21 ` Chuck Lever [this message]
2025-09-26  1:21 ` [PATCH v1 06/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/handshake.c Chuck Lever
2025-09-26  1:21 ` [PATCH v1 07/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/keyring.c Chuck Lever
2025-09-26  1:21 ` [PATCH v1 08/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/ktls.c Chuck Lever
2025-09-26  1:21 ` [PATCH v1 09/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/log.c Chuck Lever
2025-09-26  1:21 ` [PATCH v1 10/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/main.c Chuck Lever
2025-09-26  1:22 ` [PATCH v1 11/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/netlink.c Chuck Lever
2025-09-26  1:22 ` [PATCH v1 12/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/quic.c Chuck Lever
2025-09-26  1:22 ` [PATCH v1 13/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/server.c Chuck Lever
2025-09-26  1:22 ` [PATCH v1 14/16] tlshd: Translate kernel-style Doxygen comments in src/tlshd/tlshd.h Chuck Lever
2025-09-26  1:22 ` [PATCH v1 15/16] Build Doxygen web site Chuck Lever
2025-09-26  1:22 ` [PATCH v1 16/16] workflows: Generate gh-pages automatically Chuck Lever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250926012207.3642990-6-cel@kernel.org \
    --to=cel@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=kernel-tls-handshake@lists.linux.dev \
    --cc=lucien.xin@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.