Urgent.News

What's breaking now, across thousands of outlets.

Tech

Blind RSA in circl ignored the reader you passed it

Cloudflare's circl has a partially blind RSA signer. Its Blind method takes an io.Reader. The blinding factor used that reader. The salt did not. It read from crypto/rand directly. That breaks the contract. Two calls with the same deterministic reader should give the same blinded message. They did not, because half the randomness came from somewhere else. The sibling code in brsa.go did it right…

Cloudflare's Circl library contains a partially blind RSA signer. This signer's Blind method accepts an io.Reader. The blinding factor is derived from that reader. The salt is not derived from the reader. Instead, it is generated using crypto/rand directly. This deviates from the contract the code follows. Two calls to Blind with the same deterministic reader should produce identical blinded messages.

However, they did not, as half of the randomness was sourced from a different location. The sibling code in brsa.go implemented the correct behavior by using the supplied reader throughout. The fix involves a single line in blindsign/blindrsa/partiallyblindrsa/pbrsa.go: the salt is now generated using io.ReadFull(random, salt). Previously, it was created using rand.Reader.

The test suite verifies the fix. TestBlindUsesSuppliedReader performs Blind twice, using fresh deterministic readers that emit the same byte sequence. Before the fix, the two blinded messages were not identical. After the fix, they match. Callers who pass crypto/rand do not notice any change in behavior. Circl's partially blind RSA signer fix is available at cloudflare/circl#711.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Load Balancers and Reverse Proxies: Distributing Traffic Once It's Already Arrived

Every post in this series so far has been about getting traffic to the right network and the right host — routing between subnets, DNS resolving a domain to an IP, TCP getting bytes there reliably.

  • Reverse proxies act as intermediaries between clients and servers
  • Load balancing directs incoming requests to appropriate servers
  • Layer 7 load balancing makes decisions based on request content

Writing Online for 30 Days: What Actually Brings Readers (It's Not Posting More)

Thirty days of publishing will teach you things that thirty articles about writing never will. The main lesson is uncomfortable: the writing is maybe half of it.

  • Specific headlines with numbers or testable claims attract clicks
  • Deeply developed posts on one idea perform better than multifaceted ones
  • Engaging in discussions on others' work builds credibility and visibility

Discrete Mathematics for Computer Science: The 10-Module Zero-Fluff Roadmap

Discrete Mathematics is often taught as an abstract chore—pages of Greek symbols, detached lemma statements, and dry textbook proofs.

  • Discrete Mathematics forms unseen backbone of computing systems
  • Binary Dose releases 10-module Zero-Fluff Discrete Math roadmap
  • Course covers 31 topics with rigorous mathematical focus

More from Thursday 5 November →