Skip to content

Conversation

@ripatel-fd
Copy link

Problem

A malicious peer may cause Agave to waste time verifying RSA-4096 certs.

Summary of Changes

  • Ban use of other TLS signature algorithms such as RSA
  • Add boilerplate to replace ring's Ed25519 verifier with Dalek

Fixes #

- Ban use of other TLS signature algorithms such as RSA
- Add boilerplate to replace ring's Ed25519 verifier with Dalek
@ripatel-fd
Copy link
Author

Closing, I will rebase this on Agave master when Lijun's PR is merged.

@ripatel-fd ripatel-fd closed this Sep 13, 2024
lijunwangs pushed a commit that referenced this pull request Oct 26, 2025
* Apply the retry code to the async pubsub client

Create a test server

```ts
import http from "http";

import { WebSocketServer } from "ws";

let attemptCount = 0;

const server = http.createServer();
const wss = new WebSocketServer({ noServer: true });

wss.on("connection", (ws) => {
  ws.send("Connection accepted.");
  ws.on("message", (msg) => console.log(`Received: ${msg}`));
});

server.on("upgrade", (req, socket, head) => {
  attemptCount += 1;

  if (attemptCount <= 4) {
    socket.write("HTTP/1.1 429 Too Many Requests\r\n\r\n");
    socket.destroy();
    console.log(`Rejected connection #${attemptCount} (429)`);
    return;
  }

  wss.handleUpgrade(req, socket, head, (ws) => {
    wss.emit("connection", ws, req);
    console.log("Connection accepted on attempt", attemptCount);
  });
});

server.listen(8080, () => {
  console.log("Server listening on port 8080");
});
```

Run `test_slot_subscription_async`:

```
Rejected connection #1 (429)
Rejected connection #2 (429)
Rejected connection #3 (429)
Rejected connection #4 (429)
Connection accepted on attempt 5
Received: {"id":1,"jsonrpc":"2.0","method":"slotSubscribe","params":[]}
```

* `s/async_with_retry/with_retry/`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants