summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTulio Casagrande <tuliocasagrande@gmail.com>2017-03-24 11:39:44 -0300
committerGitHub <noreply@github.com>2017-03-24 11:39:44 -0300
commitf7bb5b60dae726f9a92b2d0286b6235cdcbb4ea5 (patch)
treedbd57c0a649389704dd99e73c98a8e63580d466b
parentfc074ea9f9b7cd6708a5a878a7b56a4d76a9124e (diff)
parent2139c40daf24bdea0010b2c01513a2522a416616 (diff)
Merge pull request #1023 from pixelated/diagram-account-recovery
Account recovery diagrams
-rw-r--r--Makefile6
-rw-r--r--service/diagrams/backup_account.pngbin0 -> 32685 bytes
-rw-r--r--service/diagrams/backup_account.txt37
-rw-r--r--service/diagrams/forgot_password.pngbin0 -> 36634 bytes
-rw-r--r--service/diagrams/forgot_password.txt35
5 files changed, 78 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 5ca8ffcb..df0902c3 100644
--- a/Makefile
+++ b/Makefile
@@ -114,3 +114,9 @@ remove_virtualenv:
remove_javascript_packages:
rm -rf web-ui/node_modules
rm -rf web-ui/app/bower_components
+
+diagrams:
+ @. $(VIRTUALENV)/bin/activate;\
+ pip install plantuml;\
+ cd service/diagrams/png;\
+ python -m plantuml *.txt
diff --git a/service/diagrams/backup_account.png b/service/diagrams/backup_account.png
new file mode 100644
index 00000000..e3e6871b
--- /dev/null
+++ b/service/diagrams/backup_account.png
Binary files differ
diff --git a/service/diagrams/backup_account.txt b/service/diagrams/backup_account.txt
new file mode 100644
index 00000000..661126f2
--- /dev/null
+++ b/service/diagrams/backup_account.txt
@@ -0,0 +1,37 @@
+title Backup Account Flow
+
+actor User
+
+User -> PixUA : backup email
+note left
+ existing user adds backup email
+end note
+
+PixUA -> SoledadClient
+note right
+ generate recovery code
+ encrypt secret
+ save to secrets doc
+end note
+
+SoledadClient -> PixUA: recovery code
+
+PixUA -> BonafideClient : recovery code
+note right
+ generate salt and verifier
+end note
+
+BonafideClient -> LeapWebapp : recovery code
+
+LeapWebapp -> BonafideClient
+BonafideClient -> PixUA
+
+alt successful case
+ PixUA -> SoledadClient
+ note right: delete old recovery code
+ PixUA -> User : email with recovery code
+else bonafide failure
+ PixUA -> SoledadClient
+ note right: delete new recovery code
+ PixUA -> User : error message
+end
diff --git a/service/diagrams/forgot_password.png b/service/diagrams/forgot_password.png
new file mode 100644
index 00000000..37dea8fa
--- /dev/null
+++ b/service/diagrams/forgot_password.png
Binary files differ
diff --git a/service/diagrams/forgot_password.txt b/service/diagrams/forgot_password.txt
new file mode 100644
index 00000000..2a303ddc
--- /dev/null
+++ b/service/diagrams/forgot_password.txt
@@ -0,0 +1,35 @@
+title Forgot Password Flow
+
+actor User
+
+User -> PixUA : recovery code and new password
+
+PixUA -> BonafideClient : //handshake//
+PixUA -> BonafideClient : recovery code and new password
+note right
+ generate salt and verifier
+end note
+
+BonafideClient -> LeapWebapp : recovery code and new password
+note right
+ authenticate
+ save new password
+end note
+
+LeapWebapp -> BonafideClient
+BonafideClient -> PixUA
+
+alt successful case
+ PixUA -> SoledadClient : new password
+ note right : save secret with new password
+ SoledadClient -> PixUA
+
+ alt successful case
+ PixUA -> User : confirmation page
+ note left: start backup account flow
+ else soledad failure
+ PixUA -> User : error message
+ end
+else bonafide failure
+ PixUA -> User : error message
+end