Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crypto dependencies #241

Closed
simon-friedberger opened this issue Jun 3, 2022 · 5 comments
Closed

Crypto dependencies #241

simon-friedberger opened this issue Jun 3, 2022 · 5 comments

Comments

@simon-friedberger
Copy link
Contributor

It might be difficult to pull ring into a project that already has a crypto library dependency, maybe even boringSSL, which ring seems to be based on but not using.
Especially since both the versioning and the licensing of ring are a bit problematic.

I don't have a good overview of the Rust crypto landscape but if we could keep the VDAF core free of ring that might simplify things in some cases.

In general it would be ideal if we could somehow support multiple cryptolibs.

I am also not sure how dependencies should be handled in general. Currently, cargo tree -d shows that we have the following duplicates:

  1. aes as 0.8.1 and 0.7.5
  2. cipher as 0.3.0 and 0.4.3
  3. ctr as 0.8.0 and 0.9.1
  4. itoa as 0.4.7 and 1.0.1
@cjpatton
Copy link
Collaborator

cjpatton commented Jun 7, 2022

It seems like most of our ring dependencies are for ENPA (i.e, Prio v2) stuff. Perhaps ENPA could be put behind a feature flag?

Note that #52 is related.

@simon-friedberger
Copy link
Contributor Author

I had a look and afaict the dependencies are caused by:

  1. Prio2 ECIES which needs: ring, aes-gcm (which in turn uses aead, aes, cipher, ctr, ....)
  2. The PRG in vdaf/prg.rs which needs: aes, cipher, cmac, ctr
    Where the latter is iiuc still up for discussion.

@tgeoghegan
Copy link
Contributor

+1 to hiding ENPA behind a feature flag, since nobody but the existing deployments should ever use that stuff.

@tgeoghegan
Copy link
Contributor

@simon-friedberger is there anything left to do here now that #272 is merged?

@tgeoghegan
Copy link
Contributor

We discussed offline -- closing this, and I will ship a patch release of prio to crates.io, just as soon as I can get #277 merged.

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

No branches or pull requests

3 participants