fr::crypto::CONF_modules_load_file(3SSL)

NOM
 CONF_modules_load_file, CONF_modules_load - Fonctions de configuration d'OpenSSL

SYNOPSIS
 #include <openssl/conf.h>

 int CONF_modules_load_file(const char *filename, const char *appname,
                                        unsigned long flags);
 int CONF_modules_load(const CONF *cnf, const char *appname,
                                unsigned long flags);

DESCRIPTION
La fonction CONF_modules_load_file() configure OpenSSL en utilisant le fichier filename et l'application appname. Si filename vaut NULL, le fichier standard de configuration d'OpenSSL est utilisé. Si appname vaut NULL, le nom d'application standard d’OpenSSL, openssl_conf, est utilisé. Le comportement peut être personnalisé en utilisant flags.

CONF_modules_load() est identique à CONF_modules_load_file() sauf qu'il lit l'information de configuration depuis cnf.

NOTES
Les flags suivants sont reconnus :

Si CONF_MFLAGS_IGNORE_ERRORS est activé, les erreurs renvoyées individuellement par les modules de configuration sont ignorées. Sinon la première erreur provenant d’un module sera considérée comme fatale et aucun autre module ne sera chargé.

Normalement, toutes les erreurs provenant des modules ajouteront des informations à la file d’erreur. Si CONF_MFLAGS_SILENT est activé, il n'y aura pas d'information d'erreur ajoutée.

Si CONF_MFLAGS_NO_DSO est activé, le module de configuration chargeant à partir des DSO est désactivé.

Si CONF_MFLAGS_IGNORE_MISSING_FILE est activé, CONF_load_modules_file() ignorera l'absence de fichiers de configuration. Normalement l'absence d'un fichier de configuration renvoie une erreur.

Si CONF_MFLAGS_DEFAULT_SECTION est activé, et appname n'est pas NULL, il utilisera la section par défaut pointée par openssl_conf si appname n'existe pas.

Les applications devraient appeler ces fonctions après le chargement des modules intégrés en utilisant OPENSSL_load_builtin_modules(), par exemple, tous les ENGINES en utilisant ENGINE_load_builtin_engines(), tous les algorithmes en utilisant OPENSSL_add_all_algorithms() et (si l'application utilise libssl) SSL_library_init().

En utilisant CONF_modules_load_file() avec les réglages appropriés, une application peut personnaliser sa configuration pour mieux répondre à ses besoins. Dans certains cas, l'utilisation d'un fichier de configuration est facultatif et son absence n'est pas une erreur : dans ce cas CONF_MFLAGS_IGNORE_MISSING_FILE devrait être activé.

Les erreurs lors de la configuration peuvent aussi être traitées autrement par différentes applications. Par exemple, dans certains cas, une erreur peut seulement afficher un message d'avertissement et l'application continue. Dans d'autres cas, l'application peut considérer comme fatale une erreur de ficher de configuration et se terminer immédiatement.

Des applications peuvent utiliser la fonction CONF_modules_load() si elles souhaitent charger elles-mêmes un fichier de configuration et avoir un contrôle plus fin sur la manière dont les erreurs sont traitées.

EXEMPLES
Charger un fichier de configuration, afficher toutes les erreurs et terminer l'application (absence de fichier considérée comme fatale) :

 if (CONF_modules_load_file(NULL, NULL, 0) <= 0) {
    fprintf(stderr, "FATAL: error loading configuration file\n");
    ERR_print_errors_fp(stderr);
    exit(1);
 }

Charger le ficher de configuration par défaut en utilisant la section indiquée par « myapp », tolérer les fichiers manquants, mais terminer l'application si d'autres erreurs surviennent :

 if (CONF_modules_load_file(NULL, "myapp",
                            CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) {
    fprintf(stderr, "FATAL: error loading configuration file\n");
    ERR_print_errors_fp(stderr);
    exit(1);
 }

Charger la section et le fichier de configuration personnalisés, afficher seulement des avertissements en cas d'erreur, l'absence de fichier de configuration est ignorée :

 if (CONF_modules_load_file("/something/app.cnf", "myapp",
                            CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) {
    fprintf(stderr, "WARNING: error loading configuration file\n");
    ERR_print_errors_fp(stderr);
 }

Charger et analyser soi-même le fichier de configuration, traitement d'erreur personnalisé :

 FILE *fp;
 CONF *cnf = NULL;
 long eline;
 fp = fopen("/somepath/app.cnf", "r");
 if (fp == NULL) {
    fprintf(stderr, "Error opening configuration file\n");
    /* Other missing configuration file behaviour */
 } else {
    cnf = NCONF_new(NULL);
    if (NCONF_load_fp(cnf, fp, &eline) == 0) {
        fprintf(stderr, "Error on line %ld of configuration file\n", eline);
        ERR_print_errors_fp(stderr);
        /* Other malformed configuration file behaviour */
    } else if (CONF_modules_load(cnf, "appname", 0) <= 0) {
      fprintf(stderr, "Error configuring application\n");
      ERR_print_errors_fp(stderr);
      /* Other configuration error behaviour */
    }
    fclose(fp);
    NCONF_free(cnf);
  }

VALEURS DE RETOUR
Ces fonctions renvoient 1 pour un succès et 0 ou une valeur négative pour un échec. Si les erreurs des modules ne sont pas ignorées, le code de retour représentera la valeur de retour du module défaillant (cette valeur sera toujours inférieure ou égale à 0).

VOIR AUSSI
err(3),err(3), OPENSSL_config(3), CONF_free(3), conf(5)

HISTORIQUE
CONF_modules_load_file et CONF_modules_load sont apparues dans la version 0.9.7 d'OpenSSL.

TRADUCTION
La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.