summaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2012-06-26 23:02:51 +0200
committerAzul <azul@leap.se>2012-06-26 23:02:51 +0200
commitbd88f52b03c2b8061aa753b7d925dd9bc4057e6e (patch)
tree44fc927200d8a9423e0653a1a6c648da61f7d9f4 /example
parent12b30b7e861c510593c6a8bd4bae68c2126106db (diff)
first steps towards adding a server side srp flow to the example
Diffstat (limited to 'example')
-rw-r--r--example/http-srp.rb5
-rw-r--r--example/models/user.rb13
-rw-r--r--example/views/layout.erb1
-rw-r--r--example/views/login.erb12
-rw-r--r--example/views/signup.erb2
5 files changed, 29 insertions, 4 deletions
diff --git a/example/http-srp.rb b/example/http-srp.rb
index 4faa149..d0b32dd 100644
--- a/example/http-srp.rb
+++ b/example/http-srp.rb
@@ -3,6 +3,7 @@ require 'pp'
require 'models/user'
require 'models/log'
+require '../lib/srp'
get '/' do
@user = User.current
@@ -22,6 +23,10 @@ post '/signup' do
end
get '/login' do
+ @user = User.current
+ Log.log(:init_server_login, params)
+ @auth = @user.initialize_auth(params)
+ Log.log(:init_client_login, @auth)
erb :login
end
diff --git a/example/models/user.rb b/example/models/user.rb
index f3f86ba..daea621 100644
--- a/example/models/user.rb
+++ b/example/models/user.rb
@@ -6,15 +6,24 @@ class User
end
attr_accessor :login
- attr_accessor :password
+ attr_accessor :salt
+ attr_accessor :verifier
attr_accessor :active
+ attr_accessor :srp
def signup!(params)
self.login = params.delete('login')
- self.password = params.delete('password')
+ self.salt = params.delete('salt').to_i
+ self.verifier = params.delete('verifier').to_i
self.active = false
end
+ def initialize_auth(params)
+ srp = SRP::Server.new(self.salt, self.verifier)
+ bb, u = srp.initialize_auth(params.delete('aa').to_i)
+ return {:bb => bb, :u => u}
+ end
+
def login!(params)
self.active = valid_login?(params[:login], params[:password])
end
diff --git a/example/views/layout.erb b/example/views/layout.erb
index c68ac23..d7e9985 100644
--- a/example/views/layout.erb
+++ b/example/views/layout.erb
@@ -21,6 +21,7 @@
<%= yield %>
+ <script type="text/javascript" src="jquery.min.js"> </script>
<script type="text/javascript" src="srp.js"> </script>
</body>
diff --git a/example/views/login.erb b/example/views/login.erb
index 32a16e5..131b0b9 100644
--- a/example/views/login.erb
+++ b/example/views/login.erb
@@ -3,12 +3,20 @@
<legend>Login with the user you <a href="/signup.html">created</a>.</legend>
<div class="control-group">
<label class="control-label" for="login">Login</label>
- <input type="text" class"input-xlarge" name="login"></input>
+ <input type="text" class="input-xlarge" name="login"></input>
</div>
<div class="control-group">
<label class="control-label" for="password">Password</label>
- <input type="password" class"input-xlarge" name="password"></input>
+ <input type="password" class="input-xlarge" name="password"></input>
+ </div>
+ <div class="control-group">
+ <label class="control-label" for="srp-bb">B</label>
+ <input type="text" class="input-xlarge" disabled id="srp-bb" name="srp-bb" value="<%=@auth[:bb]%>"></input>
+ </div>
+ <div class="control-group">
+ <label class="control-label" for="srp-u">u</label>
+ <input type="text" class="input-xlarge" disabled id="srp-u" name="srp-u" value="<%=@auth[:u]%>"></input>
</div>
<div class="form-actions">
diff --git a/example/views/signup.erb b/example/views/signup.erb
index 3a949ab..baeb007 100644
--- a/example/views/signup.erb
+++ b/example/views/signup.erb
@@ -10,6 +10,8 @@
<div class="control-group">
<label class="control-label" for="password">Password</label>
<input type="password" class"input-xlarge" name="password"></input>
+ <input type="hidden" class"input-xlarge" name="seed" value="624848790506324805995013"></input>
+ <input type="hidden" class"input-xlarge" name="verifier" value="100580140046706175735129154266794946404091486659235926309138114843862401271008476617107722147233360718775042845375531421388163398889326297385327521531575749857884877960888755227994771967905136828058233126017527751738166121598194480710839381273324624500340831193855479639683906360867824492692241079248646622455"></input>
</div>
<div class="form-actions">