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

Biblioth�ques, syst�mes et outils C Discussion :

decrypter message avec aes


Sujet :

Biblioth�ques, syst�mes et outils C

  1. #1
    Membre averti
    Femme Profil pro
    �tudiant
    Inscrit en
    Mai 2015
    Messages
    51
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 51
    Par d�faut decrypter message avec aes
    Bonjour,
    je dois �crire un programme qui permet � deux processus de communiquer en utilisant les tubes nomm�s.Le message envoy� par le premier processus doit etre chiffr� en utilisant aes et doit etre d�crypt� par le second processsus.
    Le cryptage marche, mais le d�cryptage ne marche pas.
    Voici mon code:
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <string.h>
    #include <openssl/aes.h>
    #include <openssl/rand.h>
    #include <fcntl.h>
     
     
     
     
     
    void fils(int fd, unsigned char aes_key[],  int keylength,AES_KEY key,const size_t encslength,unsigned char iv_dec[]){
      unsigned char chaineAlire[8];
      read(fd,&chaineAlire, 8);
      unsigned char dec_out[8];
      memset(dec_out, 0, sizeof(dec_out));
     
      AES_set_decrypt_key(aes_key, keylength, &key);
      AES_DECRYPT);
      AES_cbc_encrypt(chaineAlire, dec_out, 8, &key, iv_dec, AES_DECRYPT);
      printf("message lu\t");
      printf("%s\n", dec_out);
      exit(EXIT_SUCCESS);
     
    }
     
    int main(int argc,char* argv[])
    {
      int fd,f;
     
      int keylength=128;
      unsigned char aes_key[keylength/8];
      memset(aes_key, 0, keylength/8);
      if (!RAND_bytes(aes_key, keylength/8))
          exit(-1);
     
      size_t inputslength = 8;
      unsigned char aes_input[8]="bonjour";
      unsigned char iv_enc[AES_BLOCK_SIZE], iv_dec[AES_BLOCK_SIZE];
      RAND_bytes(iv_enc, AES_BLOCK_SIZE);
      memcpy(iv_dec, iv_enc, AES_BLOCK_SIZE);
      const size_t encslength = ((inputslength + AES_BLOCK_SIZE) / AES_BLOCK_SIZE) * AES_BLOCK_SIZE;
      unsigned char enc_out[encslength];
      unsigned char dec_out[inputslength];
      memset(enc_out, 0, sizeof(enc_out));
      memset(dec_out, 0, sizeof(dec_out));
      AES_KEY key;
      AES_set_encrypt_key(aes_key, keylength, &key);
      AES_cbc_encrypt(aes_input, enc_out, inputslength, &key, iv_enc, AES_ENCRYPT);
     
     
      if(mkfifo("essai", S_IRUSR|S_IWUSR) != 0)
        {
            perror( "Impossible de créer le tube nomme.\n");
     
            exit(EXIT_FAILURE);
        }
     
        if((fd= open("essai", O_RDWR)) == -1)
        {
            printf("Impossible d'ouvrir l'entrée du tube nomme.\n");
            exit(EXIT_FAILURE);
        }
     f=fork();
      if(f!=0){
        write(fd, &enc_out, 8);
            printf("message envoye:\t");
            printf("%s\n",aes_input );
            printf("message crypte:\t");
              hex_print(enc_out, sizeof(enc_out));
     
      }
    if(f==0){
        fils(fd,aes_key,keylength,key,encslength,iv_dec);
     
    }
    close(fd);
     
    return EXIT_SUCCESS;
    }

  2. #2
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par d�faut
    Il me semble qu'il y a du padding � prendre en compte en AES pour correspondre � la taille de bloc. Essaie avec un buffer de 16 octets.


    Citation Envoy� par magyy Voir le message
    mais le d�cryptage ne marche pas.
    Cela ne marche pas � n'a aucun sens pour tes interlocuteurs. Fais un effort de pr�sentation.

Discussions similaires

  1. Crypter et decrypter un fichier avec AES
    Par MarsOran dans le forum S�curit�
    R�ponses: 9
    Dernier message: 24/01/2013, 15h20
  2. PB multi envoie message avec indy 10 sous D9
    Par korntex5 dans le forum Web & r�seau
    R�ponses: 1
    Dernier message: 13/07/2005, 14h27
  3. Poster un message avec un CString en parametre
    Par loupdeau dans le forum MFC
    R�ponses: 2
    Dernier message: 19/05/2005, 15h02
  4. Message avec un bouton "oui" et "non"
    Par PrinceMaster77 dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 26/11/2004, 15h50

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