Page MenuHomePhabricator

[Identity] Implement some generic OPAQUE types
ClosedPublic

Authored by varun on Apr 15 2022, 11:46 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Nov 23, 12:00 PM
Unknown Object (File)
Sat, Nov 23, 11:20 AM
Unknown Object (File)
Mon, Nov 18, 11:17 AM
Unknown Object (File)
Tue, Nov 12, 10:37 PM
Unknown Object (File)
Tue, Nov 12, 12:01 PM
Unknown Object (File)
Tue, Nov 5, 7:34 PM
Unknown Object (File)
Tue, Nov 5, 7:34 PM
Unknown Object (File)
Tue, Nov 5, 7:34 PM

Details

Summary

Depends on D3578

Implementation of the CipherSuite trait, which configures the underlying primitives for OPAQUE.

  • Group: a finite cyclic group along with a point representation, along with an extension trait PasswordToCurve that allows some customization on how to hash a password to a curve point
  • KeyExchange: The key exchange protocol to use in the login step
  • Hash: The main hashing function to use
  • SlowHash: A slow hashing function, typically used for password hashing
Test Plan

cargo build

this will get tested more in subsequent diffs that use the CipherSuite

Diff Detail

Repository
rCOMM Comm
Lint
No Lint Coverage
Unit
No Test Coverage

Event Timeline

ashoat added a reviewer: anunay. ashoat added 1 blocking reviewer(s): jim.Apr 18 2022, 8:23 PM
ashoat added a subscriber: anunay.

Adding @anunayk and making @jimpo since it appears like there are some cryptography decisions to be made here

This revision is now accepted and ready to land.Apr 19 2022, 2:55 AM

expose OPAQUE's CipherSuite as a library instead of a module, so that it can be reused in another executable to generate a keypair for the server

varun requested review of this revision.Apr 28 2022, 7:45 AM

Requesting review again since I changed the file structure after this diff was accepted

Revert file structure change

This revision is now accepted and ready to land.May 2 2022, 11:16 AM