IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

comment charger des objets de sécu : certif, clefs, type de chiffrement ..)


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Par défaut comment charger des objets de sécu : certif, clefs, type de chiffrement ..)
    Bonjour,
    Dans mon programme, je dois charger des certificats ( clients, serveurs, CA) et les clefs correspondants, le type de chiffrement, etc. J'aimerais savoir quel est la meilleure façon d'indiquer à mon programme l'endroit où se trouvent ces objets ?
    Pour l'instant je fais quelque chose de pas propre. Dans mon programme je fais des defines .. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #define SERV_CERT_DIR "/home/moi/work/certificats/serveur/"
    #define SERV_CERT_FILE  SERV_CERT_DIR "certs/c1.pem"
    #define SERV_KEY_FILE SERV_CERT_DIR "keys/k1.pem"
    j'ai pensé à MINIINI que je connais pas trop.
    http://miniini.tuxfamily.org/doc/html/classINIFile.html

    1) quel est l'avantage et l'inconvénient de miniini ?
    2) auriez vous d'autre propositions ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut
    Citation Envoyé par ikuzar Voir le message
    1) quel est l'avantage et l'inconvénient de miniini ?
    2) auriez vous d'autre propositions ?
    1) Connais pas
    2) Boost.Program Option

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut
    hello
    les #define son a éviter a cause des effets de bors...
    a la limite utilise plutôt des constantes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const std::string "valeur"
    vu que tu as 2 valeur de type string (char?) tu peux utiliser un tableau peux être
    vu que je débute les alternative ne son pas forcement adéquate , par contre pour le #define sa c'est sure

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Un truc que j'aime bien faire, même si je sais que c'est pas top, c'est faire une classe singleton que j'appelle Registry, et qui est une map de string encapsulée. Ça me sert de pool de variables globales. Je te copie l'interface de mon Registry pour montrer à quoi cela ressemble:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    /*! \class              Registry
    *  \brief               template variable store
    *  \author              RP
    *  \version     1.0
    *  \date                07/07/2008
    */
     
    #ifndef __H_REGISTRY_H__
    #define __H_REGISTRY_H__
     
    #include <string>
    #include <sstream>
    #include <map>
    #include <iostream>
    #include <vector>
     
    #include "Tools.h"
     
    namespace RLib
    {
     
    /*!
    This is a tool wich permit us to store values. 
    \stereoype: singleton
    */
    class Registry
    {
    private:
    	//! the map that store registries
    	std::map< std::string, std::string > m_regs;
     
    	//! unique instance
    	static Registry* m_instance;
     
    public:
    	//! dctor
    	virtual ~Registry();
     
    	//! get unique instance
    	static Registry& Instance();
     
    	/**
            *       add a new element
            *       @param   key            the key of the wanted element (its name)
            *       @param   element        the value
            */
    	void AddElement( const std::string & key, const std::string & element );
     
    	/**
            *       get an element from its key
            *       @param   key            the key of the wanted element (its name)
            *       @return  the element wanted
            */
    	template <typename T>
    	T GetElement( const std::string & key )
    	{
    		return Tools::FromString<T>( m_regs[key] );
    	}
     
    	/**
            *       specialisation of the GetElement template function
            *       @param   key            the key of the wanted element (its name)
            *       @return  the element wanted, returned as a string
            */
    	std::string GetElement( const std::string & key )
    	{
    		return m_regs[key];
    	}
     
    	/**
            *       push a registry into a stream
            *       @param   key    the key of the wanted element (its name)
            *       @param   ost    output stream
            */
    	template <typename T>
    	void DumpElement( const std::string & key, std::ostream& ost = std::cout ) const
    	{
    		ost << key << ": " << GetElement<T>(key) << std::endl;
    	}
     
    private:
    	//! private ctor
    	Registry(){}
    };
     
    } // end namespace RLib
     
    #endif //__H_REGISTRY_H__

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par r0d Voir le message
    c'est faire une classe singleton que j'appelle Registry
    Manque un politique de (non) copie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RLib::Registry une_copie = RLib::Registry::Instance(); // compile OK
    Et pour ceux qui passeraient par là (car R0d le connait déjà) : Etes-vous atteint de Singletonite ?

Discussions similaires

  1. Comment charger des objets dans un accde
    Par alain91210 dans le forum Modélisation
    Réponses: 1
    Dernier message: 19/12/2007, 21h50
  2. Comment Manipuler des objets dans une liste de type TList ?
    Par PadawanDuDelphi dans le forum Delphi
    Réponses: 1
    Dernier message: 02/11/2006, 15h40
  3. Comment supprimer des objets
    Par akrobat dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 17/06/2006, 11h48
  4. Réponses: 13
    Dernier message: 09/05/2006, 16h30
  5. [Dexplore] Comment charger des fichiers d'aide ?
    Par Laurent Dardenne dans le forum Windows
    Réponses: 5
    Dernier message: 04/01/2005, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo