Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2023-01-26 00:00:00Z and 2023-01-27 00:00:00Z
Avatar
Avatar
ChillerDragon
Yo bois I did my first run through documenting all system messages of the 0.7 protocol any feedback to the layout or content? Suggestions? https://chillerdragon.github.io/teeworlds-protocol/07/system_messages.html
nice documentation chillerdragon
Avatar
chillerdragon BOT 2023-01-26 07:34:07Z
Sänks :)
Avatar
looks nice
07:34
if it was for the 0.6 it would be cool to have it on the wiki
07:35
style wise, i think u are missing some margins in places, like after tables xd
Avatar
chillerdragon BOT 2023-01-26 07:41:06Z
It is linked on the wiki twice :D Most of the 0.7 protocol is relevant/used in ddnet since it’s so close to 0.6But yea you are right. I sometimes do a Tag after tables and sometimes not. I think I put margin: 0 on everything. Good catch will probably fix that later thanks!
07:41
But yea if I manage to finish one day I’ll continue with 0.6 then ddnet specific extensions
Avatar
yes, very interesting documentation 🙂
Avatar
Avatar
Faulty
@deen I'm not familiar with your workflow yet, do I need to do anything else with my PR, or should I wait for approval from someone?
wait for approval, basically
👍 1
Avatar
chillerdragon BOT 2023-01-26 09:03:02Z
This is a reply to some rust stuff right? (@heinrich5991)
wait for approval, basically (@Faulty)
Avatar
Avatar
chillerdragon
This is a reply to some rust stuff right? (@heinrich5991)
No. It was a reply to a new dev asking if they need to do anything more on their PR
Avatar
ChillerDragon BOT 2023-01-26 09:13:26Z
o thank
Avatar
Avatar
Learath2
No. It was a reply to a new dev asking if they need to do anything more on their PR
btw, could you reply pls in PR thread when you have time (https://github.com/ddnet/ddnet/pull/6293)
👍 1
Avatar
lalala soytari 卍 2023-01-26 10:59:24Z
10:59
How i can delete this options on my server
Avatar
In your config file? Maybe?
Avatar
@Jupstar ✪ did u check if its not reported or if its the case that its reported using the 0.7 protocol?
11:19
the layout changes if(!Server()->IsSixup(ID)) depending on this (edited)
11:19
on a per player basis
11:20
if(!m_apPlayers[ID]) return there is also this check, which should always pass i guess xd (edited)
Avatar
I've no idea. I added it where the other json stuff was parsed.. so I assume that it's already check if it's 0.6
Avatar
no it doesnt check
Avatar
Return sounds like it must be continue
Avatar
u gotta check it urself
Avatar
Avatar
Ryozuki
no it doesnt check
Mh weird, so it randomly parses 0.6 and 00.7 stuff in the client?
11:21
Thought 0.7 registry is a complete new entry
Avatar
game/server/gamecontext.cpp:4315 for the json creation
Avatar
Avatar
lalala soytari 卍
Click to see attachment 🖼️
'拏 MAhdiyar 2023-01-26 11:22:40Z
go to the autoexec_server.cfg and Search Line Vote Delete This Code In CFG
Avatar
@Jupstar ✪ it doesnt randomly parse it, it just that the server reports a json object however it wants to the master
11:22
and the ddnet server parse it
11:22
i guess
11:22
cc @heinrich5991
11:23
u can check if the skin is 0.6 by checking for the existance of the color_body key iirc
11:23
also a player may be 0.6 and another 0.7
11:23
i would just display a default tee for 0.7
11:24
for now
11:25
another thing may be that the buffer is too small for the data
11:25
i havent rly calculated exactly
11:26
each player has a buffer of 512 bytes char aExtraPlayerInfo[512];
11:26
total for server info is 16384
Avatar
Mh yeah I dunno. If that's the case I'd expect that the master server warns about it
11:27
But maybe our impl doesn't.
Avatar
yeah i would guess the master would reject invalid json
11:27
which probs does if it uses serde
11:28
anyway, the server is free to report whathever it wants
Avatar
And then it uses vanilla fetching instead, which obv has no skins?
Avatar
within a size limit idk which one is rn
11:28
idk, i think it fetches with json from the server, and if its invalid its vanilla?
11:29
heinrich should know
Avatar
Span<int> numbers = stackalloc int[length];
14:35
till u can stack allocate on c#
14:35
i wonder if u can do that in java rn
Avatar
Avatar
Ryozuki
heinrich should know
I don't quite get what you're asking
14:37
if the server doesn't provide valid json, the register request is rejected
Avatar
@heinrich5991 if the server reports invalid json to the master, does it instead fetch using the vanilla protocol
Avatar
only accidentally
Avatar
do u have logs of this
14:37
specifically from ddnet official servers
14:37
if they reported invalid json
14:38
would be useful to know if this is the cause
Avatar
not sure, probably not
Avatar
the problem is apparentl sometimes skins arent reported
14:38
according to jupstar
Avatar
you can check whether it's vanilla server info
14:39
by checking e.g. for the presence of the map sha256
14:39
ah yea
14:39
you could do that for the historic server info
14:39
I should make sure to never request legacy server info for servers registering on https masters
Avatar
lalala soytari 卍 2023-01-26 15:36:15Z
Everyone can use /r how can I fix this
Avatar
Reported by Quick, I can reproduce, will fix: ``` ------------------------------------- Translated Report (Full Report Below) ------------------------------------- Process: DDNet [33423] Path: /Users/USER/*/DDNet Identifier: DDNet Version: ??? Code Type: ARM-64 (Native) Parent Process: zsh [33321] Responsible: iTerm2 [999] User ID: 501 Date/Time: 2023-01-26 16:32:23....
15:37

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-ad...
Avatar
Convert text to handwriting using an in-browser recurrent neural network. Choose from various print and cursive styles. Customize the outputs and download as SVG.
15:38
this looks rly gud
Avatar
Avatar
lalala soytari 卍
Everyone can use /r how can I fix this
https://ddnet.org/settingscommands/ sv_practice 0 in your server config
Avatar
does someone know a good buffer ringbuffer library for rust?
15:47
I want to have a 2048 byte buffer
15:47
and read network packets into it
15:47
stack?
Avatar
and then remove them again and pass them to the application
Avatar
iirc a vecdeque can do
Avatar
it seems I can't get a reference to the uninitialized part with vecdeque
15:48
which I need for reading from the network
Avatar
Vecdequeue is a growable Ringbuffer
15:49
But I assume u mean static sized
Avatar
dynamic is fine
15:50
but I need access to the uninit parts so I can pass it to a recv function
15:50
let read: usize = recv(ringbuffer.uninit_part()); ringbuffer.assume_written(read);
15:51
I suppose I could write it myself if I can't find a library
Avatar
I also didn't find a multiset like cpp offers
Avatar
what's a multiset?
15:52
ah, hashmap<something, int>?
Avatar
A set that allows dublipcate keys
15:52
But sorted
Avatar
hmm what about a vec of maybeuninit that u transmute
15:53
or smth
Avatar
A contiguous growable array type, written as Vec, short for ‘vector’.
15:53
vec allows access to uninitialized parts
Avatar
and vecdeque not?
Avatar
not as far as I can see
Avatar
Saddest
Avatar
so ima roll my own I guess
Avatar
Ez
Avatar
@heinrich5991 doesnt recv accept a writer?
15:56
isnt that better
Avatar
recv usually doesn't accept a writer
Avatar
I can give u cpp version of u want to port
Avatar
gimme
Avatar
In 45 min I'm home
Avatar
Or i give u access to my gitlab
Avatar
secret jupstar projects?
15:57
sign me up
Avatar
Yes xd
15:58
Give me 5min
Avatar
It's self hosted. I'll pm u
Avatar
is it necessary to separate proc-macro crates?
16:00
like i can't do this in one file
16:00
can i?
Avatar
7d984ec Fix Persian language crash (fixes #6310) - def- fbc3d9b Merge #6311 - bors[bot]
Avatar
Avatar
heinrich5991
let read: usize = recv(ringbuffer.uninit_part()); ringbuffer.assume_written(read);
correct me if im wrong, but once the ringbuffer is filled, u wouldnt get more data
16:04
what u trying to make exactly?
16:04
u can always have the vecdeque, and a stack array where u recv from and then u push it to the deque
16:06
This adds a tier 3 target, mipsel-sony-psx, for the Sony PlayStation 1. I've tested it pretty thoroughly with this SDK I wrote for it. From the tier 3 target policy (I've omitted the subpoi...
16:06
next release
Avatar
Avatar
Jupstar ✪
Or i give u access to my gitlab
why secret
16:11
are u hiding the next gen graphic algorithms? xd
Avatar
In the past I wrote a game engine
16:12
Now I'm free and believe in open source
16:12
But i consider it educational anyway (edited)
16:12
Even if I wrote few games xd
Avatar
I hope some nightly features are in xd
16:19
I use way to many
Avatar
std::sync::mpsc implementation updated Rust's standard library has had a multi-producer, single-consumer channel since before 1.0, but in this release the implementation is switched out to be based on crossbeam-channel. This release contains no API changes, but the new implementation fixes a number of bugs and improves the performance and maintainability of the implementation.
16:20
--
16:20
something unbelievable in the c++ world
Avatar
Well nowadays it is believable. Bug wg21 would give it a new name 😄
Avatar
Avatar
Ryozuki
std::sync::mpsc implementation updated Rust's standard library has had a multi-producer, single-consumer channel since before 1.0, but in this release the implementation is switched out to be based on crossbeam-channel. This release contains no API changes, but the new implementation fixes a number of bugs and improves the performance and maintainability of the implementation.
But it has no API change
Avatar
So you'd end up with std::sync::mpsc_ng or sth
Avatar
Avatar
Jupstar ✪
But it has no API change
no, but it improves perf
Avatar
But why should cpp not allow that
Avatar
Avatar
Jupstar ✪
But it has no API change
Some C++ containers have complexity requirements in the standard
16:22
i remembered this xd
Avatar
So you are stuck with a specific implementation of unordered_map 😛
Avatar
Avatar
Learath2
So you are stuck with a specific implementation of unordered_map 😛
But i assume only if u want strict standard?
16:23
GCC can wrap their impl in agcc namespace and still link it
Avatar
Avatar
Jupstar ✪
But i assume only if u want strict standard?
Which is what all the compilers implement. There have rarely been intentional departures from the standard
Avatar
this one seems important for ffi https://github.com/rust-lang/rust/pull/97971/
This patch makes it possible to use varargs for calling conventions, which are either based on C (efiapi) or C is based on them (sysv64 and win64). Also pinging @phlopsi, because he noticed first t...
16:23
was added
Avatar
Avatar
Learath2
Which is what all the compilers implement. There have rarely been intentional departures from the standard
Isn't there a GCC standard
Avatar
The only one I can remember off the top of my head is the SSO until it became allowed
Avatar
oh look
16:24
since field ordering is rust impl defined
16:24
they optimized it in this release
16:24
use std::ptr::addr_of; use std::mem; struct Foo { word: u32, byte: u8, ary: [u8; 4] } fn main() { let foo: Foo = unsafe { mem::zeroed() }; println!("base: {:p}\nword: {:...
Avatar
what else does gnu++17 mean?
Avatar
Avatar
Jupstar ✪
Isn't there a GCC standard
Yeah, but they usually extend the standard, they don't really override it
Avatar
If it's just cpp17
Avatar
gnu++17 has VLAs like C and a couple other things
16:25
I think they also add restrict
Avatar
The layout of repr(Rust) types now groups m*2^n-sized fields with equivalently aligned ones. This is intended to be an optimization, but it is also known to increase type sizes in a few cases for the placement of enum tags. As a reminder, the layout of repr(Rust) types is an implementation detail, subject to change.
Avatar
Avatar
Learath2
Yeah, but they usually extend the standard, they don't really override it
mhh thats kinda sad imo, i think it would be an easy work around against c++ standard requirements
Avatar
ginzunza
IBM (IBM) announced the cuts Wednesday, saying they were related to the previously announced spinoff and sale of two business units. Some 3,900 positions, or 1.5% of its global workforce, are expected to go. The move will cost IBM (IBM) about $300 million this quarter, a spokesperson confirmed.SAP (SAP), Europe’s largest software company, will l...
18:33
@deen your old company this time :o
18:33
not many eu companies laid off but sap did
Avatar
Avatar
Ryozuki
correct me if im wrong, but once the ringbuffer is filled, u wouldnt get more data
that's correct
Avatar
Avatar
Ryozuki
what u trying to make exactly?
I'm trying to minimize data copies
Avatar
ChillerDragon BOT 2023-01-26 19:29:54Z
sap bankrupt since deen is not carrying anymore
Avatar
Avatar
Ryozuki
u can always have the vecdeque, and a stack array where u recv from and then u push it to the deque
this introduces more copies which I'm trying to avoid
Avatar
Avatar
heinrich5991
I'm trying to minimize data copies
Why? You should maximize safety
19:34
And code prettiness
Avatar
@heinrich5991 are u writing a quic backend?
Avatar
Avatar
Jupstar ✪
@heinrich5991 are u writing a quic backend?
yes
Avatar
with quinn?
Avatar
Avatar
Learath2
Why? You should maximize safety
I'm also trying to maintain safety
Avatar
Avatar
Jupstar ✪
with quinn?
I decided to try quiche
Avatar
mh ok, i used quinn
Avatar
what were your considerations on which library to choose
19:45
?
Avatar
i guess tokio integration? i read some stackoverflow or reddit
19:45
cant remember
19:46
is quiche pure rust?
Avatar
afaict, none of the libraries were pure-rust, unfortunately
Avatar
i think quinn is (at least for compiling)
19:47
"Quinn is a pure-rust, async-compatible implementation of the IETF QUIC transport protocol."
19:49
only thing i still dislike is tokio not offering a condition variable xD rest was okish i guess i also use tokio for async file io
Avatar
i think u need to roll ur own ringbuffer impl
Avatar
Avatar
Jupstar ✪
"Quinn is a pure-rust, async-compatible implementation of the IETF QUIC transport protocol."
it depends on ring, which is not pure-rust
Avatar
the good thing is that u cannot mix async with normal code, so u kinda force to use async io
Avatar
the good thing is, u can maintain code prettyness and safety thanks to rust encapsulation of unsafety cc @Learath2 😏
Avatar
Avatar
heinrich5991
it depends on ring, which is not pure-rust
is it not?
19:50
i know it has some assembly
Avatar
yep
Avatar
but everything uses ring iirc
19:50
rustls does right
Avatar
"Pluggable cryptography, with a standard implementation backed by rustls and ring"
19:50
u can choose apparently
19:51
i used the rustls from their example
Avatar
ring exposes a Rust API and is written in a hybrid of Rust, C, and assembly language.
Avatar
ring is audited tho btw
Avatar
Avatar
Jupstar ✪
u can choose apparently
I don't see other options
Avatar
why did they mix c there tho
19:51
oh maybe its cuz its a port from something old?
19:51
idk
Avatar
yes, openssl
19:51
→ boringssl
19:51
→ ring
Avatar
there is a dalek thing in rust
19:52
i find it pretty funny
Avatar
because openssl has good and fast implementations of crypto primitives
Avatar
and awesome
19:52
im a doctor who faan
Avatar
(written in perl, which generates assembly code, I heard)
Avatar
Fast, safe, pure-rust elliptic curve cryptography. dalek cryptography has 11 repositories available. Follow their code on GitHub.
19:53
its awesome
Avatar
Avatar
heinrich5991
I don't see other options
what do i need to search for in the symbols?
19:53
to check if its linked with my project
Avatar
dalek-cryptography is a collection of libraries providing safe, mid-level APIs for cryptographic primitives, aimed at making it faster and easier to implement cryptographic protocols such as key agreement, signatures, anonymous credentials, range proofs, and zero-knowledge proof systems.
>
Other libraries aim to provide well-designed APIs for protocol users, but do not aim to provide well-designed API for protocol implementers. The result is that implementing new protocols often requires using unsafe internal APIs which were never intended for reuse.
Avatar
Avatar
Jupstar ✪
to check if its linked with my project
check Cargo.lock, search for name = "ring"
Avatar
try cargo tree
Avatar
Avatar
heinrich5991
check Cargo.lock, search for name = "ring"
but if its unused its dead code isnt it
Avatar
cargp tree | grep "ring"
Avatar
i'd prefer to check stripped version
Avatar
idk how
Avatar
_ZN85_$LT$ring..io..writer..LengthMeasurement$u20$as$u20$ring..io..writer..Accumulator$GT$10write_byte17h5028fc7b2b977ff8E 00000000000fc4e0 l F .text 0000000000000004 _ZN85_$LT$ring..io..writer..LengthMeasurement$u20$as$u20$ring..io..writer..Accumulator$GT$11write_bytes17h0a8d19af71ae01d3E 00000000000fc4f0 l F .text 0000000000000035 _ZN74_$LT$ring..io..writer..Writer$u20$as$u20$ring..io..writer..Accumulator$GT$10write_byte17ha0b1ab21820904a2E 00000000000fc530 l F .text 0000000000000060 _ZN74_$LT$ring..io..writer..Writer$u20$as$u20$ring..io..writer..Accumulator$GT$11write_bytes17hddfc4814984ae122E 0000000000320018 l O .data 0000000000000020 _ZN4ring4rand7urandom4fill4FILE17hefd278b0303a3e1cE 00000000000fcac0 l F .text 0000000000000579 _ZN4ring3rsa12verification93_$LT$impl$u20$ring..signature..VerificationAlgorithm$u20$for$u20$ring..rsa..RsaParameters$GT$6verify17h5ff374f4b5b4fe5dE i see some symbols that are probably related to ring, so its in indeed
19:58
ah ok
19:58
but it seems it doesnt expose any dynamic symbols
19:59
these are from debug symbols i assume, after stripping they are gone
20:00
but yeah maybe its static linked do ppl ship stuff in crates that requires a c compiler (to build) @heinrich5991 ?
Avatar
yes
Avatar
i'd have thought that isnt the nicest style xD
20:00
ok
20:01
thats a bit sad
Avatar
and all rust quic crates fall into that category, as far as I could tell
20:01
which is annoying
Avatar
but i guess for quinn its a matter of time? i mean if they already give an alternative
Avatar
cant be too hard to get away from ring/ make it optional
20:02
@deen did u update the dns for codedoc?
Avatar
Avatar
Jupstar ✪
cant be too hard to get away from ring/ make it optional
famous last words. not really; constant-time code can only be done in assembly, I think
20:02
I guess you could do them in rust inline assembly
20:02
that would work
Avatar
Avatar
heinrich5991
famous last words. not really; constant-time code can only be done in assembly, I think
are such packages somehow flagged in crates?
20:03
i'd like to know if i have other packages like this
Avatar
using C compiler?
20:03
no
20:03
made by the dalek guys i told u
Avatar
Avatar
Jupstar ✪
i'd like to know if i have other packages like this
break your C compiler and check whether the clean build still works
20:03
e.g. put a broken C compiler in your path
Avatar
Avatar
heinrich5991
break your C compiler and check whether the clean build still works
no need, i use rustls and they also use ring
Avatar
This code is a low-level library, intended for specific use-cases implementing cryptographic protocols. It represents a best-effort attempt to protect against some software side-channels. Because side-channel resistance is not a property of software alone, but of software together with hardware, any such effort is fundamentally limited.
>
USE AT YOUR OWN RISK
Avatar
@deen tell me if u will update :p
Avatar
i cant do nothing from my side
20:08
cloudflare dns needs to be updated
Avatar
is there no pure rust openssl/boringssl alternative? i'd have thought thats a good rust use case
Avatar
@heinrich5991 do u have access too?
Avatar
Avatar
Jupstar ✪
is there no pure rust openssl/boringssl alternative? i'd have thought thats a good rust use case
rustls iirc
Avatar
Avatar
Ryozuki
cloudflare dns needs to be updated
i know
Avatar
Avatar
Ryozuki
rustls iirc
it depends on ring
Avatar
@Jupstar ✪ doing something like openssl/ring is a tremendous effort and requires a lot of audit
20:09
so the only h ope is probs they update ring removing more and more C
Avatar
Avatar
Ryozuki
@Jupstar ✪ doing something like openssl/ring is a tremendous effort and requires a lot of audit
they could start with the most common implementations
Avatar
ring is the closest u have rn i think
20:10
i mean, doesnt ring do that
20:10
@Jupstar ✪ well
20:10
there is the dalek group i sent
20:11
looks like they focus mostly on elliptic tho (edited)
Avatar
well i just find it weird that its not easy to find out which package uses which compiler 😮
Avatar
which has a lot of stuff
Avatar
if i read "pure rust" i'd think its pure rust xD
Avatar
Avatar
Jupstar ✪
if i read "pure rust" i'd think its pure rust xD
xd
20:14
honestly its possible to not use ring
20:14
just use some stuff from rust-crypto and subtle
Avatar
well i hope they get this settled in ~1 year
Avatar
why 1 year xd
20:14
its just that the stuff is not all in 1 crate
20:14
but in various
Avatar
Avatar
Ryozuki
@heinrich5991 do u have access too?
I have access
Avatar
Avatar
Ryozuki
why 1 year xd
bcs i want to finish my project in 1 year
Avatar
what do I need to do?
Avatar
i migrated my server so u need to change the codedoc.* ip
Avatar
what project?
Avatar
@heinrich5991 copy it from wiki.ddnet.org
20:15
A and AAAA
20:16
ty
Avatar
why do I add both A and AAAA?
Avatar
you update them
Avatar
it's proxied by cloudflare anyway
20:18
u change the proxy xD
20:18
the dns
20:18
?
Avatar
I just wondered why I need to add both IPv4 and IPv6, one would suffice
Avatar
hmm maybe its faster with ipv6 from their side
20:19
why not?
20:19
maybe the proxy has even better routing with ipv6 to my server
Avatar
because two entries could get out of sync
20:19
ur being pedantic
20:20
anyway i dont care dont wanna argue
20:20
u do u
Avatar
I add both
20:20
no worries
20:20
but it seems weird to me
Avatar
maybe one day i lose the ipv4
20:20
they expensive these days
Avatar
then we won't notice the problem because we added both
20:21
only slow site loads, perhaps
Avatar
i need to get a cert on my side for it to work
20:22
done
20:22
hmm maybe i lost the old theme xd
20:22
will do for now i guess
20:23
i wanna try https://datasette.io/ with the ddnet db
Datasette is a tool for exploring and publishing data. It helps people take data of any shape, analyze and explore it, and publish it as an interactive website and accompanying API.
20:23
tomorrow ill check
Avatar
not sure if you actually needed certificates tbh
Avatar
probs not but on the wiki it didnt work otherwise
20:24
actually the thing to do here would be u give me a origin cert
20:24
but 2 lazy anyway
20:25
@heinrich5991 i think ddnet has the full strict config on cloudflare
20:25
so proxy - origin needs to be encrypted too
Avatar
no, unfortunately not
20:25
only "full"
20:26
I changed it to full (strict)
20:26
did anything break?
Avatar
ah well its "Encrypts end-to-end, using a self signed certificate on the server"
20:27
thats why it requires me to have a cert on my side too
20:27
altho i just use lets encrypt a self signed would work
Avatar
Avatar
heinrich5991
did anything break?
no it works fine
20:27
i just forgot to port my theme
20:27
it was dark themed before
Avatar
Avatar
heinrich5991
I changed it to full (strict)
oh
20:28
if u change it to full strict wiki and codedoc will break
20:28
because u havent provided me a origin cert
20:29
Encrypts end-to-end, but requires a trusted CA or Cloudflare Origin CA certificate on the server
20:29
ahh
20:29
wait
20:29
it doesnt break cuz im using a trusted CA xd
Avatar
yes
Avatar
im stupid
Avatar
Avatar
heinrich5991
famous last words. not really; constant-time code can only be done in assembly, I think
constant-time code doesn't exist on most, if not all, architectures
20:34
memory access on multicore design is non deterministic
20:34
interruptions are non deterministic
20:34
context switches are non deterministic
Avatar
sounds irrelevant for cryptography
20:35
the interruptions don't depend on the data
20:35
memory access does not depend on the data being encrypted
20:36
context switches don't happen during encryption, except interrupts which don't depend on data
Avatar
Avatar
heinrich5991
sounds irrelevant for cryptography
is very relevant for cryptography, that's how most hardware attacks work
Avatar
can you give an example?
20:55
Substitution boxes are often the target of such attacks
Avatar
is the rest of my argumentation valid?
21:07
interrupts, context switches?
Avatar
you need context switches on monocore for timing attacks, context switches are based on timer interruptions
21:16
for multicore, you don't need those
Avatar
Avatar
heinrich5991
memory access does not depend on the data being encrypted
but this point is false for AES for instance
21:17
depends on implementation, you can do it without lookup table, but then code path is also data dependant
Avatar
actually, context switches can be triggered by any external event that the OS needs to handle
Avatar
yep
21:29
but since that doesn't depend on the data, it can't be used to extract the data
21:30
it needs data-dependent timings from elsewhere
21:30
it can only be used to measure the data-dependent timings (edited)
22:02
(its not the old project)
22:03
i setup a instance with datasette
22:03
so u can do all the queries u want
22:03
against today ddnet database
22:03
and generate graphs!
Avatar
Epic
22:07
Show some examples xd
22:11
xd
22:11
22:12
it won't respect order for some reason
Avatar
you can also query it and it returns json
22:12
or wiht graphql
Avatar
Avatar
Learath2
Click to see attachment 🖼️
ye idk why :x
22:13
if you click "copyable"
22:13
and then fancy
22:13
╒═════════════════╤═════════╕ │ Map │ Count │ ╞═════════════════╪═════════╡ │ Multeasymap │ 847102 │ │ Sunny Side Up │ 688313 │ │ Tutorial │ 615787 │ │ Kobra │ 494704 │ │ LearnToPlay │ 398745 │ │ Just2Easy │ 273273 │ │ 4Beginners │ 256242 │ │ Epix │ 250523 │ │ Kobra 2 │ 238256 │ │ run_g6 │ 202859 │ │ StepByStep │ 169370 │ │ Kobra 4 │ 162996 │ │ Tsunami │ 146537 │ │ NUT_short_race6 │ 145741 │ │ run_ankii │ 145453 │ │ run_blue │ 138420 │ │ Linear │ 135617 │ │ 4Nubs │ 128939 │ │ Gold Mine │ 119653 │ │ Tangerine │ 117432 │ ╘═════════════════╧═════════╛
22:13
easy table
22:13
@deen maybe ur interested in promoting this :D
Avatar
Avatar
Ryozuki
i proudly present https://ddstats.org/
.
Avatar
i set it up so it autoupdates everyday
Avatar
i added another visualizer that works kinda better
22:43
Avatar
gotta purge cache for it to appear tho xd
Avatar
why are the bars of different widths?
Avatar

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addres...
Avatar
Avatar
heinrich5991
why are the bars of different widths?
i set it to that, its relative to the count
23:08
by default it isnt xD
Avatar
so the area is proportional to count²?
Avatar
i guess
Avatar
that's a bit misleading
Avatar
hmm idk
23:10
23:10
xd
23:10
(you can click the view 100 rows in explorer)
23:11
ah there is also a graphql api
23:12
dont ask me how it works idk graphql
23:12
fancy
Exported 426 message(s)