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

Langage C++ Discussion :

Je recherche un algorithme de chiffrement AES 128 bits en c++.


Sujet :

Langage C++

  1. #21
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    honnêtement non

    Hormis le point virgule manquant à la fin de la déclaration de ma classe, je ne vois pas d'erreur de compilation :/.
    Ensuite si c'est d'un point de vue pratique, tu aimerais peut-etre que je rajoute un peu plus d'info comme récupéré le retour de send etc .....?
    Mais bon c'est pas forcément nécessaire pour l'explication que je voulais faire, mon code n'est pas à copier coller, mais plutôt une sorte de pense-bête sur ce qu'il devrait faire.

    J'ai pour habitude de rajouter des erreur de compilation genre ';' manquant ou nom de variable incorrect dans les codes que je poste sur dvp pour que la personne ne copie pas bêtement le code mais se l'approprie puis le refasse à sa manière ^^.

    Mais ensuite si j'ai fait de grosses erreurs, c'est impardonnable, et je veux bien que tu me corriges car là je ne vois rien ^^.
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  2. #22
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Tu envoies par le réseau un pointeur. Ainsi les size-sizeof(void*) octets qui suivent la structure.

    Tu dois soit passer par une une structure contenant un buffer de taille fixe, soit utiliser une "structure à taille variable", soit sérialiser ta structure dans un nouveau buffer avant de l'envoyer.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #23
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Oups autant pour moi, j'ai complètement oublié ça ^^.
    J'édite mon message .

    Edit:
    remplacement de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void envoi(Paquet* pqt)
    {
      send(pqt, pqt->size);
    }
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void envoi(Paquet* pqt)
    {
      send(pqt->size, sizeof(pqt->size));
      send(pqt->buffer, pqt->size);
    }
    J'ai tellement l'habitude d'utiliser ma lib d'échanges que j'en ais oublié comment je l'avais fait à la base ^^.
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  4. #24
    Membre éprouvé Avatar de maeiky
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 201
    Points : 976
    Points
    976
    Par défaut
    Citation Envoyé par Lolilolight Voir le message
    Par contre, je ne sais pas comment SFML fais pour transformer ses chaînes de caractères en octets. (Avec l'opérateur << de la classe sf:acket)

    Est ce que il les transformes en char ou en unsigned char ?

    Le principal soucis comme je l'ai déjà dis c'est que c_str() renvoie un tableau de char, mais que openssl attend un tableau d'unsigned char.

    Comment faire dans ce cas pour passer d'un tableau de char en un tableau d'octets ?
    char = unsigned char = octets, tout simplement.


    Citation Envoyé par skeud Voir le message
    Donc char* != signed char* != unsigned char*.

    Il ne faut pas les convertir ou les mélanger .
    Donc char* = signed char* = unsigned char*.

    On ne les convertie pas on change simplement leur représentation


    Citation Envoyé par Lolilolight Voir le message
    Je ne comprend pas, il ne devrait pas y avoir de valeurs négatives pour une table ASCII.

    Donc logiquement une std::string ça devrait être un tableaux d'unsigned char.

    Que dois je faire pour caster ça correctement, faire une opération genre + 128 ?

    Donc -128 = -128 + 128 = 0.
    0 = 0 + 128 = 128.
    127 = 127 + 128 = 255.
    Non, tu n'as vraiment pas compris le principe, la valeur en mémoire reste la même que ce soit unsigned ou pas, donc il n'y a aucune conversion, seulement une représentation différente, par contre un unsigned char et un signed char sont traité différemment lors d'opérations arithmétiques.

    Citation Envoyé par Lolilolight Voir le message
    A cause du cast certainement mais les méthodes onSend et onReceive de la SFML ne me renvoie qu'un bête pointeur sur void*, il n'y a donc aucun type précis de données renvoyé par SFML, à la version précédente le type de donnée renvoyé par SFML était le type était char, ensuite il a changé en void* pour je ne sais pas quelle raison mais comment éviter le cast si openSSL attend un unsigned char* mais que SFML me renvoie un void*, ou alors je dois modifier le code de la SFML pour qu'elle me renvoie un unsigned char.

    Je ne sais pas de trop ce que vous en pensez, dois je avertir le webmaster de la SFML pour lui dire qu'il vaut mieux, changer de type pour éviter la conversion ?
    Espérons pour toi que tu ne l’as pas contacté. Ce que j'en pense? ... Eh ben qu'il est correct, char est pour du 8bit, alors qu'on peut les traiter le tout en 16bit, 32 qui sait... Et puis "char", ce n’est pas vraiment explicite, un entier 8bit serait plus clair.
    Linx, un nouveau langage intuitif
    Simacode IDE, auto-complétion & compilation instantané
    GZE, moteur 2d/3d multi-langage/multi-plateforme

Discussions similaires

  1. Déchiffrement AES 128 bits
    Par Happpy dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 05/03/2014, 00h27
  2. Exemple de chiffrement-déchiffrement 128 bits
    Par n5Rzn1D9dC dans le forum Contribuez
    Réponses: 1
    Dernier message: 16/11/2013, 19h55
  3. Algorithme de chiffrement AES et DES (taille des messages)
    Par Mikediten dans le forum Mathématiques
    Réponses: 0
    Dernier message: 24/06/2009, 21h00
  4. AES 128 bits
    Par bibi-C-Moi dans le forum VHDL
    Réponses: 3
    Dernier message: 31/07/2007, 08h25
  5. AES 128 bits
    Par bibi-C-Moi dans le forum Composants
    Réponses: 3
    Dernier message: 31/07/2007, 08h25

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