Elektrine
EN
Log in Register
Paige Chat Timeline Communities Gallery Videos Email DNS VPN Uptime Kairo
Back to Timeline
Remote

OOTS

@oots@infosec.exchange
  • Open on infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

0 Followers
0 Following
30 Posts
Joined December 25, 2022

Posts

Open post
oots
OOTS @oots@infosec.exchange · Aug 05, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @baconandcoconut@freeradical.zone
@baconandcoconut@freeradical.zone I'm trying to design a board/card game. I want to encode raw data (e.g. for cards) into #YAML files, and then auto generate printable PDFs containing the cards from that with #Python. For now I'm running some balancing requirements/guidelines as unittests. I also use Python to visualise some statistics on the raw data (also mostly balancing related so far).
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Aug 03, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @volksverpetzer.de@bsky.brid.gy
@volksverpetzer.de Ich befürchte, da ist der Zug schon lange abgefahren. Begreifen ist leider nicht deren Stärke, siehe zum Beispiel Klimaschutz.
0
0
1
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 29, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

#RocketLang update:

I added support for "Union types": You can now declare variables (and function parameters of types like int32 | None. The variables can hold values of both types (and functions can be called with parameters of both types).the functionality is still a bit rough around the edges (not as comfortable to use as I'd like), but the core functionality is there.

This is actually on the "critical path" towards my current goal of implementing a unit testing library: When discovering tests (iterating through folders, finding test files, loading them and then finding the test cases in them), I need a list of test-cases. Currently only ArrayLists are (kind-of) implemented. But they require... arrays - and if a type doesn't have a default value, you can't initialise the array. Concretely: When I'm building a list of test cases, that's a ArrayList[func() -> None]. But func() -> None doesn't have a default value, so creating a RawArray[func() -> None] fails, so there's no list. Now, with union types I can create an ArrayList[func() -> None] that uses a RawArray[(func() -> None) | None] as backing storage.

0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 27, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @space_cadet@aus.social
@space_cadet@aus.social Did anyone react to it? This deserves someone calling out "#Bullshit!" loudly and clearly. A good deal of public shaming, too.
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 22, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
"Angesichts der politischen Mehrheitsverhältnisse in Ostdeutschland fordert Sachsens Ministerpräsident Kretschmer, gesprächsbereit für alle Parteien zu sein. Wer noch über Brandmauern rede, habe die Zeichen der Zeit nicht erkannt." Ich würde ja sagen: Wer an der #Brandmauer wackelt hat weder aus der Geschichte gelernt noch die Zeichen der Zeit erkannt. (Quelle: https://www.tagesschau.de/inland/kretschmer-brandmauer-100.html) #Kretschmer #Sachsen #FckAfD #Nazis
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 20, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
This whole #KeepAndroidOpen thing (@keepandroidopen@techhub.social) has definitely not gotten the amount of attention it deserves. (Including from myself.) TLDR: Google wants to lock down (at the #Android #OS level, rather than at the #PlayStore level) what can be installed on #Android phones. That would most likely be the end of (legit) alternative AppStores like @fdroidorg@floss.social . Spread the word! https://keepandroidopen.com/ #FDroid #Keep_Android_Open
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 16, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
"Kritik gibt es am Vorhaben der Bundesregierung, einen Teil der Einnahmen aus dem Emissionshandel nicht in den KTF, sondern in den Bundeshaushalt fließen zu lassen. Es geht um eine Summe von 2,7 Milliarden Euro 2027" https://www.tagesschau.de/inland/innenpolitik/ktf-klimafonds-finanzplanung-100.html OB IHR DEN ARSCH OFFEN HABT HAB ICH GEFRAGT!1! #climateemergency #climatecrisis #klimakrise #klimanotstand #klimawandel
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 14, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
#Greece, #Italy, #Spain, #Portugal, #France, #Germany, #England: Much of Europe is suffering an immense #heatwave. #Forestfires are (or were) ravaging, 12 people dead in Spain from forest fires. More forest #fires are sure to follow before the summer is over. Around 4000-5000 dead in Germany from the heat in June alone. #nuclearpowerplants in France shut down or running at reduced capacity to protect the rivers (that providing cooling to the plant) from overheating. And all of this is just the beginning of the #climatecrisis. We've seen it coming for decades, but failed to act on the information. How much longer until we take this for what it is, a #climateemergency?
0
0
1
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 12, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

Project #RocketLang update:

While working towards my current goal of having a unit-testing library in #Rocket, I came across a few bugs:

  1. string_1 + string_2 actually didn't work when one or both of the strings where empty. Fixed and added test cases.
  2. os.scandir(path) actually wasn't working properly. Most of my test cases used mocking, but the function errored out when run without mocks. The test cases without mocking didn't properly check the results. Now I implemented a proper testcase that creates a temporary directory, puts some files there and checks for those.

The os.scandir() test case above actually turned out to be a bit flaky: It worked locally, but failed in my CI/CD pipeline. The reason was that os.scandir() returned the files in a different order on the CI/CD server. So I tried sorting them by name which ... requires supporting <, <=, >, and >= for strings. So I implemented that, too (lexicographic sorting).

And ByteString got a new method: ends_with.

#Programming

0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 11, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

Another update on #RocketLang (my pet #programming language):

I just implemented the dir() function for modules, so that you can discover what's declared in a module. (Really, I had most of it stashed already.)

Another step towards implementing a unit-testing library for #Rocket, more specifically: auto-discovery of test cases.

0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 11, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

#RocketLang update:

Yesterday I implemented typecasting (with runtime checks), so you can now write:

x = cast_to[T](y)

where T is the target type.

This required first implementing function templates (generic functions) at all, that's another new feature.

As a consequence, using the cast_to functions, it's now possible to call dir() on all types, including Type itself.

That's one step closer to my current goal of implementing a unit-testing library: When you get a test class (inheriting from unittest.TestCase) you have to find it's methods. That's where dir() comes in.

0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Jul 09, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

Today I rented a server for the first time in my life. I ordered it on Monday, today I finally got access. Obviously, I've used #SSH many times before, since years. I know the ssh-keygen -t ed25519 by heart.

I wanted to have the server config reproducible, so I asked #claude #opus (you know, the "smart" one) to write an ansible playbook for me. (Because I've never really used ansible before.)

Within two/three hours I had gotten myself twice into a situation where I needed to access the server through some fallback method (server console in the browser). :blob_grinning_sweat:

The reason is that I wanted a somewhat hardened SSH setup. So Claude produced a config with PermitRootLogin no. Sensible. I saw it.

I ran ansible, afterwards I couldn't log in anymore, because #Claude recommended to defer creating a non-root user account to the second step. I didn't think it through enough. That was issue 1.

The fix was simple enough: I restored SSH access for root. I adapted the ansible playbool so that PermitRootLogin would only be set if there are other admin users. That fixed issue 1.

So I continued. I set the config for adding the new user. It got added to the sudo group, but I didn't want to allow sudo without password. The user got it's own SSH key, the .ssh folder and the .ssh/authorized_keys had the right permissions. I ran ansible again. It worked, the new user was created. Now that there was another admin user in the config, ansible reestablished the PermitRootLogin no.

I tried to log in as the new user, no problem. I tried running sudo and... it asked for the new user's password. But the user didn't have a password. That was issue 2.

Fixing it was again simple: Log in as root (via the web console), set a password for the user.

Still, I'm quite annoyed by myself screwing up two times in so short succession. Normally I pride myself in knowing what I'm doing (in most things I'm doing).

0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · May 14, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @das_robin@defcon.social
@das_robin@defcon.social @bagder@mastodon.social Yes, #Firefox is probably a few orders of magnitude more complex than #curl and definitely much bigger. Still, the blog post explicitly mentions "In addition to fixing the 271 bugs identified by Claude Mythos Preview in the 150 release, we’ve shipped more of these fixes in 149.0.2, 150.0.1, and 150.0.2.", so >270 attributed to #Mythos *alone*.
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · May 11, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @bagder@mastodon.social
@bagder@mastodon.social In terms of evidence to the contrary: Check out https://social.security.plumbing/@freddy/116549451049357174 / the blog post: https://hacks.mozilla.org/2026/05/behind-the-scenes-hardening-firefox/ >270 vulnerabilities found by Mythos fixed in a single Firefox release. That's just one data point, but interestingly far off from yours.
0
1
0
0
Open post
oots
OOTS @oots@infosec.exchange · May 08, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @bagder@mastodon.social
@bagder@mastodon.social @WishGate@mastodon.social We're counting CVEs of all severities?
1
1
0
0
Open post
oots
OOTS @oots@infosec.exchange · Apr 15, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @GossiTheDog@cyberplace.social
@GossiTheDog Yes
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Apr 07, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

I had to deal a bit with the "Supply-chain Levels for Software Artifacts" (SLSA) "standard":
https://slsa.dev/

IMO it's a joke, since they do not properly deal with threats from "Includ[ing] a vulnerable dependency (library, base image, bundled file, etc.)". They essentially say "A future version of this standard might deal with that":
https://slsa.dev/spec/v1.2/threats

This has been the main entry point of the past supply chain attacks (XZ backdoor, litellm, Shai-Hulud, ...). A supply-chain security standard that doesn't properly deal with vulnerabilities in dependencies completely misses the point. It's like installing alarms on your windows (to catch burglars trying to enter your home through the windows) when your front door doesn't have a lock.

#SLSA #supplychain #supplychainsecurity #xzbackdoor #ShaiHulud #litellm

0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Apr 06, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @nickzoic@aus.social
@nickzoic @hanno This. More specifically, you're looking for bounds on the tails of the binomial distribution, see the "tail bounds" section. Specifically, the Chernoff bound has a handy formula: https://en.wikipedia.org/wiki/Chernoff_bound See "Sums of independent Bernoulli random variables"/"Multiplicative form (relative error)". In your case: n is the length of the bitstring, p = 0.5, μ = p*n = 0.5 * n. So, if you're looking for the event X >= 0.6*n or X <= 0.4*n, you're looking at δ = 0.2 .
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Apr 03, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

I think #Germany has some strategic #efficiencyreserves that could be unlocked very easily, all that has to happen is for chancellor #Merz and Katherina #Reiche to resign.

3
0
1
0
Open post
oots
OOTS @oots@infosec.exchange · Apr 03, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

Read about "#efficiency #reserves" today:
https://archive.ph/R3ela
That's definitely my #euphemism of the day.
Imagine someone saying:
"It's a good thing that in our company we have some strategic efficiency reserves that we can tap into to boost productivity in times of need."
It's so nonsensical, I love it.

On a side note: German minister for energy Katherina #Reiche is an absolute disgrace. Every day she's in office is (in the best case) a missed chance to drive #renewableenergy and #sustainability . Most days she seems to be more busy undermining the transition to #greenenergy (thus shoving money to her previous employers) than doing anything more sensible (like playing #minesweeper ).

0
0
4
0
Open post
oots
OOTS @oots@infosec.exchange · Mar 29, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

After a few months of break, over the last week or so I finally had some time to work on my pet programming language #Rocket again.

My main goal was to fix a bug that prevented some built-in types (ints, booleans, ...) from being used as instances of a protocol (as in #Python - think interfaces in #Java, traits in #Rust or ...). The reason was that for these types I didn't have any runtime type info. If they were stored in a variable (or function parameter) of type `MyProtocol` that was that - there was no more information on the type except just that: It implements the protocol `MyProtocol`. No way of knowing the actual type or finding the implementation of the methods required by the protocol.

So I had to refactor how ints and booleans were represented internally. As you can imagine, that's a change quite deep in the language. It affected arrays (which store their length - an integer), strings (which under the hood ultimately are arrays of integers) and some other stuff. Changing the representation of booleans required adjustments in parts of the language that deal with booleans: lazily evaluating logical `and`s and `or`s, `if` statements, `while` loops, etc.

Anyway, after the refactoring I think the code is a bit cleaner. And once I had this, fixing the bug was literally a two line change (plus imports and tests).

Also found and fixed another bug: When importing two submodules of the same top-level module (e.g. `import mymodule.submodule_1; import mymodule.submodule_2`) the second import statement used to fail because the name `mymodule` already existed (was already taken) in the code doing the imports (it was created by the first import statement).

And then there was a third bug I introduced in the refactoring of the representation of ints. It lead to `-some_unsigned_int` to be treated as another unsigned int (rather than a signed one) in some regards. My test case converting `-9223372036854775808` (the minimum value a signed 64 bit integer can hold) to a string caught it.

On a side node: I'm so grateful I started writing lots of test cases for this project. The amount of bugs they've caught that would have gone unnoticed otherwise is worth a million. Always write test cases if you care about your software.

#RocketLang

0
0
1
0
Open post
oots
OOTS @oots@infosec.exchange · Mar 21, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @Crazypedia@pagan.plus
@Crazypedia@pagan.plus @nblr@chaos.social I usually use 🤖 ( https://emojipedia.org/robot )
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Mar 19, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @BMDS@social.bund.de
@BMDS Wo findet man als interessierter und IT-affiner Bürger denn besagte Standards? Die sind doch sicherlich offen und frei zugänglich, oder?
6
5
0
0
Open post
oots
OOTS @oots@infosec.exchange · Feb 25, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange

It looks like we're in for another few years of high #inflation, due to surging prices for #RAM and consequently about anything that uses #electronics:

https://www.tomshardware.com/pc-components/ram/data-centers-will-consume-70-percent-of-memory-chips-made-in-2026-supply-shortfall-will-cause-the-chip-shortage-to-spread-to-other-segments

https://www.wsj.com/tech/ai/memory-ram-shortage-2026-f55324b0

Question is: How will this affect the #AI #bubble? Will it finally burst or will investors just throw in even more money to be burned?

Edit: Another question is: How will this affect #politics, e.g. the #midterms in the #US? Further surging prices should be to #Trump|s disadvantage, right? (#uspol) Or will #Trump just issue an executive order banning export of #chips (not that so many are produced in the #USA, but still...)

1
0
2
0
Open post
oots
OOTS @oots@infosec.exchange · Jan 21, 2026
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @badkeys@infosec.exchange
@badkeys As long as the font doesn't distinguish between a lower case "L" and an upper case "i" you'll still have to brute-force a few bits, I suppose...
0
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Dec 31, 2025
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @hyde@lazybear.social
@hyde https://media.ccc.de/v/39c3-bluetooth-headphone-jacking-a-key-to-your-phone
0
1
0
0
Open post
oots
OOTS @oots@infosec.exchange · Dec 28, 2025
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @deborahh@cosocial.ca
@deborahh Firstly, I don't know. I didn't do the research myself, I just saw the talk. So take my answer with a big pinch of salt. My *guess* is: *If* your Bluetooth speaker uses the same chipset, it's probably vulnerable to *this* attack, too. However, your PC *probably* exposes less attack surface (from the speaker's perspective), since (for example) most likely it can't accept phone calls like an actual phone. Though whether the Bluetooth chipset in your PC, the Bluetooth driver on your PC, and the Bluetooth chipset in your speaker are secure is an entirely different question. Most likely they're just vulnerable to different bugs, which we don't know about, yet.
2
1
0
0
Open post
oots
OOTS @oots@infosec.exchange · Dec 27, 2025
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Boosted by Charlie Stross @cstross@wandering.shop
The "Bluetooth Headphone Jacking" talk at #39c3 was awesome, too. They reversed a popular SOC that powers Bluetooth earbuds and headphones. They found that (even without being paired to the headphone), they could dump flash and RAM from the device. Then they dumped a bunch of info from the device - e.g. the #Bluetooth address and "master" encryption keys used for the communication with paired devices (e.g. a #phone). Then they impersonated the headphone from their laptop and connected to the phone (pretending to be the headphone). The headphone (or the laptop impersonating the phone) has permissions to do some things on the phone, e.g. accept calls, increase/decrease volume, etc. Then they started recovering access a #WhatsApp account via some account recovery mechanisms. That required some one-time security key which would normally be delivered via SMS, but that could be delivered via phone call as a fallback option, too. Since the phone thought it was connected to the Bluetooth headphone, phone call audio would go to the laptop via Bluetooth. As the cherry on top, they escalated into the victim's #Amazon account. Scary shit. #YouCannotBeParanoidEnough #security
283
7
235
3
Open post
oots
OOTS @oots@infosec.exchange · May 03, 2025
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @maxleibman@beige.party
@maxleibman@beige.party Amen.
1
0
0
0
Open post
oots
OOTS @oots@infosec.exchange · Feb 04, 2023
OOTS
@oots@infosec.exchange

Cryptographer, Security Engineer/Architect, humanist, with a taste for offensive security as well.

infosec.exchange
Replying to @nixCraft@mastodon.social
@nixCraft I remember Turbo Pascal 4.0 🙈​
0
0
0
0

Remote instance

infosec.exchange
Open on original server
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

Platform

  • Email
  • Chat
  • Timeline
  • Communities
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ

Legal

  • Terms of Service
  • Privacy Policy
  • Warrant Canary
  • Lite (no JS)
  • VPN Policy
  • Source code

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 23:02:31 UTC