utiliser une bibliothèques, c++

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je viens d’installer OpenSSL mais je ne sais pas comment l’utiliser dans mon code pour chiffrer des données, Alors ma question est : Comment coder en utilisant la bibliothèques, les fonctionnalités de celles-ci ? Comment utiliser une bibliothèque ?

Par exemple moi je veux utiliser l’algorithme de la courbe elliptiques comment faire ?

+0 -0

Comment coder en utilisant la bibliothèques, les fonctionnalités de celles-ci ? Comment utiliser une bibliothèque ?

Ton problème est-il relatif à la bibliothèque OpenSSL, ou bien s’agit-il d’un problème plus général de compréhension du fonctionnement des bibliothèques en C++ ?

Des bibliothèques en général car je pense avoir bien configurer openssl dans mon projet code::blocks, je voudrais donc tester pour savoir si c’est bien le cas. Un genre de code test comme quand en créer un nouveau projet sur code::blocks il y’a un petit code a compiler.

+0 -0

Salut,

J’avais succinctement utilisé cette bibliothèque pour un programme d’exemple de mon article sur les buffer overflows :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/crypto.h>
#include <openssl/md5.h>
#define BUFSIZE 40 /* Should be enough */

void main(void) {
    int access_granted = 0;
    char password[BUFSIZE] = {'\0'};

    char hash[16] = {'\0'};
    printf("Enter the password to get the access granted! ");
    scanf("%s", password);

    MD5_CTX c;
    
    MD5_Init(&c);

    MD5_Update(&c, password, strlen(password));

    MD5_Final(hash, &c);

    if(memcmp("\x90\x6d\x6f\x6a\x61\x58\xd6\x9d\x18\x59\x85\x26\x70\xbe\xfb\x08", hash, 16) == 0) {
        access_granted = 1;
    }

    if(access_granted) {
        printf("Access granted!\n");
        execve("/bin/sh", NULL, NULL);
    } else {
        printf("!!! ACCESS DENIED !!!\n");
    }

    exit(EXIT_SUCCESS);
}

N’oublie pas d’utiliser la directive -lcrypto lors de l’édition de liens.

Ce programme met en évidence l’exploitation d’une vulnérabilité, n’hésite pas à lire l’article pour la comprendre, c’est assez formateur ! Sans prétention aucune bien sûr…

À+.

+1 -0

Ton article est très intéressant surtout que je cherche a comprendre la sécurité informatique,
ton article parle du langage C , il y’a eu le même problème avec C++ ou pas ?

Pertinent mais Cela ne répond pas à ma question :

Comment utilise t-on une bibliothèque comme OpenSSL ? Exemple toi comment tu sais qu’il faut utiliser se code ? N’y a t-il pas une documentation OpenSSL ?

Car je cherche a générer une paire de clé public et privée à partir de l’algorithme EC(courbe elliptique), mais je ne sais pas comment utiliser l’algorithme.

+0 -0

Si tu es sous un Unix, la doc est accessible dans les pages man.

Par exemple, man crypto donne :

CRYPTO(7SSL)                                                        OpenSSL                                                       CRYPTO(7SSL)

NAME
       crypto - OpenSSL cryptographic library

SYNOPSIS
       See the individual manual pages for details.

DESCRIPTION
       The OpenSSL crypto library implements a wide range of cryptographic algorithms used in various Internet standards. The services
       provided by this library are used by the OpenSSL implementations of SSL, TLS and S/MIME, and they have also been used to implement SSH,
       OpenPGP, and other cryptographic standards.

En principe tu as la même chose en version Web ici : https://www.openssl.org/docs/man1.0.2/man3/ (mais c’est assez indigeste, j’en conviens :( Le mieux serait de trouver un bon livre ou un bon tutoriel qui expose OpenSSL je pense)

Merci de t’a réponse @sgble, je shouterais générer des paires de clé public et privée et je pense que la fonctions adapter est int EC_KEY_generate_key(EC_KEY *key); mais je ne sais pas comment l’utliser et j’ai du mal a comprendre la doc openssl, voici ce qui est dit dans la doc :

EC_KEY_generate_key génère une nouvelle clé publique et privée pour l' objet eckey fourni . eckey doit avoir un objet EC_GROUP associé avant d’appeler cette fonction. La clé privée est un entier aléatoire (0 <clé_privée <ordre, où ordre est l’ordre de l’objet EC_GROUP). La clé publique est un EC_POINT sur la courbe calculé en multipliant le générateur de la courbe par la clé privée.

Pouvez vous m’aidez svp ? Il n’ya aucun tuto sur l’utlisation d’openssl :'(

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte