deniable profileStore and multiple peer suport in app

Review Request #1 — Created Aug. 20, 2018 and discarded

dan
cwtch
master
sarah

Add deniable profile storage:

  • storage is fixed since upon initialization. IF there is not file when initializing, one is created with random data
  • storage is initialized (each time it is used) with blocksize, number of blocks, and number of divisions
  • each division is assumed to have a password associated with it
  • divisions should be initialized with a password, so profiles can be loaded, before writing
  • this mean that if a division is initialized with a different password than previously used, 0 profiles will be loaded, and a new profile will go in slot 0 overwritting what was there
  • this is a bit of a sucky experience, but any metadata we store starts to degrade deniability
  • options:
    • treat division 0 as more special and store metadata there about how many accounts there are giving the app the ability to tell the user they entered the wrong password for division 0 and allow prevention of overwritting. basically create two types of divisions: deniable and non-deniable
    • allow client apps to store some potential metadata, like a password hash, so they can tell the user if they entered the password wrong :/
    • ?

Add multiple peer support to app and app/cli:
- app now supports multiple peers
- app/cli upgraded to require user to select an active peer for commands
- TODO: fast follow to allow them to do the same for a group and alter group commands to use that instead of argument

  • app/cli
  • created two users in one session, peered them, and they had a conversation in a group
  • testing/tests.sh
  • testing/quality.sh
  • testing/ go test
  • 4
  • 0
  • 6
  • 0
  • 10
Description From Last Updated
Can we add some comments in here regarding which features are not yet in use? Looks like right now the ... sarah sarah
This makeup doesn't make much sense to me. I can easily imagine someone maintaining 2 public identities (personal / work),but ... sarah sarah
let's use defer unlock() everywhere...it's a much better patten sarah sarah
deadlock sarah sarah
dan
sarah
  1. Initial comments.

  2. storage/profile_store.go (Diff revision 2)
     
     
     
     
     
     
     
     
    1. removed
      left over from previous idea of random file names per profiles

  3. storage/profile_store.go (Diff revision 2)
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    change to defer mutex unlock pattern

  4. storage/profile_store.go (Diff revision 2)
     
     

    this can fail and should be error checked

  5. storage/profile_store.go (Diff revision 2)
     
     
     
     
     
     

    deadlock

    1. added unlock inside if before return

  6. storage/profile_store.go (Diff revision 2)
     
     
     
     
     
     
     
     
     
     
     
     
     

    use defer file close

  7. storage/profile_store.go (Diff revision 2)
     
     

    we should come up with a strategy for handling critical failures like this

    1. wired an error back through the whole thing

  8. 
      
dan
sarah
  1. 
      
  2. app/app.go (Diff revision 3)
     
     

    Can we add some comments in here regarding which features are not yet in use?

    Looks like right now the app only ever triggeres GroupMaster?

  3. storage/profile_store.go (Diff revision 3)
     
     
     
     
     
     
     

    This makeup doesn't make much sense to me. I can easily imagine someone maintaining 2 public identities (personal / work),but probably at most maintaining 1 secret profile.

    We should probably chat about this next meeting.

  4. storage/profile_store.go (Diff revision 3)
     
     
     
     
     

    let's use defer unlock() everywhere...it's a much better patten

  5. storage/profile_store.go (Diff revision 3)
     
     
     
     
     

    deadlock

  6. 
      
dan
Review request changed

Status: Discarded

Change Summary:

denaible aspect discarded, multiple profiles reworked, resubmitted, and approved, merged

Loading...