Modification du source d'AODV (sous ns2)
exmortix
-
exmortix -
exmortix -
Bonjour,
j'essaie d'implémenter la solution de Mr Guerero Zapata sous NS2.33(http://lptools1.amsl.com/html/draft-guerrero-manet-sakm-00) pour implémenter un nouveau système de gestion de clé cryptographique.
je voudrais dériver une adresse IP a partir d'une clé publique dans le fichier aodv.cc . pour ce faire, il faut modifier la valeur de la variable index dans le constructeur AODV::AODV(nsaddr_t id) : Agent(PT_AODV),
btimer(this), htimer(this), ntimer(this),
rtimer(this), lrtimer(this), rqueue() {... etc
mais l'appel de la fonction deriverip(pubkey) (celle-ci est déclarée comme suit: nsaddr_t deriverip(pubkey) dans un fichier secure.h inclus dans le fichier aodv.cc)
noter bien que je n'ai pas de problèmes dans la compilation, juste une erreur :erreur de segmentation.
merci beaucoup.
( ubuntu 8.04, programmation C )
j'essaie d'implémenter la solution de Mr Guerero Zapata sous NS2.33(http://lptools1.amsl.com/html/draft-guerrero-manet-sakm-00) pour implémenter un nouveau système de gestion de clé cryptographique.
je voudrais dériver une adresse IP a partir d'une clé publique dans le fichier aodv.cc . pour ce faire, il faut modifier la valeur de la variable index dans le constructeur AODV::AODV(nsaddr_t id) : Agent(PT_AODV),
btimer(this), htimer(this), ntimer(this),
rtimer(this), lrtimer(this), rqueue() {... etc
mais l'appel de la fonction deriverip(pubkey) (celle-ci est déclarée comme suit: nsaddr_t deriverip(pubkey) dans un fichier secure.h inclus dans le fichier aodv.cc)
noter bien que je n'ai pas de problèmes dans la compilation, juste une erreur :erreur de segmentation.
merci beaucoup.
( ubuntu 8.04, programmation C )
A voir également:
- Modification du source d'AODV (sous ns2)
- Suivi de modification word - Guide
- Modification dns - Guide
- Logiciel gratuit modification pdf - Guide
- Qui regarde mon profil facebook code source - Guide
- Modification liste déroulante excel - Guide
2 réponses
désolé.
l'appel de la fonction deriverip() ne fonctionne pas correctement à l'intérieur du constructeur AODV::AODV(nsaddr_t id).
AODV::AODV(nsaddr_t id) : Agent(PT_AODV),
btimer(this), htimer(this), ntimer(this),
rtimer(this), lrtimer(this), rqueue() {
unsigned char * pubkey;
id=deriverip(pubkey);
....
et voici le corp de la fonction :
//dérrivation des ip
nsaddr_t deriverip(unsigned char * pubkey)
{
nsaddr_t ip;int t;
unsigned char * signature;
RSA* my_key;
pubkey=(unsigned char *)RSAPublicKey_dup(my_key);
int mess_lent= sizeof (pubkey);
EVP_MD_CTX digest_ctx;
unsigned char digest[EVP_MAX_MD_SIZE];
unsigned int size_digest,size_sign;
EVP_DigestInit(&digest_ctx, EVP_sha ());
EVP_DigestUpdate(&digest_ctx,( unsigned char *)pubkey,(unsigned int)mess_lent);
EVP_DigestFinal(&digest_ctx, (unsigned char *)digest, & size_digest);
//reserver de l'espace memoire pour le champ resevé à la signature par rapport à la clé
signature = (unsigned char *) malloc (RSA_size(my_key));
RSA_sign(NID_sha1, pubkey,size_digest,signature,&size_sign,my_key);
t=8;
t<<=24;
t+= (int) pubkey;
ip=(nsaddr_t ) t;
return ip;
}
l'appel de la fonction deriverip() ne fonctionne pas correctement à l'intérieur du constructeur AODV::AODV(nsaddr_t id).
AODV::AODV(nsaddr_t id) : Agent(PT_AODV),
btimer(this), htimer(this), ntimer(this),
rtimer(this), lrtimer(this), rqueue() {
unsigned char * pubkey;
id=deriverip(pubkey);
....
et voici le corp de la fonction :
//dérrivation des ip
nsaddr_t deriverip(unsigned char * pubkey)
{
nsaddr_t ip;int t;
unsigned char * signature;
RSA* my_key;
pubkey=(unsigned char *)RSAPublicKey_dup(my_key);
int mess_lent= sizeof (pubkey);
EVP_MD_CTX digest_ctx;
unsigned char digest[EVP_MAX_MD_SIZE];
unsigned int size_digest,size_sign;
EVP_DigestInit(&digest_ctx, EVP_sha ());
EVP_DigestUpdate(&digest_ctx,( unsigned char *)pubkey,(unsigned int)mess_lent);
EVP_DigestFinal(&digest_ctx, (unsigned char *)digest, & size_digest);
//reserver de l'espace memoire pour le champ resevé à la signature par rapport à la clé
signature = (unsigned char *) malloc (RSA_size(my_key));
RSA_sign(NID_sha1, pubkey,size_digest,signature,&size_sign,my_key);
t=8;
t<<=24;
t+= (int) pubkey;
ip=(nsaddr_t ) t;
return ip;
}