Programmation.c : Manipulation de clé
Posté par Julien Vehent (Jabber id, page perso, ) le 09 avril 2008
Bonjour à tous,
Durant mon temps libre, je bidouille en C et en crypto et je me demandais comment gérer directement (sans passer par des librairies telles GMP) des clés de 256 bits. J'entend par la générer ces clés, les stocker et les manipuler (faire des XOR avec un bloc de texte par exemple).
J'imagine que cela doit passer par des tableaux, mais n'étant pas expert dans le domaine, j'aurais voulu avoir un peu de doc sur le sujet.
Note : inutile de me renvoyer vers les codes sources d'openssl (...)
Durant mon temps libre, je bidouille en C et en crypto et je me demandais comment gérer directement (sans passer par des librairies telles GMP) des clés de 256 bits. J'entend par la générer ces clés, les stocker et les manipuler (faire des XOR avec un bloc de texte par exemple).
J'imagine que cela doit passer par des tableaux, mais n'étant pas expert dans le domaine, j'aurais voulu avoir un peu de doc sur le sujet.
Note : inutile de me renvoyer vers les codes sources d'openssl (...)
> Lire le message (5 commentaires, moyenne: 1,8).
Programmation.c : Probleme de calcul du Checksum TCP
Posté par Julien Vehent (Jabber id, page perso, ) le 24 juillet 2007
Bonjour a tous,
je fabrique mes propres paquets TCP et j'ai du mal a calculer le checksum
je cree le pseudo header comme ca :
ma fonction checksum est la suivante
je fabrique mes propres paquets TCP et j'ai du mal a calculer le checksum
je cree le pseudo header comme ca :
struct pseudo_header
{
unsigned long saddr, daddr; /*! src/dst IP addresses */
char mbz;
unsigned char ptcl; /*! protocol (tcp = 6, udp = 17) */
unsigned short tcpl; /*! length (tcp header + payload)*/
};
ma fonction checksum est la suivante
int checksum (unsigned short *buf, int nwords)
{
unsigned long sum;
for (sum = 0; nwords > 0; nwords--)
sum += *buf++ (...) > Lire le message (3 commentaires, moyenne: 1).
Programmation.c : Galère de pointeurs avec les GArrays
Posté par Julien Vehent (Jabber id, page perso, ) le 10 juillet 2007
Bonjour à tous,
J'ai besoin de stocker les paquets que composent une communications dans un programme C.
Comme j'ai beaucoup de communications, j'ai commencé par faire un B-Tree dans lequel chaque valeur (associée à une clé) est un GArray qui contient les paquets de la communication.
Le soucis, c'est que ça bug... les 2 premiers paquets de chaque com. sont bien enregistrés et repris, mais pour les suivants j'ai des résultats bizarres...
voilà mon code :
J'ai besoin de stocker les paquets que composent une communications dans un programme C.
Comme j'ai beaucoup de communications, j'ai commencé par faire un B-Tree dans lequel chaque valeur (associée à une clé) est un GArray qui contient les paquets de la communication.
Le soucis, c'est que ça bug... les 2 premiers paquets de chaque com. sont bien enregistrés et repris, mais pour les suivants j'ai des résultats bizarres...
voilà mon code :
/*!******************************
(...) > Lire le message (17 commentaires, moyenne: 1,6).
Programmation.c : Glib et les Binary Trees
Posté par Julien Vehent (Jabber id, page perso, ) le 28 juin 2007
Bonjour à tous,
j'essaie d'utiliser les fonctions B-Tree qu'offre Glib mais je rencontre quelques petits soucis.
En fait, j'ajoute des valeurs à la chaine dans un B-Tree et quand je lookup ces valeurs, elles ont disparues... seule reste la dernière ajoutée...
voilà mon code :
j'essaie d'utiliser les fonctions B-Tree qu'offre Glib mais je rencontre quelques petits soucis.
En fait, j'ajoute des valeurs à la chaine dans un B-Tree et quand je lookup ces valeurs, elles ont disparues... seule reste la dernière ajoutée...
voilà mon code :
#include <glib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
GTree * redirected_connections;
int main(int argc, char **argv)
{
redirected_connections = g_tree_new((GCompareDataFunc)strcmp);
int i (...) > Lire le message (13 commentaires, moyenne: 1,9).
Programmation.c : Makefile et petit soucis de liens
Posté par Julien Vehent (Jabber id, page perso, ) le 12 juin 2007
Bonjour à tous
n'étant pas dev de nature, je suis un peu pommé quand à la compilation de mon code.
Ce dernier se découpe en plusieurs fichiers que je compile dans un makefile.
Le code utilise glib et lipq, et le problème se situe au niveau de ces librairies.
Quand arrive la dernière étape de compilation
je me prend cette liste d'erreurs dans la figure :
n'étant pas dev de nature, je suis un peu pommé quand à la compilation de mon code.
Ce dernier se découpe en plusieurs fichiers que je compile dans un makefile.
Le code utilise glib et lipq, et le problème se situe au niveau de ces librairies.
Quand arrive la dernière étape de compilation
gcc -Wall -pthread -static -lipq `pkg-config --cflags --libs glib-2.0` -o argusproxy-redirector main.o netcode.o intercom.o tables.o
je me prend cette liste d'erreurs dans la figure :
main (...) > Lire le message (2 commentaires, moyenne: 2,5).
Programmation.perl : 2 actions dans un "die"
Posté par Julien Vehent (Jabber id, page perso, ) le 19 juillet 2006
Hello,
j'ai un petit soucis avec die : je voudrais que lorsqu'un "open" ne fonctionne pas, die m'écrire et log et sorte avec "-1"
donc j'ai une ligne comme ca :
mais il n'en veux pas.... si je ne met que l'appel vers "meurt" ou le "return -1", ca fonctionne mais pour les deux en meme temps ya pas moyen...
ya t'il une syntaxe particulière que j'ai raté ? ou peut etre une autre (...)
j'ai un petit soucis avec die : je voudrais que lorsqu'un "open" ne fonctionne pas, die m'écrire et log et sorte avec "-1"
donc j'ai une ligne comme ca :
opendir(DSTREPORT,$destreport)or die (meurt("Impossible d'ouvrir le répertoire $destreport... $!");return -1);
mais il n'en veux pas.... si je ne met que l'appel vers "meurt" ou le "return -1", ca fonctionne mais pour les deux en meme temps ya pas moyen...
ya t'il une syntaxe particulière que j'ai raté ? ou peut etre une autre (...)
> Lire le message (8 commentaires, moyenne: 1,3).
Programmation.perl : Gtk2 : rafraichissement d'un champ Gtk2::Entry
Posté par Julien Vehent (Jabber id, page perso, ) le 17 juillet 2006
Bonjour a tous,
je programme actuellement une interface en Gtk2 ou j'utilise des champs de date pour lancer une exploitation de logs entre ces dates.
C'est très simple, j'ai deux champs $datedebut et $datefin qui sont du type Gtk2::Entry->new_with_max_length(10) et j'ai également un bouton qui appel la fonction "lancer"
dans cette fonction "lancer" je fais mes deux récupérations de valeurs :
Celà marche bien (...)
je programme actuellement une interface en Gtk2 ou j'utilise des champs de date pour lancer une exploitation de logs entre ces dates.
C'est très simple, j'ai deux champs $datedebut et $datefin qui sont du type Gtk2::Entry->new_with_max_length(10) et j'ai également un bouton qui appel la fonction "lancer"
dans cette fonction "lancer" je fais mes deux récupérations de valeurs :
my $debut_exp = $datedebut->get_text();
my $fin_exp = $datefin->get_text();
Celà marche bien (...)
> Lire le message (3 commentaires, moyenne: 1).


