Bonjour,
je cherche à faire marcher le projet kolab avec un serveur jabberd2. Le problème de ce petit projet est que le serveur Jabberd2 attend du serveur LDAP des mots de passe en clair alors que le serveur ldap de kolab retourne des hash SHA1.
Aprés avoir parcouru la documentation du serveur jabberd2, je n'ai pas trouver d'options donc je pense que ma solution va passer par un patch qui ferait un hash du mot de passe envoyé par le client avant la comparaison de celui ci avec celui du serveur ldap ...
Aprés avoir un peu fouillé dans les sources de Jabberd2, je suis tomber sur un fichier source sha1.c qui donne l'algo pour fair un hash mais le source est trés peu documenté (en tout cas pas suffisament pour moi et mon niveau en C) :).
Donc voila, je recherche l'aide d'une gentille personne pour m'aider à atteindre ce petit but. (déja me donner un exemple d'utilisation de la fonction pour le reste j'essayerai de me débrouiller).
Voici les fichiers en question :
sha1.c : http://www.jabberstudio.org/cgi-bin/viewcvs.cgi/jabberd2/util/sha1.(...)
sha1.h : http://www.jabberstudio.org/cgi-bin/viewcvs.cgi/jabberd2/util/sha1.(...)
Merci d'avance .... :)
# il faut vraissemblablement employer sha1_hash ..
Posté par . Takhi . Évalué à 1.
void sha1_hash(const unsigned char *dataIn, int len, unsigned char hashout[20]) ;
const char* monpassword="TOTO";
unsigned char cryptedpass[20];
sha1_hash( monpassword,strlen(monpassword), cryptedpass);
et tu récuperes le hash dans cryptedpass ..
[^] # Re: il faut vraissemblablement employer sha1_hash ..
Posté par Fabien Engels . Évalué à 1.
Merci de cette reponse.
Juste pour voir si j'ai bien compris, je vais recupérer le resultat dans cryptedpass et il faudrat que je reconvertisse en caractèré ascii (passé des 20octets reprensentant les 160bits vers un tableau de 40octets contenants les caractères lisibles).
# auth_pipe
Posté par hommelix . Évalué à 1.
Il y a des examples ds jabberd2 d'un tel script en perl.
[^] # Re: auth_pipe
Posté par Fabien Engels . Évalué à 1.
[^] # Re: auth_pipe
Posté par hommelix . Évalué à 1.
http://www.jabberstudio.org/cgi-bin/viewcvs.cgi/jabberd2/tools/pipe(...)
Et dans ton c2s .xml de tete, ca ressemble a ca:
http://www.jabberstudio.org/cgi-bin/viewcvs.cgi/jabberd2/etc/c2s.xm(...)
Biensur il faut remplacer " par les bons symboles
[^] # Re: auth_pipe
Posté par Fabien Engels . Évalué à 2.
[^] # Re: auth_pipe
Posté par Fabien Engels . Évalué à 1.
Je me poses justes cette question par rapport à l'existence de différents modules ecrits en C alors que ces mêmes modules aurait trés bien peut etre réalisé aussi en perl par exemple.
[^] # Re: auth_pipe
Posté par hommelix . Évalué à 1.
Chez moi ca semble bien aller, avec jusqu'a une centaine de personnes en ligne. Il faut veiller a faire un code propre, ou tu libere bien tes variables a la fin de chaque fonction, car le script reste en memoire en permanence, tant que c2s tourne.
Et n'oublies pas t'utiliser MIME::Base64 pour recuperer ton mot de passe.
# le module authreg_ldap
Posté par hommelix . Évalué à 1.
http://www.jabberstudio.org/cgi-bin/viewcvs.cgi/jabberd2/c2s/authre(...)
et la fonction a changee est:
[^] # Re: le module authreg_ldap
Posté par Fabien Engels . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.