Partage
  • Partager sur Facebook
  • Partager sur Twitter

création de clé openssl (cryptographie)

    19 janvier 2020 à 2:20:33

    Bonjour je souhaite créer une paire de clé privée et public pour le fun,

    mais je ne sais pas pourquoi sa ne marche pas , voici mon code :

     EC_KEY* key;
    
        if(NULL == ( key = EC_KEY_new_by_curve_name(NID_secp256k1)))
        {
                ERR_get_error();
        }
        else
        {
    
             if(1 != EC_KEY_generate_key(key))
             {
                ERR_get_error();
             }
             else
             {
                BIGNUM* prv = NULL;
                EC_POINT* pub = NULL;
    
               if(1 != EC_KEY_set_private_key(key, prv))
               {
                     ERR_get_error();
                     std::cout << "erreur a" << std::endl;
               }
               else
               {
                   std::cout <<"  test 1 reussi " << key << std::endl;
               }
    
               if(1 != EC_KEY_set_public_key(key, pub))
               {
                     ERR_get_error();
                     std::cout << "erreur b" << std::endl;
               }
               else
               {
                 std::cout << pub << " test 2 reussi" << std::endl;
               }
             }
    
    
        }

    j’accède à l'adresse pointer de "key" alors que moi je souhaite afficher son contenue , alors...

    Comment faire pour accéder au contenue d'un objet dynamique ?

    je ne peux pas faire objet.pointeur = valeur car je ne connait pas les valeurs de "EC_KEY".

    Aidez-moi svp je suis complètement perdu :euh:

    • Partager sur Facebook
    • Partager sur Twitter
      19 janvier 2020 à 9:00:44

      Pour accéder à la resource d'un pointeur, il faut utiliser l'operateur unaire * (deréférencement). Ca fait partie des basiques du C et C++.

      Tu devrais suivre un cours.

      • Partager sur Facebook
      • Partager sur Twitter
        19 janvier 2020 à 16:04:19

        Je l'ai déja fait ça mais ça m'affiche une erreur que voici :

        C:\Users\mareg\Documents\programation\crypto\main.cpp|38|error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'EC_KEY' {aka 'ec_key_st'})|



        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2020 à 5:07:02

          Bonjour,

          Tu affiche une clé sans faire la redefinition de l'opérateur << pour ce type résultats il sait pas quoi faire le compilateur.

          Une définition d'opérateur ou une transformation (genre fonction toString ) devrais suffire

          • Partager sur Facebook
          • Partager sur Twitter

          Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il y a que la troisième qui marche

            22 janvier 2020 à 2:06:17

            Bonsoir, 

            j'ai téster le code en utlisant la fonction to_string mais une autre erreur apparaît, le voici :

            error: no matching function for call to 'to_string(EVP_PKEY&)

            comment éviter ce genre d'erreur avec cette fonction ?

            Certains disent qu'il faut fournir un modèle par défault comme par exemple :

            struct Type {
              explicit operator std::string() const{
                return std::string("I am type");
              }
            };
            
            namespace std {
            template <typename T>
              string to_string(const T& value) {
                return string(value);
              }
            }

            ou d’utiliser la fonction :

            boost::lexical_cast<std::string>(value);

            Y'aurais t-il d'autres moyen plus efficace car je n'ai pas encore tester ces méthode ?

            • Partager sur Facebook
            • Partager sur Twitter

            création de clé openssl (cryptographie)

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown