diff options
-rw-r--r-- | example/http-srp.rb | 17 | ||||
-rw-r--r-- | example/models/user.rb | 4 | ||||
-rw-r--r-- | example/views/authenticate.erb | 8 | ||||
-rw-r--r-- | example/views/handshake.erb | 2 | ||||
-rw-r--r-- | example/views/ok.erb | 2 | ||||
-rw-r--r-- | example/views/salt.erb | 2 | ||||
-rw-r--r-- | example/views/xml.erb | 2 |
7 files changed, 13 insertions, 24 deletions
diff --git a/example/http-srp.rb b/example/http-srp.rb index ef43844..2e50cc8 100644 --- a/example/http-srp.rb +++ b/example/http-srp.rb @@ -1,5 +1,6 @@ require 'sinatra' require 'pp' +require 'json' require 'models/user' require 'models/log' @@ -19,12 +20,14 @@ end post '/register/salt/' do Log.clear @user = User.new(params.delete('I')) - erb :salt, :layout => false, :content_type => :xml + content_type :json + { :salt => @user.salt.to_s(16) }.to_json end post '/register/user/' do User.current.verifier = params.delete('v').hex - erb :ok, :layout => false, :content_type => :xml + content_type :json + { :ok => true }.to_json end get '/login' do @@ -35,9 +38,10 @@ end post '/handshake/' do @user = User.current Log.log(:handshake, params) - @auth = @user.initialize_auth(params) - Log.log(:init_auth, @auth) - erb :handshake, :layout => false, :content_type => :xml + @handshake = @user.initialize_auth(params) + Log.log(:init_auth, @handshake) + content_type :json + @handshake.to_json end post '/authenticate/' do @@ -45,7 +49,8 @@ post '/authenticate/' do Log.log(:authenticate, params) @auth = @user.authenticate(params) Log.log(:confirm_authentication, @auth) - erb :authenticate, :layout => false, :content_type => :xml + content_type :json + @auth.to_json end get '/verify' do diff --git a/example/models/user.rb b/example/models/user.rb index d374d36..91bbffc 100644 --- a/example/models/user.rb +++ b/example/models/user.rb @@ -25,13 +25,13 @@ class User def initialize_auth(params) self.srp = SRP::Server.new(self.salt, self.verifier) bb, u = self.srp.initialize_auth(params.delete('A').hex) - return {:B => bb, :u => u} + return {:s => self.salt.to_s(16), :B => bb.to_s(16)} end def authenticate(params) if m2 = self.srp.authenticate(params.delete('M').hex) self.active = true - return {:M2 => m2} + return {:M => m2.to_s(16)} else self.active = false return {:error => "Access Denied"} diff --git a/example/views/authenticate.erb b/example/views/authenticate.erb deleted file mode 100644 index a6bf80d..0000000 --- a/example/views/authenticate.erb +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<% if @auth[:M2] %> - <M><%="%x" % [@auth[:M2]]%></M> -<% end %> -<% if @auth[:error] %> - <error><%=@auth[:error]%></error> -<% end %> - diff --git a/example/views/handshake.erb b/example/views/handshake.erb deleted file mode 100644 index 49eca91..0000000 --- a/example/views/handshake.erb +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<%= %Q(<r s="%x" B="%x" />) % [@user.salt, @auth[:B]] %> diff --git a/example/views/ok.erb b/example/views/ok.erb deleted file mode 100644 index b0d4f93..0000000 --- a/example/views/ok.erb +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ok/> diff --git a/example/views/salt.erb b/example/views/salt.erb deleted file mode 100644 index 5b34b93..0000000 --- a/example/views/salt.erb +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<salt><%="%x" % @user.salt %></salt> diff --git a/example/views/xml.erb b/example/views/xml.erb deleted file mode 100644 index 0e2dcc2..0000000 --- a/example/views/xml.erb +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<%= yield %> |