Hacker Newsnew | past | comments | ask | show | jobs | submit | fsmv's commentslogin

There was a short thread about this on mastodon involving Rob Pike the other day https://hachyderm.io/@robpike/115896334649905170

The go standard library has an implementation of ed25519 although I did not find ed448 it also has some NIST curves. There are a few libraries that do ed448 like one from cloudflare.

To test a Claude Skill for analyzing cryptographic implementations of cryptographic side-channels ([1] see constant-time-analysis), I had Claude vibe-code an Ed448 implementation.

This includes:

1. The Ed448 signature algorithm

2. The Edwards448 elliptic curve group (which could conceivably be used for ECDH)

3. The Decaf448 prime-order group (a much better target for doing non-EdDSA things with)

I've been putting off reviewing it and making the implementation public (as it was an exercise in "is this skill a sufficient guard-rail against implementation error" more than anything), but if there's any interest in this from the Go community, I'll try to prioritize it later this year.

(I'm not publishing it without approval from the rest of the cryptography team, which requires an internal review.)

But if you're curious about the efficacy of the Skill, it did discover https://github.com/RustCrypto/signatures/security/advisories...

[1] https://github.com/trailofbits/skills


I think what you're doing is really cool.

Your instructions to comment on your blog are incredible, come talk to you face to face. If I didn't live on the other side of the country it would be meaningful to tell you what it meant to me in person.


Skilled humans must understand the problem and write the theorem statement.


Best feature of freebsd. I have really messed up the system and successfully restored a boot environment snapshot and everything is fine after.

It happens by default with freebsd-update (I hope the new pkg replacement still does it too)


I made one of these too! I decided not to use // because I use gofmt auto formatting in my editor and it puts a space between the // and the usr. This one isn't changed by gofmt:

    /*?sr/bin/env go run "$0" "$@"; exit $? #*/


This is a sweet idea, thank you!

My suggestion for minimal/readable:

  /*usr/bin/env go run "$0" "$@"; exit;*/

  - go fmt leaves it alone
  - it preserves the exit code in case env or go breaks
  - it "figures out" where go is, no need to hard code a path that breaks on yet another machine (where /usr/bin/env is "standard")

  ( 
  The first example:
  - I'm not a big fan of the subtle extra work that the question mark in the original path imposes on the system.  env is (almost) always going to be as /usr/bin/env and rarely would something else that matches exist.  ls -d /?sr to see what outputs on your system.  That being said, the extra work isn't very meaningful in this case...

  - The trailing $? seems unnecessary as the final exit will convey the return code from env go regardless of if the $? is present or not
  )


I wonder if bash has a way to override the default function calling mechanism. Since functions in bashrc would probably take priority, maybe something like this could be possible: (psuedo code)

```

execve(path, args) {

  if path.endsWith('.go') {

    go run path args

  } else {

    super($path, *args)

  }
}

```

Then when you run `./script.go`, the function gets called and passes it so `go run`, while everything else goes through the existing execve function. That would be interesting, because then you could do this with absolutely anything.

`./script.rb`

`./script.py`

`./script.c`

etc


It works, but the best in me I cannot explain fully first 3 symbols. /*?sr/bin/env finds /usr by expanding *? to a first matching directory. But why not just /*usr/ instead?


I think I was just trying to minimize accidentally matching the wrong thing. Both do work though and it is kinda nice to be more readable.

If I remember right I think ? Is exactly one character only, or maybe it does non greedy .


It's really not as bad as it sounds from the contract. It's easy to get the committee to give you a release for your project.

The real rule as always is do not get in a legal fight with your employer


It seems to me that junk theorems are fundamentally a manifestation of leaky abstractions. It happens when you can see the implementation details from inside the abstraction.


A book won't fit in the URL anyway even with compression


Someone in another comment posted Crime and Punishment by Fyodor Dostoevsky, so a book fits in the URL. It is just that the URL is ~500000 characters :-P (the book itself is ~1.2M characters)


My guess is they believe in the Penrose idea that consciousness has something to do with quantum mechanics


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: