HNHacker News
TopNewBestAskShowJobs

jtsylve

182 karma · joined August 15, 2016

my public key: https://keybase.io/jtsylve; my proof: https://keybase.io/jtsylve/sigs/TalAo1JgjZzgye75OkrOA34RGb5ueg9UkuVkPwi9Wz8
submissionscomments
jtsylve··on SpiceCrypt: A Python library for decrypting LTspice encrypted model files
v2 Adds support for PSpice, which should hopefully cover the TI models. Let me know if not. https://github.com/jtsylve/spice-crypt
jtsylve··on A Copy-Paste Bug That Broke PSpice AES-256 Encryption
I posted SpiceCrypt (https://github.com/jtsylve/spice-crypt) a few days ago for decrypting LTspice models. It now supports all six PSpice encryption modes as well.

PSpice is Cadence's SPICE simulator. Vendors encrypt component models with it, which locks them to PSpice and prevents use in NGSpice, Xyce, etc. Modes 0-3 and 5 derive keys entirely from constants in the binary, so those are straightforward once you extract them.

Mode 4 is the interesting one. It's the only mode with user-supplied key material and uses AES-256 in ECB mode. The key derivation has two base keys: a 4-byte short key (originally for DES) and a 27-byte extended key (intended for AES). The code passes only the short key to the AES engine -- it looks like a copy-paste from the DES path that was never corrected. The short key gets null-terminated and zero-padded to 32 bytes, so 28 of 32 AES key bytes are known. Effective keyspace is 2^32, brute-forceable in seconds with AES-NI.

The first encrypted block after every marker is a metadata header with a known plaintext prefix, which gives you a crib for validation. Once you recover the 4-byte short key, the full user key is also recoverable from the decrypted header.

This has likely been shipping since PSpice 16.6 in 2014. Fixing it would break every encrypted model created in the last twelve years.

The blog post linked above walks through the full details. The repo also has specifications documenting all the encryption schemes: https://github.com/jtsylve/spice-crypt/tree/v2.0.1/SPECIFICA...

jtsylve··on SpiceCrypt: A Python library for decrypting LTspice encrypted model files
I've got it working. Will update soon.
jtsylve··on SpiceCrypt: A Python library for decrypting LTspice encrypted model files
File a feature request on github with some background details and I'll look into it!
jtsylve··on SpiceCrypt: A Python library for decrypting LTspice encrypted model files
A baseless claim may come (and if so, I'll write about it), but this use case is the textbook example of why these exemptions exist, so I can't see how any legal threats could be actionable.
jtsylve··on SpiceCrypt: A Python library for decrypting LTspice encrypted model files
This is my work. Thanks for sharing! I'm happy to answer any questions, and feedback and requests are welcome.
jtsylve··on Show HN: Meow – An Image File Format I made because PNGs and JPEGs suck for AI
The answer may be in your question.

- This is currently solved by inference pipelines. - Models and techniques improve over time.

The ability for different agents with different specialties to add additional content while being able to take advantage of existing context is what makes the pipeline work.

Storing that content in the format could allow us to continue to refine the information we get from the image over time. Each tool that touches the image can add new context or improve existing context and the image becomes more and more useful over time.

I like the idea.

jtsylve··on Fingers wrinkle the same way every time they’re in the water too long

  “A student asked, ‘Yeah, but do the wrinkles always form in the same way?’ And I thought: I haven’t the foggiest clue!” said German, a faculty member at the Thomas J. Watson College of Engineering and Applied Science’s Department of Biomedical Engineering. “So it led to this research to find out.”
I wish the authors would have mentioned the kid by name in the acknowledgement section of the paper. I bet the kid would have felt very proud and inspired to having their name published in a scientific journal.
jtsylve··on Fast Checksums with Portable SIMD
I experimented with the proposed parallel data type extensions to the C++ standard library. I got impressive performance gains for calculating APFS fletcher checksums without resorting to compiler intrinsics or inline assembly.

Gains were even more impressive when adding some simple loop unrolling: https://jtsylve.blog/post/2022/12/24/Blazingly-Fast-er-SIMD-...

jtsylve··on The C++ Type Loophole (C++14)
I think it just causes the type loophole_t<std::string, 0> to be defined (and thus the loophole friend function).
jtsylve··on Bill and Melinda Gates: America’s Top Farmland Owner
Does this also mean that they're the largest private recipients of farm subsidies?
jtsylve··on Go 1.11.5 and Go 1.10.8 are released
The fix, for anyone who is interested: https://github.com/golang/go/commit/42b42f71cf8f5956c09e6623...
jtsylve··on The Rise of Microsoft Visual Studio Code
I'm not sure when the last time you've tried, but in the last year VSCode has come a long way towards "just working" out of the box for C++. They've specifically focused on it. If you've got some time, I'd recommend that you checkout Rong Lu's CppCon 2018 talk. https://www.youtube.com/watch?v=JME1i3vCRR8
jtsylve··on Mark Zuckerberg Calls for a Universal Basic Income
Believe it or not, I wasn't trying to be snarky. I honestly didn't know if I misunderstood your argument. It was possible that you were talking about using a flawed premise or something that I wasn't understanding.

Sorry to offend.

jtsylve··on Mark Zuckerberg Calls for a Universal Basic Income
The Japanese bombed Pearl Harbor, not the Germans. Am I missing something from your argument or is this just a silly mistake?
jtsylve··on C++ 17 is Done
Nope, the spec seems to suggest it's unsigned char. This is also what gcc has done. https://patchwork.ozlabs.org/patch/737032/
jtsylve··on Chrome/macOS users in The Netherlands cannot visit google.com or google.nl
I happen to be in the Netherlands today and have had no problem using Google on OS X & Chrome
jtsylve··on Ask HN: Great online forums?
Thanks. The more you know...
jtsylve··on Ask HN: Great online forums?
Can you define those terms for those of us who are unaware?
jtsylve··on Show HN: uThreads – Concurrent User Threads in C and C++
Thanks for the reply and your future consideration. I'm glad you seem to have taken the question as it was intended. I certainly didn't mean to imply that one license is superior to another.
jtsylve··on Show HN: uThreads – Concurrent User Threads in C and C++
I don't think that the GPL or the FSF is bad or evil. I've released and maintain several projects that are GPL licensed.

GPL is by definition more restrictive than Apache and BSD, since there are more requirements to use the code, so asking if the developer is willing to consider a less restrictive (not "better") license shouldn't be met with hostility.

My motivation for asking is simply because the project looks interesting and potentially useful; however, the proprietary nature of my current work means that GPL licensed code isn't really an option for me. I absolutely wouldn't hold it against the author if they chose GPL for this or any other reason.

jtsylve··on Show HN: Email hasn't changed in 20 years, I've coded something new for 9 months
This seems very similar to what once was Google Wave. That's not a criticism, though. I miss Wave.
jtsylve··on Show HN: uThreads – Concurrent User Threads in C and C++
Is there any reason you chose GPL3 or would you consider a less restrictive license like Apache or BSD?
jtsylve··on Disney Open Source
I'd say a 1-2 order of magnitude speedup is very significant.
jtsylve··on Equation Group Cyber Weapons Auction
Snowden did tweet what looked like an AES key last week.