DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(gcrypt.info.gz) Cipher modules

Info Catalog (gcrypt.info.gz) Available ciphers (gcrypt.info.gz) Symmetric cryptography (gcrypt.info.gz) Available cipher modes
 
 5.2 Cipher modules
 ==================
 
 Libgcrypt makes it possible to load additional `cipher modules'; these
 cipher can be used just like the cipher algorithms that are built into
 the library directly.  For an introduction into extension modules, see
  Modules.
 
  -- Data type: gcry_cipher_spec_t
      This is the `module specification structure' needed for registering
      cipher modules, which has to be filled in by the user before it
      can be used to register a module.  It contains the following
      members:
 
     `const char *name'
           The primary name of the algorithm.
 
     `const char **aliases'
           A list of strings that are `aliases' for the algorithm.  The
           list must be terminated with a NULL element.
 
     `gcry_cipher_oid_spec_t *oids'
           A list of OIDs that are to be associated with the algorithm.
           The list's last element must have it's `oid' member set to
           NULL.  See below for an explanation of this type.
 
     `size_t blocksize'
           The block size of the algorithm, in bytes.
 
     `size_t keylen'
           The length of the key, in bits.
 
     `size_t contextsize'
           The size of the algorithm-specific `context', that should be
           allocated for each handle.
 
     `gcry_cipher_setkey_t setkey'
           The function responsible for initializing a handle with a
           provided key.  See below for a description of this type.
 
     `gcry_cipher_encrypt_t encrypt'
           The function responsible for encrypting a single block.  See
           below for a description of this type.
 
     `gcry_cipher_decrypt_t decrypt'
           The function responsible for decrypting a single block.  See
           below for a description of this type.
 
     `gcry_cipher_stencrypt_t stencrypt'
           Like `encrypt', for stream ciphers.  See below for a
           description of this type.
 
     `gcry_cipher_stdecrypt_t stdecrypt'
           Like `decrypt', for stream ciphers.  See below for a
           description of this type.
 
  -- Data type: gcry_cipher_oid_spec_t
      This type is used for associating a user-provided algorithm
      implementation with certain OIDs.  It contains the following
      members:
     `const char *oid'
           Textual representation of the OID.
 
     `int mode'
           Cipher mode for which this OID is valid.
 
  -- Data type: gcry_cipher_setkey_t
      Type for the `setkey' function, defined as: gcry_err_code_t
      (*gcry_cipher_setkey_t) (void *c, const unsigned char *key,
      unsigned keylen)
 
  -- Data type: gcry_cipher_encrypt_t
      Type for the `encrypt' function, defined as: gcry_err_code_t
      (*gcry_cipher_encrypt_t) (void *c, const unsigned char *outbuf,
      const unsigned char *inbuf)
 
  -- Data type: gcry_cipher_decrypt_t
      Type for the `decrypt' function, defined as: gcry_err_code_t
      (*gcry_cipher_decrypt_t) (void *c, const unsigned char *outbuf,
      const unsigned char *inbuf)
 
  -- Data type: gcry_cipher_stencrypt_t
      Type for the `stencrypt' function, defined as: gcry_err_code_t
      (*gcry_cipher_stencrypt_t) (void *c, const unsigned char *outbuf,
      const unsigned char *, unsigned int n)
 
  -- Data type: gcry_cipher_stdecrypt_t
      Type for the `stdecrypt' function, defined as: gcry_err_code_t
      (*gcry_cipher_stdecrypt_t) (void *c, const unsigned char *outbuf,
      const unsigned char *, unsigned int n)
 
  -- Function: gcry_error_t gcry_cipher_register (gcry_cipher_spec_t
           *CIPHER, unsigned int *algorithm_id, gcry_module_t *MODULE)
      Register a new cipher module whose specification can be found in
      CIPHER.  On success, a new algorithm ID is stored in ALGORITHM_ID
      and a pointer representing this module is stored in MODULE.
 
  -- Function: void gcry_cipher_unregister (gcry_module_t MODULE)
      Unregister the cipher identified by MODULE, which must have been
      registered with gcry_cipher_register.
 
  -- Function: gcry_error_t gcry_cipher_list (int *LIST, int
           *LIST_LENGTH)
      Get a list consisting of the IDs of the loaded cipher modules.  If
      LIST is zero, write the number of loaded cipher modules to
      LIST_LENGTH and return.  If LIST is non-zero, the first
      *LIST_LENGTH algorithm IDs are stored in LIST, which must be of
      according size.  In case there are less cipher modules than
      *LIST_LENGTH, *LIST_LENGTH is updated to the correct number.
 
Info Catalog (gcrypt.info.gz) Available ciphers (gcrypt.info.gz) Symmetric cryptography (gcrypt.info.gz) Available cipher modes
automatically generated byinfo2html