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.

  • 15 Posts
  • 1.22K Comments
Joined 3 years ago
cake
Cake day: June 24th, 2023

help-circle






  • Fuck me, if my choice is between five flavours of Javascript, I’d rather use PHP. I’m developing a QML application and having to work around that abomination that the clinically insane want to call “arrays” in Javascript makes me want to fucking die. There’s also a QList type implemented by QML. It doesn’t help. Array.isArray(qlist) returns false.




  • Yes… but no. You probably saw a rendering error.

    The private keys in question were only eight bits in length (decimal values 0 to 255). A proper key for the specific encryption should have been 384 bits, or about 116 decimal digits. If a string format function expects a 384 bit number, but only receives 8, it might fill out the missing places with zeroes.



  • 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.