Err(()).unwrap()

Partisanship is a cancer. Inaction is a choice.

Singular they. Or whatever you like, I won’t take offence.
100% win rate in Highguard. Proud member of the Banned By Tesseract Club.

  • 5 Posts
  • 105 Comments
Joined 3 years ago
cake
Cake day: June 24th, 2023

help-circle

  • The encryption that SSL/TLS provides (that puts the “secure” in HTTPS) uses a public–private key pair and a specific mathematical function. Generating the key pair requires a cryptographically secure random number that is impossible or very difficult to guess, which must be kept secret at all times. If this random number is leaked or guessed by a malicious actor, the private key can be reconstructed and used to impersonate a website or break the encryption.

    The security of the encryption comes from the fact that the function is easy to calculate one way, but difficult to calculate its inverse. To demonstrate: multiplying the prime numbers 88117 and 44543 is easy, but the inverse, factorizing the semiprime 3924995531, is extremely lengthy in comparison.

    One of the factors that determine the security of the key is the size of the number, i.e. the number of digits. In this case, a proper key should’ve had a length of 384 bits (or 116 decimal digits). In reality, the keys that eMudhra used had eight bits, which can only represent 256 possible values, and can be easily guessed even by brute force. The specific private keys were the numbers 4, 56, 66, 115, 155, 156, 230, and 237.







  • compiling it for .NET on Linux

    It always sounds so simple for the layperson. Just looking through the list of DLLs in the portable ZIP, PDN uses Windows Forms (System.Windows.Forms namespace), which, as far as I understand, isn’t included in the cross-platform releases of .NET. They’d have to rebuild the entire UI with .NET MAUI or some other cross-platform toolkit. Then there are lots of other bundled libraries that may or may not work in a .NET-on-Linux environment.

    Releasing and then supporting a second platform is never as easy as just compiling the executable. Figuring out the quirks and differences of various systems, especially one as heterogenous as the Linux ecosystem, is a drain on resources that small development studios often can’t afford. Raiguard (hallowed be his name), one of the developers of Factorio, and the person who is single-handedly maintaining the Linux-native build, wrote a blog post about its challenges.


  • No, we were taught about HTTP, the fundamentals of hypertext and how it gets rendered, how embedded code (Flash at the time; yes, I’m old) runs in the browser, and the concept of the digital footprint. The cybersecurity implications were obvious.

    Actually, I have to correct myself. Some of this was taught in the 7th or 8th year of primary school, around ages 12-14. I was fortunate to be born in a country, at the right time, where the public education system was still worth something. My heart bleeds when I hear of what goes on across the ocean.





  • One obstacle you might encounter is carrier-grade NAT or CGNAT. Some ISPs put residential subscribers behind an additional layer of IPv4 NAT, which makes your public address inaccessible from the internet. In that case, you’ll either need Tailscale or a similar service, or a VPS to act as a relay.

    Then there’s Vodafone who have unilaterally removed both the port-forward feature and bridge mode from their residential cable modems, and I hate them, and wish them a hammer to balls.