<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: briansmith</title><link>https://news.ycombinator.com/user?id=briansmith</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 21 Apr 2026 10:45:11 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=briansmith" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by briansmith in "Quantum Computers Are Not a Threat to 128-Bit Symmetric Keys"]]></title><description><![CDATA[
<p>Many implementations limit the RSA key size to 8,192 or 16,384 bits (because the maximum bit length determines indirectly how much stack space is required).</p>
]]></description><pubDate>Mon, 20 Apr 2026 21:10:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47840806</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=47840806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47840806</guid></item><item><title><![CDATA[New comment by briansmith in "Apple Studio Display and Studio Display XDR"]]></title><description><![CDATA[
<p>BenQ PD2730S.</p>
]]></description><pubDate>Tue, 03 Mar 2026 23:48:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47240874</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=47240874</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47240874</guid></item><item><title><![CDATA[New comment by briansmith in "The Pain That Is GitHub Actions"]]></title><description><![CDATA[
<p>Actions have special integration with GitHub (e.g. they can annotate the pull request review UI) using an API. If you forgo that integration, then you can absolutely use GitHub Actions like "a container you run scripts in." This is the advice that is usually given in every thread about GitHub Actions.</p>
]]></description><pubDate>Thu, 20 Mar 2025 05:52:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=43420189</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=43420189</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43420189</guid></item><item><title><![CDATA[New comment by briansmith in "Constant-Time Code: The Pessimist Case [pdf]"]]></title><description><![CDATA[
<p>At <a href="https://rwc.iacr.org/2025/program.php" rel="nofollow">https://rwc.iacr.org/2025/program.php</a> you can see there is a talk scheduled to be given in a couple weeks titled "Testing Side-channel Security of Cryptographic Implementations against Future Microarchitectures" with the following bits in the abstract: "Using this framework, we conduct an empirical study of 18 proposed microarchitectural optimizations on 25 implementations of eight cryptographic primitives in five popular libraries. We find that every implementation would contain secret-dependent leaks, sometimes sufficient to recover a victim’s secret key, if these optimizations were realized. Ironically, some leaks are possible only because of coding idioms used to prevent leaks under the standard constant-time model."</p>
]]></description><pubDate>Wed, 12 Mar 2025 19:41:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=43346910</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=43346910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43346910</guid></item><item><title><![CDATA[New comment by briansmith in "Intent to end OCSP service"]]></title><description><![CDATA[
<p>Which CA's will issue short-lived certificates without negotiating a custom ($$$) contract with them?</p>
]]></description><pubDate>Tue, 23 Jul 2024 18:48:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=41049459</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=41049459</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41049459</guid></item><item><title><![CDATA[New comment by briansmith in "AWS Libcrypto for Rust"]]></title><description><![CDATA[
<p>Again, this is just a temporary situation, and a matter of burning down a list of small tasks. Not that the OpenSSL license issue is a big deal for most anyway. Feel free to help; see this issue filed by Josh Triplett: <a href="https://github.com/briansmith/ring/issues/1318#issuecomment-1890239223">https://github.com/briansmith/ring/issues/1318#issuecomment-...</a></p>
]]></description><pubDate>Sat, 13 Jan 2024 04:22:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=38977309</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=38977309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38977309</guid></item><item><title><![CDATA[New comment by briansmith in "AWS Libcrypto for Rust"]]></title><description><![CDATA[
<p>> Maybe so, but pretty much all cryptographic primitives have to be written in assembly anyway to achieve constant time operation.<p>This really oversimplifies the situation. Even at my most pessimistic, I believe just a very few, very small, parts need to be written in assembly language to maintain the "constant time" properties, and that's just until we can work together better with the Rust language team to eliminate these small  gaps. Even before then, the Rust language team is doing a good job at independently improving and expanding the building blocks we need to get to entirely-safe (in the Rust `unsafe` sense) and high-performance crypto libraries in Rust.<p>> evidently faster than ring itself[1].<p>If you're running on an AVX-512 system, there is a notable performance gap, temporarily. This state will persist for a few months at most, most likely. It's inevitable that we (all the OpenSSL forks, and even including non-OpenSSL-forks like rust-crypto) all converge on more-or-less the same implementations and/or different implementations of the same optimizations.</p>
]]></description><pubDate>Sat, 13 Jan 2024 04:17:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=38977289</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=38977289</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38977289</guid></item><item><title><![CDATA[New comment by briansmith in "Terrapin Attack for prefix truncation in SSH"]]></title><description><![CDATA[
<p>I think that's a really good question. The way this worked out is worth studying in detail. What was the process with which the AES-GCM cipher suites for SSH were developed? What was the process with which the ChaCha20-Poly1305 cipher suites were developed? How did the difference in processes lead to the difference in results? Will anybody change their process based on these results?</p>
]]></description><pubDate>Tue, 19 Dec 2023 21:29:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=38701901</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=38701901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38701901</guid></item><item><title><![CDATA[New comment by briansmith in "Terrapin Attack for prefix truncation in SSH"]]></title><description><![CDATA[
<p>> But it took until 2023 for someone to do the legwork to figure out how broken it was.<p>It took until 2023 for somebody to publicly disclose the problem.<p>The first fix for it was described in RFC 5647, which was published in August 2009 (first draft was submitted in June 27, 2008).</p>
]]></description><pubDate>Tue, 19 Dec 2023 03:03:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=38691284</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=38691284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38691284</guid></item><item><title><![CDATA[New comment by briansmith in "The Future of CSS: Easy Light-Dark Mode Color Switching with Light-Dark()"]]></title><description><![CDATA[
<p>There are multiple reasons for a user to want "dark mode":<p>* I just want everything to be dark on my screen because I like it.<p>* I am trying to use this device in a dark place.<p>* I want a dark, low-contrast background that doesn't compete with image colors.<p>The solutions to these three problems are all some kind of "dark mode" but each one needs a different solution. Sometimes one "dark mode" might work in conjunction with the user manually changing their brightness settings depending on the lighting in the environment, but not many people seem to design for that.</p>
]]></description><pubDate>Tue, 10 Oct 2023 00:48:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=37827334</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=37827334</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37827334</guid></item><item><title><![CDATA[New comment by briansmith in "Patch OpenSSL on November 1 to avoid “critical” security vulnerability"]]></title><description><![CDATA[
<p>The the old yanking policy was extra work I did with the intent to help people. It was unfortunate that Cargo had that bug, but also I should have been much more diplomatic in how I dealt with it.<p>I've just returned from a long break and I do have a concrete plan to catch up on the backlog. I have concrete plans for making it easier for people to get their PRs merged, making <i>ring</i> portable to all platforms, and eliminating all the remaining bits of C code in the next two quarters.<p>Feel free to reach out privately if you want to talk: brian@briansmith.org.</p>
]]></description><pubDate>Sat, 29 Oct 2022 18:00:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=33386439</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=33386439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33386439</guid></item><item><title><![CDATA[New comment by briansmith in "Preparing Rustls for Wider Adoption"]]></title><description><![CDATA[
<p>> Bundling this set with Firefox<p>I love that they did that; it was actually my idea (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=657228" rel="nofollow">https://bugzilla.mozilla.org/show_bug.cgi?id=657228</a>). I believe the list is pretty large and changes frequently and so they download it dynamically.<p>>  short cut to a "Yes"<p>Do they really do that? That's awesome if so. Then they don't even need to ship the roots.<p>> I specifically don't like [...] saying "unknown issuer"<p><a href="https://github.com/briansmith/webpki/issues/221" rel="nofollow">https://github.com/briansmith/webpki/issues/221</a><p>> If std::fs::File::open() gives me Result with an io:Error that claims "File not found" but the underlying OS file open actually failed due to a permission error, you can see why that's a problem right? Even if this hypothetical OS doesn't expose any specific errors, "File not found" is misleading.<p>A more accurate analogy: You ask to open "example.txt" without supplying the path, and there is no "example.txt" in the current working directory. You will get "file not found."<p>Regardless, I agree we could have a better name than UnknownIssuer for this error.</p>
]]></description><pubDate>Wed, 21 Apr 2021 21:39:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=26895786</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=26895786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26895786</guid></item><item><title><![CDATA[New comment by briansmith in "Preparing Rustls for Wider Adoption"]]></title><description><![CDATA[
<p>Are you assuming that the set of certificates that is given as input is the complete search space? It isn't; the server might have failed to send some certificate that, if present, would have fixed the "unknown issuer" problem. Also, we fail fast on errors; as soon as we find a problem, we stop the search on that path. Because of these reasons, identifying a single error would be, potentially, misleading.<p>In some cases, e.g. the end-entity certificate is signed with an algorithm that isn't supported, or an RSA key that is too small, we could add special logic to diagnose that problem. However, all this special diagnostic logic would probably approach the size of the rest of the path building logic itself. It doesn't seem appropriate for something in the core of the TLB of the system. Perhaps at some point in the not-too-distant future we can provide some mode with more diagnostic logic, and find a way to clearly separate this diagnostic logic from the actual validation logic to ensure that the diagnostic logic doesn't influence the result.</p>
]]></description><pubDate>Wed, 21 Apr 2021 16:15:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=26891603</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=26891603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26891603</guid></item><item><title><![CDATA[New comment by briansmith in "Preparing Rustls for Wider Adoption"]]></title><description><![CDATA[
<p>In a properly-designed CI/CD system, a dependency getting yanked isn't an emergency unless you choose to treat it as such. In particular, if you don't want your build to fail because some dependency got yanked then you need to use a Cargo.lock, and you need to ensure that you're not overzealous in your use of cargo-deny and similar tools.<p>I'm not sure if you were affected by this, but Cargo introduced a (regression) bug a couple years ago that caused it to fail when a crate got yanked when it shouldn't have. This bug was eventually fixed, but lots of people blamed <i>ring</i> for this bug. If this Cargo bug hadn't been introduced then most people who were using Cargo correctly wouldn't have been negatively affected by <i>ring</i>'s old policy.</p>
]]></description><pubDate>Wed, 21 Apr 2021 03:13:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=26885033</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=26885033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26885033</guid></item><item><title><![CDATA[New comment by briansmith in "Preparing Rustls for Wider Adoption"]]></title><description><![CDATA[
<p>> he situation described above just generated an "Invalid certificate" message. More use of anyhow::Context would be helpful. I don't disagree with Rustls disallowing decade-obsolete crypto. It's the "silently ignores" part that's a problem.<p>Because of how X.509 certificate validation works, in general it's not possible to tell you why an issuer couldn't be found, because there are many possible reasons.<p>Regardless <a href="https://github.com/briansmith/webpki/issues/206" rel="nofollow">https://github.com/briansmith/webpki/issues/206</a> tracks improving the situation.</p>
]]></description><pubDate>Wed, 21 Apr 2021 01:32:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=26884374</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=26884374</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26884374</guid></item><item><title><![CDATA[New comment by briansmith in "Preparing Rustls for Wider Adoption"]]></title><description><![CDATA[
<p>> The EverCrypt primitives are formally proven, whereas ring has no such formal proofs.<p>We do use some of the Fiat Crypto stuff for elliptic curve computations. I am not opposed to switching some stuff to use EverCrypt or other things that might be better, as long as the performance is the same or better, and as long as there's a clear path towards that code being in Rust.<p>> ring has several primitives that are assembly only and have no portable fallback.<p>Either in the latest release (0.16.20) or the upcoming release, there is a portable non-assembly implementation of everything in <i>ring</i>.</p>
]]></description><pubDate>Tue, 20 Apr 2021 17:24:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=26877598</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=26877598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26877598</guid></item><item><title><![CDATA[New comment by briansmith in "Preparing Rustls for Wider Adoption"]]></title><description><![CDATA[
<p>The goal of the <i>ring</i> project is to be much safer than OpenSSL without any notable decrease in performance. That is, my goal is to give you memory safety "for free" if you switch from OpenSSL/BoringSSL to <i>ring</i>. In some cases it is better than free because we end up being faster.<p>The assembly code in <i>ring</i> is some of the most heavily-tested code in the world. It's fuzzed pretty much continuously in various projects that use it, and a bunch of testing has been done on it. It is from BoringSSL, and much of it is shared with OpenSSL and/or Linux kernel. As we are able to replace the assembly code with safer code, we'll continue to do so, just like we've replaced most of the C code with which we started.</p>
]]></description><pubDate>Tue, 20 Apr 2021 16:56:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=26877279</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=26877279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26877279</guid></item><item><title><![CDATA[New comment by briansmith in "Preparing Rustls for Wider Adoption"]]></title><description><![CDATA[
<p>When I merged security fixes from BoringSSL/OpenSSL, I yanked the old versions of <i>ring</i> that didn't have the security fixes. I thought that was a pretty reasonable policy, however people who like to comment in these forums disagreed very loudly, so I stopped doing that. Not sure that's better, but there's less complaining.<p>In general, my initial thinking was based too much on the assumption that people would help maintain the things that depend on <i>ring</i> to update them to the latest release. It turns out there's less cooperative maintenance like that than I expected.</p>
]]></description><pubDate>Tue, 20 Apr 2021 16:45:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=26877113</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=26877113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26877113</guid></item><item><title><![CDATA[New comment by briansmith in "Preparing Rustls for Wider Adoption"]]></title><description><![CDATA[
<p>That hasn't been the case for a long time, a year or more.</p>
]]></description><pubDate>Tue, 20 Apr 2021 16:42:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=26877087</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=26877087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26877087</guid></item><item><title><![CDATA[New comment by briansmith in "Mundane: Rust cryptography library that is difficult to misuse"]]></title><description><![CDATA[
<p>There are lots of people doing awesome stuff with cryptography in Rust, including (but not limited to) the people who maintain Mundane.<p>You are right that <i>ring</i> has a much-reduced set of build dependencies compared to Mundane/BoringSSL. However, it is also true that Google implemented some build system support (to support Mundane?) that will help <i>ring</i>'s custom build system a lot too, once I find some time to make use of it.</p>
]]></description><pubDate>Wed, 16 Dec 2020 01:12:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=25437791</link><dc:creator>briansmith</dc:creator><comments>https://news.ycombinator.com/item?id=25437791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25437791</guid></item></channel></rss>