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 :

Openssl and C


Sujet :

C

  1. #1
    Membre éclairé Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut Openssl and C
    Voilà j'ai cette commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "password" | openssl aes-256-cbc -salt -a -e -pass:pass passphrase
    Je voudrais implémenter cette commande en C. Je viens de trouver les livrairies openssl mais pas d'explication sur comment implémenter openssl en C. Est-ce que quelqu'un saurrait me dire comment qu'on fait?

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    #include <openssl.h>
    ?


    et pis
    gcc -o mon_executable source1.o ... sourcen.o -llib1 -llib2 -lssl

  3. #3
    Membre éclairé Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut
    Citation Envoyé par Gruik
    #include <openssl.h>
    ?


    et pis
    gcc -o mon_executable source1.o ... sourcen.o -llib1 -llib2 -lssl
    euh là j'aurias besoin d'un petit plus d'aide ai-je dit que je n'ai jamais utilisé de librarie openssl avant??

  4. #4
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Moi non plus en fait (enfin si, juste un petit essai)

    Je pense que si tu as OpenSSL d'installé sur ton systeme, tu dois avoir la librairie et les headers disponibles

    En faisant man 3 sha par exemple j'ai tout ce qu'il me fait pour utiliser OpenSSL

    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
    SYNOPSIS
            #include <openssl/sha.h>
     
            unsigned char *SHA1(const unsigned char *d, unsigned long n,
                             unsigned char *md);
     
            void SHA1_Init(SHA_CTX *c);
            void SHA1_Update(SHA_CTX *c, const void *data,
                             unsigned long len);
            void SHA1_Final(unsigned char *md, SHA_CTX *c);
     
    DESCRIPTION
           SHA-1 (Secure Hash Algorithm) is a cryptographic hash function with a
           160 bit output.
     
           SHA1() computes the SHA-1 message digest of the n bytes at d and places
           it in md (which must have space for SHA_DIGEST_LENGTH == 20 bytes of
           output). If md is NULL, the digest is placed in a static array.
     
           The following functions may be used if the message is not completely
           stored in memory:
     
           SHA1_Init() initializes a SHA_CTX structure.
     
           SHA1_Update() can be called repeatedly with chunks of the message to be
           hashed (len bytes at data).
     
           SHA1_Final() places the message digest in md, which must have space for
           SHA_DIGEST_LENGTH == 20 bytes of output, and erases the SHA_CTX.
     
           Applications should use the higher level functions EVP_DigestInit(3)
           etc. instead of calling the hash functions directly.
     
           The predecessor of SHA-1, SHA, is also implemented, but it should be
           used only when backward compatibility is required.
     
    RETURN VALUES
           SHA1() returns a pointer to the hash value.
     
           SHA1_Init(), SHA1_Update() and SHA1_Final() do not return values.
    Apres, quand tu produis l'executable, il faut linquer la librairie OpenSSL avec "-lssl"

  5. #5
    Membre éclairé Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut
    euh openssl est installé mais le man page ne donne rien

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Je suis pas sur, mais souvent les distrib proposent des packages "juste la librairie binaire" et dans d'autres il y a "l'environnement de developpement de la librairie"
    C'est le cas par exemple de mysql, je me souviens sous Debian qu'il y avait un package mysql et en plus il y avait un package dev-mysql qui comprenait les headers et les man pages de la librairie C
    Peut être il y a un package dev-openssl

  7. #7
    Membre éclairé Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut
    Je me suis finalement simplifier la tâche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    char *command = (char *)malloc(512*sizeof(char));
    sprintf(command,"echo %s | openssl aes-256-cbc -salt -a -e -pass pass:%s",argv[1],passphrase);
     
    int status;
    status = system(command);
    if ( status == 0 ) {
       printf("System command correctly executed\n");
    } else {
       printf("System command did not terminated successfully: %s\n", strerror(errno));
    }
    et en plus ça marche ...

  8. #8
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Bein oui ça marche mais bon, c'est pas super efficace
    Pour recuperer le resultat affiché, tu devrais utiliser popen()

  9. #9
    Membre éclairé Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Par défaut
    yep je sais que c'est pas top efficace mais pour ce que j'ai à faire c'est suffisant
    Pour la sortie de la commande je vais ajouter -out à openssl ce qui rediriger l'output dans un fichier tout comme je veux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 11h49
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. SQL :select et AND
    Par Shabata dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/05/2003, 13h39
  5. Fip, modbus and co...
    Par xave dans le forum Développement
    Réponses: 2
    Dernier message: 24/05/2002, 13h25

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