cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | the secret reason for us trying to get PyPy users: to test the JIT well enough that we're somewhat confident about it
arigato has quit [Quit: Leaving]
Hasimir has joined #pypy
TheAdversary has joined #pypy
vpelletier has quit [Quit: leaving]
dddddd has quit [Remote host closed the connection]
Hasimir has quit [Remote host closed the connection]
TheAdversary has quit [Remote host closed the connection]
user24 has joined #pypy
jcea has quit [Quit: jcea]
forgottenone has joined #pypy
<_aegis_>
wait, does pypy not use a keyed hash for dicts?
<_aegis_>
(looking at "differences from cpython" page)
ceridwen has quit [Remote host closed the connection]
ceridwen has joined #pypy
ceridwen has joined #pypy
ceridwen has quit [Changing host]
<cfbolz>
_aegis_: what is a "keyed hash"?
user24 has quit [Quit: Leaving]
<_aegis_>
unkeyed hash would be something like modulo, djbhash, crc32, murmur3, or md5 run directly against the input and modulo'd to find the hash bucket
<_aegis_>
keyed hash would be something like SipHash, HMAC, etc
<_aegis_>
I'm asking in the context of hash table collision attacks
<_aegis_>
where the differences page says "notice how python's hash table randomization is vulnerable anyway? so we didn't implement that / -R"
<_aegis_>
*vulnerable before 3.4
<_aegis_>
so I'm assuming based on that statement even pypy3 doesn't implement any kind of defensive hash function that mitigates malicious collision
<_aegis_>
(a common example would be a web server DoS where the user controls a bunch of hash keys, like parameters, post values, http headers, or whatever, and forces them all into the same hash table bucket
<_aegis_>
so every lookup requires O(N) scan on maybe a >10k entry bucket
<cfbolz>
_aegis_: ah, I see. sorry, I don't actually know what the status of that is on pypy3
<_aegis_>
looks like python 3.4 uses SipHash
<_aegis_>
(anywhere there are 64-bit registers anyway)
oberstet has quit [Ping timeout: 245 seconds]
tayfun26 has joined #pypy
<cfbolz>
yes, seems so
<LarstiQ>
_aegis_: iirc pypy can do SipHash too
jamesaxl has quit [Ping timeout: 252 seconds]
forgottenone has quit [Read error: Connection reset by peer]
lritter has joined #pypy
antocuni has joined #pypy
jacob22__ has quit [Quit: Konversation terminated!]
<kenaan>
arigo py3.6 6be2fb2a8b03 /pypy/interpreter/astcompiler/test/test_compiler.py: Test for issue #2884
jacob22__ has joined #pypy
<kenaan>
arigo py3.6 dd78db026ae0 /pypy/interpreter/astcompiler/symtable.py: Fix for 6be2fb2a8b03 (issue2884)
oberstet has joined #pypy
antocuni has quit [Ping timeout: 250 seconds]
lritter has quit [Ping timeout: 240 seconds]
dddddd has joined #pypy
antocuni has joined #pypy
_whitelogger has joined #pypy
<mjacob>
_aegis_: we didn't follow CPython in implementing their first (unsuccessful) attempt to fix the problem
<mjacob>
_aegis_: however we followed CPython in implementing the second attempt to fix the problem with a cryptographic hash function
<mjacob>
_aegis_: (see also sys.hash_info)
adamholmberg has joined #pypy
jcea has joined #pypy
_whitelogger has joined #pypy
fryguybob has quit [Read error: Connection reset by peer]
fryguybob has joined #pypy
marky1991 has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
adamholmberg has quit [Read error: Connection reset by peer]
adamholm_ has joined #pypy
<_aegis_>
ok so the differences page either doesn't take pypy3 into account, or is otherwise out of date?
<_aegis_>
oh no I do see some pypy3 entries, so that should have a note that pypy2 is the one that doesn't have hash randomization?
marky1991 has quit [Ping timeout: 240 seconds]
tayfun26 has quit [Quit: tayfun26]
ronan has quit [Ping timeout: 252 seconds]
oberstet has quit [Ping timeout: 252 seconds]
ronan has joined #pypy
oberstet has joined #pypy
<cfbolz>
_aegis_: yes, seems true
kanaka has joined #pypy
kanaka has quit [Changing host]
kanaka has joined #pypy
antocuni has quit [Ping timeout: 252 seconds]
oberstet has quit [Read error: Connection reset by peer]
oberstet2 has joined #pypy
adamholm_ has quit [Remote host closed the connection]
adamholmberg has joined #pypy
_whitelogger has joined #pypy
adamholmberg has joined #pypy
adamholmberg has quit [Ping timeout: 245 seconds]
adamholmberg has joined #pypy
antocuni has joined #pypy
adamholmberg has quit [Remote host closed the connection]