NeoMutt  2019-12-07-168-gc45f47
Teaching an old dog new tricks
DOXYGEN
crypt_mod.h File Reference

Register crypto modules. More...

#include <stdbool.h>
#include <stdio.h>
#include "lib.h"
+ Include dependency graph for crypt_mod.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  CryptModuleSpecs
 Crypto API. More...
 

Functions

void crypto_module_register (struct CryptModuleSpecs *specs)
 Register a new crypto module. More...
 
struct CryptModuleSpecscrypto_module_lookup (int identifier)
 Lookup a crypto module by name. More...
 

Detailed Description

Register crypto modules.

Authors
  • Richard Russon
  • Pietro Cerutti

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file crypt_mod.h.

Function Documentation

◆ crypto_module_register()

void crypto_module_register ( struct CryptModuleSpecs specs)

Register a new crypto module.

Parameters
specsAPI functions

Definition at line 51 of file crypt_mod.c.

52 {
53  struct CryptModule *module = mutt_mem_calloc(1, sizeof(struct CryptModule));
54  module->specs = specs;
55  STAILQ_INSERT_HEAD(&CryptModules, module, entries);
56 }
void * mutt_mem_calloc(size_t nmemb, size_t size)
Allocate zeroed memory on the heap.
Definition: memory.c:50
A crypto plugin module.
Definition: crypt_mod.c:38
static struct CryptModuleList CryptModules
Definition: crypt_mod.c:45
#define STAILQ_INSERT_HEAD(head, elm, field)
Definition: queue.h:380
struct CryptModuleSpecs * specs
Crypto module definition.
Definition: crypt_mod.c:40
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ crypto_module_lookup()

struct CryptModuleSpecs* crypto_module_lookup ( int  identifier)

Lookup a crypto module by name.

Parameters
identifierName, e.g. APPLICATION_PGP
Return values
ptrCrypto module

This function is usually used via the CRYPT_MOD_CALL[_CHECK] macros.

Definition at line 65 of file crypt_mod.c.

66 {
67  struct CryptModule *module = NULL;
68  STAILQ_FOREACH(module, &CryptModules, entries)
69  {
70  if (module->specs->identifier == identifier)
71  {
72  return module->specs;
73  }
74  }
75  return NULL;
76 }
A crypto plugin module.
Definition: crypt_mod.c:38
static struct CryptModuleList CryptModules
Definition: crypt_mod.c:45
#define STAILQ_FOREACH(var, head, field)
Definition: queue.h:349
struct CryptModuleSpecs * specs
Crypto module definition.
Definition: crypt_mod.c:40
int identifier
Identifying bit.
Definition: crypt_mod.h:46
+ Here is the caller graph for this function: