pgjdbc/pgjdbc GitHub issues and pull requests (mirror)  
help / color / mirror / Atom feed
[pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
30+ messages / 6 participants
[nested] [flat]

* [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-06-30 20:04 "harinath001 (@harinath001)" <[email protected]>
  0 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-06-30 20:04 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

### Context

I found that PGJDBC currently lacks support for PEM based certs and keys.

We have a use case where PEM files are auto renewed on disk and
converting them to DER format requires running something that watches
files on disk and auto-converts to DER.

Hence I would like to propose a patch for supporting PEM based certs, keys.

### New Feature Submissions:

1. [x] Does your submission pass tests?
2. [x] Does `./gradlew styleCheck` pass ?
3. [x] Have you added your new test classes to an existing test suite in alphabetical order?

### Changes to Existing Features:

- Adding support for PEM based certs will not affect the existing behavior.
- Added new tests for PEMKeyManager



^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-01 18:52 ` "davecramer (@davecramer)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: davecramer (@davecramer) @ 2025-07-01 18:52 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/LibPQFactory.java)

this should not be necessary, since you set a default value

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-01 18:57 ` "davecramer (@davecramer)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: davecramer (@davecramer) @ 2025-07-01 18:57 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

Why do we need a `PEM_KEY_ALGORITHM("pemKeyAlgorithm", "RSA", "Algorithm of the PEM key")` setting when the `PemKeyManager` only supports `RSA` ?

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-01 21:11 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-01 21:11 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/LibPQFactory.java)

initially I didn't have this, but one of the checks in  PRB started failing (My local setup gradle build was fine).
Hence I had to add this line.

Probably I can make the `algorithm` in PEMKeyManager constructor as nullable, but I didn't prefer it.

So, i believe adding this line is kind of necessary because `getOrDefault` returns nullable.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-01 21:13 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-01 21:13 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

>Why do we need a PEM_KEY_ALGORITHM("pemKeyAlgorithm", "RSA", "Algorithm of the PEM key") setting when the PemKeyManager only supports RSA ?

@davecramer `PemKeyManager` should also work for `EC` algorithm, along with `RSA`. So, I had to introduce a new setting.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-01 21:18 ` "davecramer (@davecramer)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: davecramer (@davecramer) @ 2025-07-01 21:18 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/LibPQFactory.java)

I presume it failed because it was returning an @Nullable you can cast it to notNull to fix it. You set a default in PEM_KEY_ALGORITHM so it will not return null

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-01 21:22 ` "davecramer (@davecramer)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: davecramer (@davecramer) @ 2025-07-01 21:22 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

> > Why do we need a PEM_KEY_ALGORITHM("pemKeyAlgorithm", "RSA", "Algorithm of the PEM key") setting when the PemKeyManager only supports RSA ?
> 
> @davecramer `PemKeyManager` should also work for `EC` algorithm, along with `RSA`. So, I had to introduce a new setting.

Sorry, you are correct.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-02 04:18 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-02 04:18 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/LibPQFactory.java)

@davecramer sure, i typecasted to nonNull value, appreciate if anyone can approve the 4 pending PRB workflows, so that it can go through.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-02 12:05 ` "cfredri4 (@cfredri4)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: cfredri4 (@cfredri4) @ 2025-07-02 12:05 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

PEMKeyManager reads its material from file every time. This is different from the existing key managers (`PKCS12KeyManager`, `LazyKeyManager`) which only reads from file once.
I think the behaviour should be consistent across all key managers, anything else would be confusing. Should the existing key managers be updated to always read from file to allow reloading/auto renewal as well?

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-02 20:05 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-02 20:05 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

@cfredri4 as the `getPrivateKey` method is called during the SSL Handshake, I believe the read happens during the connection establishment , and there might NOT be any reads further in the entire lifetime of connection.

Subsequent new connections anyways should create new objects of `LibPQFactory` and `KeyManagers` which will trigger reads again.

In case if a cert expires during the lifetime of a connection, probably the connection terminates and that will lead to creation of new one.

So, do you think reading the material  from file every time (or caching the content) cause any issues ?



^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 09:03 ` "cfredri4 (@cfredri4)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: cfredri4 (@cfredri4) @ 2025-07-03 09:03 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

> @cfredri4 as the `getPrivateKey` method is called during the SSL Handshake, I believe the read happens during the connection establishment , and there might NOT be any reads further in the entire lifetime of connection.

Correct.

> Subsequent new connections anyways should create new objects of `LibPQFactory` and `KeyManagers` which will trigger reads again.

You're right, I missed this part.
This means that there is really no point that the existing key managers (`PKCS12KeyManager`, `LazyKeyManager`) cache the key material and only read once.

> In case if a cert expires during the lifetime of a connection, probably the connection terminates and that will lead to creation of new one.

Of topic, but in general this does _not_ happen in TLS; certificate expiry is checked only during handshake so any connection will remain active when the certificate expires.

> So, do you think reading the material from file every time (or caching the content) cause any issues ?

No real issue. I only reacted to that it was done differently from the existing key managers. For consistency maybe the existing key managers should be updated to always read from file, it would slightly simplify things.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 13:14 ` "vlsi (@vlsi)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: vlsi (@vlsi) @ 2025-07-03 13:14 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

Should it stop processing the contents after `END PRIVATE KEY`?

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 13:20 ` "vlsi (@vlsi)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: vlsi (@vlsi) @ 2025-07-03 13:20 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java:70)

WDYT of adding `Arrays.fill(privateKeyDERBytes, 0)` and the corresponding zeroing of `keyContent` the  to reduce the retention of the secret keys in memory?

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 13:21 ` "vlsi (@vlsi)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: vlsi (@vlsi) @ 2025-07-03 13:21 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

Does this duplicate `PKCS12KeyManager` logic? Have you considered de-duplicating it?

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 17:01 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-03 17:01 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

thanks for bringing this up !

Yes, I created `BaseX509KeyManager` to have the common logic between `PKCS12KeyManager ` and `PEMKeyManager` extends from it.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 17:02 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-03 17:02 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java:70)

good point, 

I updated the code to zero the content of  `privateKeyDERBytes `, `keyContent`  to prevent security concerns.

Thank you

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 17:04 ` "vlsi (@vlsi)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: vlsi (@vlsi) @ 2025-07-03 17:04 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/BaseX509KeyManager.java)

I'm not a lawyer but having copyright here looks a bit weird. Did you intend adding "copyright Apple"?

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 17:05 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-03 17:05 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

sure, thats doable, if thats preferred. I updated the code to stop processing after `END PRIVATE KEY`. Thanks.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-03 17:07 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-03 17:07 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/BaseX509KeyManager.java)

ohh, thanks for catching this, this is due to my editor settings, removed it :)

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-08 21:25 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-08 21:25 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

@vlsi I have resolved you comments, can you please take a look now ? thanks.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-07-30 18:23 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-07-30 18:23 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

hello @davecramer @vlsi 
Just a gentle reminder to take a look at this PR when you get a chance. Appreciate your time and feedback! 
Thank you.


^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-08-13 20:52 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-08-13 20:52 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

git found some small conflict, so just rebased my changes and resolved it.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-09-28 19:48 ` "soumava (@soumava)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: soumava (@soumava) @ 2025-09-28 19:48 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

Thanks for the PR @harinath001. I'm hoping we can start using PEM formatted certificates with PGJDBC soon! 

Are we waiting for any further reviews/approvals for this PR? cc @davecramer @vlsi if not, is there a preferred alternative approach to be implementing this?

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-10-28 08:58 ` "ZwS (@ZwS)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: ZwS (@ZwS) @ 2025-10-28 08:58 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

I'm looking forward this PR will be merged. Support of the PEM certs in the driver will reduce the hustle with change monitoring and certificates converting.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-11-03 20:55 ` "davecramer (@davecramer)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: davecramer (@davecramer) @ 2025-11-03 20:55 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

We need to ensure that private key has owner only read permissions

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-11-03 23:16 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-11-03 23:16 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

thanks @davecramer for the comment. I added the code to verify the key file permissions before reading it.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-11-04 18:13 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-11-04 18:13 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

@davecramer I have added new code for checking the file permissions (had to handle posix + windows) but wondering if this kind of checks already happening in other places ? Would like to reuse it if possible. Thanks.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-11-10 19:36 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-11-10 19:36 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

@davecramer 
i see that the file permissions of the existing key files committed in the repo don't have the correct permissions.
```
-rw-r--r--@ 1 harinath  staff  1570 Nov 10 11:24 badclient.crt
-rw-r--r--@ 1 harinath  staff  1704 Nov 10 11:24 badclient.key
-rw-r--r--@ 1 harinath  staff  2940 Nov 10 11:24 badclient.p12
-rw-r--r--@ 1 harinath  staff  1956 Nov 10 11:24 badroot.crt
-rw-r--r--@ 1 harinath  staff  3446 Nov 10 11:24 badroot.key
-rw-r--r--@ 1 harinath  staff    41 Nov 10 11:24 badroot.srl
-rw-r--r--@ 1 harinath  staff  1570 Nov 10 11:24 goodclient.crt
-rw-r--r--@ 1 harinath  staff  1704 Nov 10 11:24 goodclient.key
-rw-r--r--@ 1 harinath  staff  2940 Nov 10 11:24 goodclient.p12
-rw-r--r--@ 1 harinath  staff  1956 Nov 10 11:24 goodroot.crt
-rw-r--r--@ 1 harinath  staff  2932 Nov 10 11:31 Makefile
-rw-r--r--@ 1 harinath  staff  1353 Nov 10 11:24 README.md
drwxr-xr-x@ 8 harinath  staff   256 Nov 10 11:24 server
```

We can update the `Makefile` to ensure `goodclient.key` have owner-read-only permissions. But I am wondering whats the way to change the permissions of the existing files. 

It seems one of the test case is failing due to the new check to verify the file permissions we added.

```
at platform/[email protected]/java.sql.DriverManager.getConnection(DriverManager.java:191)
      at app//org.postgresql.test.TestUtil.openDB(TestUtil.java:358)
      at app//org.postgresql.test.ssl.PEMKeyManagerTest.TestGoodClientPEM(PEMKeyManagerTest.java:60)
      Caused by: org.postgresql.util.PSQLException: Private key file "/home/runner/work/pgjdbc/pgjdbc/pgjdbc/../certdir/goodclient.key" has insecure permissions. Permissions for group and other must be revoked. Current permissions: rw-r--r--
```

can we update the file permissions of these files to fix the failure ?

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-11-11 13:12 ` "davecramer (@davecramer)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: davecramer (@davecramer) @ 2025-11-11 13:12 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

seems git doesn't allow one to set permissions. We can add a task to make sure the permissions are correct before running the test.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys.
@ 2025-11-11 21:24 ` "harinath001 (@harinath001)" <[email protected]>
  28 siblings, 0 replies; 30+ messages in thread

From: harinath001 (@harinath001) @ 2025-11-11 21:24 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/ssl/PEMKeyManager.java)

ok, i have added a step to change the permissions of the key file `goodclient.key` `owner read-only` before the test.
please take a look, thanks.

^ permalink  raw  reply  [nested|flat] 30+ messages in thread


end of thread, other threads:[~2025-11-11 21:24 UTC | newest]

Thread overview: 30+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2025-06-30 20:04 [pgjdbc/pgjdbc] PR #3700: Add PEMKeyManager to handle PEM based certs and keys. "harinath001 (@harinath001)" <[email protected]>
2025-07-01 18:52 ` "davecramer (@davecramer)" <[email protected]>
2025-07-01 18:57 ` "davecramer (@davecramer)" <[email protected]>
2025-07-01 21:11 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-01 21:13 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-01 21:18 ` "davecramer (@davecramer)" <[email protected]>
2025-07-01 21:22 ` "davecramer (@davecramer)" <[email protected]>
2025-07-02 04:18 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-02 12:05 ` "cfredri4 (@cfredri4)" <[email protected]>
2025-07-02 20:05 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-03 09:03 ` "cfredri4 (@cfredri4)" <[email protected]>
2025-07-03 13:14 ` "vlsi (@vlsi)" <[email protected]>
2025-07-03 13:20 ` "vlsi (@vlsi)" <[email protected]>
2025-07-03 13:21 ` "vlsi (@vlsi)" <[email protected]>
2025-07-03 17:01 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-03 17:02 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-03 17:04 ` "vlsi (@vlsi)" <[email protected]>
2025-07-03 17:05 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-03 17:07 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-08 21:25 ` "harinath001 (@harinath001)" <[email protected]>
2025-07-30 18:23 ` "harinath001 (@harinath001)" <[email protected]>
2025-08-13 20:52 ` "harinath001 (@harinath001)" <[email protected]>
2025-09-28 19:48 ` "soumava (@soumava)" <[email protected]>
2025-10-28 08:58 ` "ZwS (@ZwS)" <[email protected]>
2025-11-03 20:55 ` "davecramer (@davecramer)" <[email protected]>
2025-11-03 23:16 ` "harinath001 (@harinath001)" <[email protected]>
2025-11-04 18:13 ` "harinath001 (@harinath001)" <[email protected]>
2025-11-10 19:36 ` "harinath001 (@harinath001)" <[email protected]>
2025-11-11 13:12 ` "davecramer (@davecramer)" <[email protected]>
2025-11-11 21:24 ` "harinath001 (@harinath001)" <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox