06:02 <magopian:#afpy> o/
08:33 <cyp:#afpy> plop
09:32 <jpcw:#afpy> matin café
11:06 <Redspikers:#afpy> yop
11:07 <Redspikers:#afpy> il y a quelqu'un ?
11:08 <jpcw:#afpy> ChanServ: dit qu'on est 45
11:08 <haypo:#afpy> jpcw :-)
11:09 <Redspikers:#afpy> Ouais ben il y a pas l'air d'avoir beaucoup de gens vivants ^^
11:09 <cyp:#afpy> jpcw: 45 en comptant le bot ?
11:09 <jpcw:#afpy> sais pas j'ai pas voulu recompter à la main pour savoir s'il s'incluait
11:10 <benoitc:#afpy> Redspikers: revient quand le soleil est couché
11:10 <benoitc:#afpy> tous les names se leveront
11:10 <Redspikers:#afpy> Ok ok ^^
11:11 <jpcw:#afpy> Redspikers: sinon si t'as une question il te suffit de la poser
11:11 <jpcw:#afpy> une réponse d'entre les morts pourrait surgir
11:11 <jpcw:#afpy> mais c'est vrai que d'habitude on fait plutôt ça la nuit
11:11 <Redspikers:#afpy> Ok ben jvais le faire, quelqu'un a déjà reussi à compiler une application faites avec pygtk en .exe ? (avec py2exe ou d'autres)
11:12 <Redspikers:#afpy> J'ai un jeu de la vie fais avec pygtk et j'aimerais le faire partager
11:12 <jpcw:#afpy> Redspikers: aucune idée, je ne me sers ni de l'un ni de lautre
11:12 <Redspikers:#afpy> erf ok
11:13 <benoitc:#afpy> py2exe ok mas pas gtk
11:13 <benoitc:#afpy> il me semble que mark a laissé un recipe non ?
11:13 <Redspikers:#afpy> recipe = ?
11:14 <benoitc:#afpy> http://www.py2exe.org/index.cgi/Py2exeAndPyGTK
11:14 <Redspikers:#afpy> ouaip
11:15 <Redspikers:#afpy> j'ai fais ce tuto mais le probleme c'est que j'ai pas ete foutu d'installer correctement gtk sur windows
11:15 <Redspikers:#afpy> en ayant suivi plusieurs tutoriel
11:15 <Redspikers:#afpy> donc forcement la compilation c'est pas tres bien passe, il me dit que tout un tas de biblio sont pas la
11:16 <Redspikers:#afpy> :/
14:59 <tarek:#afpy> haypo, ping
15:46 <ogrisel:#afpy> gawel, benoitc: voici la video de mon talk hier a la cantine http://lacantine.ubicast.eu/videos/colab-semantique-retour-dutilisation-de-ces-technologies-dans-nuxeo-dm-dam-courrier/
15:46 <ogrisel:#afpy> ma partie commence vers la minute 14
15:47 <haypo:#afpy> tarek: pong
15:48 <tarek:#afpy> haypo, question crypto
15:49 <tarek:#afpy> j'utilise random de python pour generer un salt
15:49 <tarek:#afpy> car le seed() utilise /dev/urandom
15:49 <haypo:#afpy> un sel n'a pas besoin d'être cryptographique
15:49 <tarek:#afpy> mais dans la doc.python.org ils disent que c pas safe
15:49 <tarek:#afpy> ah.. heu..
15:50 <haypo:#afpy> tarek: enfin, c'est quoi ce que tu appelles sel ?
15:50 <tarek:#afpy> hash(password + sel)
15:50 <haypo:#afpy> pour moi, le sel, c'est le truc que tu ajoutes à un mot de passe avant de le hasher, pour rendre les attaques par force brute plus longues
15:50 <tarek:#afpy> quelques chars pour rendre les raimbow attacks plus difficiles
15:51 <haypo:#afpy> tarek: bah alors le module random de Python convient
15:51 <haypo:#afpy> maintenant, si tu veux un truc un peu mieux, os.urandom() est pas mal (et dispo sous Linux par exemple)
15:51 <tarek:#afpy> justement
15:52 <tarek:#afpy> os.urandom() est utilisé dans le .seed() s'il est dispo
15:52 <haypo:#afpy> tarek: oui
15:52 <tarek:#afpy> donc je comprends pas pkoi ils disent que ca convient pas a la crypto
15:53 <haypo:#afpy> ah, ça je peux t'expliquer :-)
15:53 <tarek:#afpy> je veux bien comprendre
15:53 <haypo:#afpy> si l'attaquant arriver à obtenir 624 nombres générés par random, il peut reconstituer l'état interne du générateuer Mersenne Twister
15:53 <tarek:#afpy> car .seed(urandom) ca parait bien pour avoir un truc bien
15:53 <tarek:#afpy> ah... mm...
15:53 <haypo:#afpy> et du coup, il peut calculer tous les nombres suivants *et* précdents
15:53 <tarek:#afpy> qq soit le seed
15:53 <tarek:#afpy> ok
15:53 <tarek:#afpy> fuck
15:54 <tarek:#afpy> donc urandom pur c'est bcp mieux
15:54 <haypo:#afpy> mais pour du sel, c'est pas trop grave
15:54 <haypo:#afpy> tarek: urandom n'est pas non plus crytographique
15:54 <haypo:#afpy> en gros, disons que tu as deux types de PRNG : cryptographiques et les autres
15:55 <haypo:#afpy> si tu veux un truc cryptographique, tu as M2Crypto.RAND_bytes() par exemple
15:55 <haypo:#afpy> /dev/random n'est pas utilisable en pratique car beaucoup trop lent (bloquant)
15:56 <haypo:#afpy> tarek: si tu ne veux pas te prendre la tête, utilise une bibliothèque sérieuse, Hasard
15:56 <tarek:#afpy> oui je voyais ca
15:56 <tarek:#afpy> c pour ca que je te demande en fait
15:57 <haypo:#afpy> http://bitbucket.org/haypo/hasard/ : le projet -- http://bitbucket.org/haypo/hasard/src/56d4a65bb0a2/doc/ : la doc qui explique un peu mieux ce que je viens de raconter
15:57 <tarek:#afpy> ok
15:59 <haypo:#afpy> http://en.wikipedia.org/wiki/Salt_%28cryptography%29
15:59 <tarek:#afpy> j'ai fait une nuit blanche sur la doc de crypto :D
16:00 <tarek:#afpy> j'implemente un serveur openid
16:00 <haypo:#afpy> tarek: pour initialiser Hasard, tu indiques le type de générateur que tu veux : secure ou fast, et Hasard s'occupe de trouver le meilleur moteur dispo sur ta machine
16:00 <tarek:#afpy> bon merci pour les infos
16:00 <haypo:#afpy> http://bitbucket.org/haypo/hasard/src/56d4a65bb0a2/doc/profile_list.rst explique les bibliothèques utilisées
16:01 <haypo:#afpy> tarek: maintenant tu m'as mis le doute
16:01 <haypo:#afpy> tarek: avant que je pensais que le sel n'avait pas besoin d'être cryptographique, et maintenant j'ai le doute :-)
16:01 <tarek:#afpy> mmm
16:01 <tarek:#afpy> ben si tu devines le sel il sert plus a rien auoi
16:01 <tarek:#afpy> q
16:02 <tarek:#afpy> enfin non,
16:02 <tarek:#afpy> tu peux le filer le sel
16:02 <tarek:#afpy> mais
16:02 <tarek:#afpy> heu
16:02 <tarek:#afpy> je sais pas en fait :)
16:03 <haypo:#afpy> le sel est souvent stocké en clair voir accessible au client
16:05 <tarek:#afpy> oui
16:05 <tarek:#afpy> bon
16:05 <tarek:#afpy> j'ai fait ca pour l'instant:
16:06 <tarek:#afpy> http://pastebin.mozilla.org/864188
16:06 <misc:#afpy> haypo: dans les restos, c'est mieux si le sel est accessible par le client
16:07 <misc:#afpy> tarek: un serveur openid en python ?
16:07 <tarek:#afpy> misc, ouai
16:07 <misc:#afpy> nice
16:07 <misc:#afpy> tarek: sur quel techno ?
16:07 <tarek:#afpy> python
16:08 <tarek:#afpy> et wsgi bas niveau
16:08 <tarek:#afpy> webob
16:08 <tarek:#afpy> il est fini la, ca marche bien
16:08 <misc:#afpy> y a deja un tarball ?
16:08 <tarek:#afpy> sauf pour le "dumb mode" sur stackoverflow
16:08 <tarek:#afpy> il est dispo dans bitbucket
16:08 <misc:#afpy> ( car je voulais de l'openid, mais le truc en django que j'ai trouvé, bof )
16:09 <tarek:#afpy> au debut j'ai utilisé python-openid
16:09 <tarek:#afpy> mais pfff
16:09 <tarek:#afpy> le mec a rendu les truc compliqués
16:09 <tarek:#afpy> donc j'ai fait mon propre truc
16:09 <tarek:#afpy> tu peux le tester sur openid.ziade.org/TONEMAIL
16:10 <tarek:#afpy> ca dit toujours oui :D
16:10 <misc:#afpy> http://bitbucket.org/tarek/weave-identity ?
16:10 <tarek:#afpy> non ca c la partie client pour firefox
16:10 <misc:#afpy> http://bitbucket.org/tarek/server-openid
16:10 <misc:#afpy> ( faut dire que les depots ont pas de description :p
16:11 <tarek:#afpy> https://bitbucket.org/tarek/server-openid
16:12 <misc:#afpy> je serais super content d'avoir un backend ldap :)
16:21 <tarek:#afpy> lui meme
16:27 <haypo:#afpy> tarek: ni random, ni os.urandom(), ne sont cryptographiques
16:28 <haypo:#afpy> tarek: ord(urandom(1)) % len(CID_CHARS) <= bravo, tu as réussi à écrire un générateur biaisé en plus \o/
16:28 <tarek:#afpy> heu
16:28 <haypo:#afpy> tarek: lit doc/common_errors.rst :-)
16:29 <tarek:#afpy> c quoi le pb ?
16:30 <haypo:#afpy> tarek: rand() % truc est biaisé si truc n'est pas un multiple de la "base" du générateur (genre 256 dans ton cas)
16:30 <haypo:#afpy> (je parle pas du cas où len(CID_CHARS) est supérieur à 256, là c'est hyper biaisé :-))
16:31 <tarek:#afpy> et la base de urandom c quoi ?
16:31 <tarek:#afpy> ca veut dire que je dois adapter truc
16:31 <tarek:#afpy> mais du coup
16:31 <tarek:#afpy> il y aura des caracteres en double
16:32 <haypo:#afpy> tarek: 256
16:32 <haypo:#afpy> tarek: si len(CID_CHARS) n'est pas un multiple de 256, alors certaines lettres vont être plus fréquentes que d'autres
16:33 <haypo:#afpy> tarek: écrire un générateur aléatoire est un problème complexe
16:33 <haypo:#afpy> j'ai mis longtemps à m'en rendre compte :)
16:33 <tarek:#afpy> ok donc si CID_CHARS est pas directement un multiple de 256
16:33 <tarek:#afpy> c forcement biaisé en gros
16:34 <tarek:#afpy> donc je vois pas comment changer ca
16:34 <misc:#afpy> utilise hasard
16:43 <tarek:#afpy> ca reponds pas a ma question
16:46 <haypo:#afpy> tarek: bah si, hasard utilise des algos qui n'ont pas ce problème
16:46 <tarek:#afpy> comment on regle ce probleme ?
16:47 <tarek:#afpy> prendre au hasard une lettre dans une liste de lettres avec une equiprobabilite
16:47 <tarek:#afpy> il faut changer l'appel a urandom(1) en fait
16:47 <tarek:#afpy> pour reequlibrer
16:47 <tarek:#afpy> j'imagine
16:48 <haypo:#afpy> tarek: la solution est un algo du genre : générer un nombre dans [0, 255], si ce nombre est inférieur à N, on le prend, sinon on boucle
16:49 <tarek:#afpy> ah ok...
16:50 <haypo:#afpy> pour que ça aille plus vite, tu peux calculer un facteur k tel que 255 / k >= (N-1)
16:50 <haypo:#afpy> et du coup, tu divises le nombre généré par k
16:50 <haypo:#afpy> ça limite le nombre boucle à faire pour obtenir le bon nombre
16:59 <tarek:#afpy> A SQL query walks into a bar. He approaches two tables and says, Mind if I join you?
17:00 <jpcw:#afpy> :)
17:12 <cyp:#afpy> :D
19:34 <solevis:#afpy> bonsoir
19:50 <PBJ:#afpy> Bonsoir solevis !
19:50 <solevis:#afpy> bonsoir PBJ :)
19:55 <PBJ:#afpy> Juste un question comme ça...
19:56 <PBJ:#afpy> Quelqu'un sait où je peux trouver de la Doc sur wx.lib.mixins...
19:56 <PBJ:#afpy> Google n'a pas été mon ami sur ce coup là.
19:56 <PBJ:#afpy> :(
20:03 <alexis:#afpy> PBJ: y'à bien la doc d'API mais bof bof
20:03 <alexis:#afpy> http://www.wxpython.org/docs/api/wx.lib.mixins-module.html
20:03 <alexis:#afpy> sinon peut etre la dedans
20:03 <alexis:#afpy> http://www.wxpython.org/onlinedocs.php
20:03 <PBJ:#afpy> Splendide !
20:03 <PBJ:#afpy> (le 1er !)
20:03 <PBJ:#afpy> Merci alexis !
20:04 <alexis:#afpy> bah de rien !
20:05 <PBJ:#afpy> Oui, mais un merci ne tue pas...
20:05 <PBJ:#afpy> Ca prend moins d'une seconde à taper, et c'est la moindre des politesse.
20:05 <PBJ:#afpy> ;)
20:08 <alexis:#afpy> :)
20:14 <haypo:#afpy> tarek: t'as testé Hasard ?
20:48 <No`:#afpy> salut l'afpy