ruby-srp 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/srp/session.rb +14 -1
- data/lib/srp/util.rb +1 -1
- data/ruby-srp.gemspec +1 -1
- data/test/session_test.rb +16 -1
- metadata +3 -3
data/lib/srp/session.rb
CHANGED
@@ -27,12 +27,24 @@ module SRP
|
|
27
27
|
|
28
28
|
def authenticate(m)
|
29
29
|
if(m == calculate_m(server_secret))
|
30
|
-
return calculate_m2
|
30
|
+
return @m2 = calculate_m2
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_json(options={})
|
35
|
+
if @m2
|
36
|
+
{ :M2 => @m2.to_s(16) }.to_json(options)
|
37
|
+
else
|
38
|
+
{ :B => bb.to_s(16),
|
39
|
+
# :b => @b.to_s(16), # only use for debugging
|
40
|
+
:salt => @user.salt.to_s(16)
|
41
|
+
}.to_json(options)
|
31
42
|
end
|
32
43
|
end
|
33
44
|
|
34
45
|
protected
|
35
46
|
|
47
|
+
|
36
48
|
# only seed b for testing purposes.
|
37
49
|
def initialize_server(aa, b = nil)
|
38
50
|
@aa = aa
|
@@ -80,6 +92,7 @@ module SRP
|
|
80
92
|
def calculate_u
|
81
93
|
sha256_int(@aa, @bb).hex
|
82
94
|
end
|
95
|
+
|
83
96
|
end
|
84
97
|
end
|
85
98
|
|
data/lib/srp/util.rb
CHANGED
data/ruby-srp.gemspec
CHANGED
data/test/session_test.rb
CHANGED
@@ -24,5 +24,20 @@ class SessionTest < Test::Unit::TestCase
|
|
24
24
|
assert_equal m2, session.authenticate(m)
|
25
25
|
end
|
26
26
|
|
27
|
-
|
27
|
+
def test_zero_padded_salt
|
28
|
+
@username = "RLNFB7"
|
29
|
+
password = "NRH9NRT958BO"
|
30
|
+
@salt = "0401b02e".hex
|
31
|
+
@verifier = "943c7bf983b9afd0e08ba7d9c9da68cbf8bc88f05d564f002bd669130bb66ceb2b5aafa5c4a9cac09f42a17f7079b67a964365022283cc249446a165ca9e02855d188ca193bf0b4703d0d83254623e3e91576ba1f3b353981836226f3e9c36b7592a6a0daa608018273e7d3a3cb8615eee3606af9eec4a83e1947c8717f9415e".hex
|
32
|
+
aa = "ea40a95b4ccf1934767e9098f0f5639f5b83321eb77137f3c7b50bb90323651ebbe14b08956e471d4b96ae12c96814fbc56bfe408afd4cffca17d53dc30653a2e9e0e57f5b97e8736a5a90470708a32f63e6417651303e331d6c3bf3d229379dd746fb9f47220ee52b6da008ce88710de27c058841d56644d58e98e1c8795371".hex
|
33
|
+
b = "78e12fc099be1409e0fce3bf84484d89d58710bcc3d8a0e05227fb291be3fb28".hex
|
34
|
+
bb = "d8d50a862b7e8a897f8b0554c4a474e8aa152bd08f23436773fbb977e81cbf5e8262937ffb7ad6b72e3aa7f72deec947cdb286ab466e490d7c544bf443331ad12657c8f9bb2aabf508b73ea1ed29d03a060f5f2a70baef858bdb79c5c878844c058fe10c2cc746b0fb701e98d8d6405ab7d0b65bb4f87cf8e47b25ae4ee6e53b".hex
|
35
|
+
m = "d5cbec7254ce66f421ceddbfe8a0a8991b5be2aa9c25d868f073f4459dfc358b".hex
|
36
|
+
client = SRP::Client.new(@username, password, @salt)
|
37
|
+
assert_equal @verifier.to_s(16), client.verifier.to_s(16)
|
38
|
+
session = SRP::Session.new(self, aa)
|
39
|
+
session.send(:initialize_server, aa, b) # seeding b to compare to py_srp
|
40
|
+
assert_equal bb.to_s(16), session.bb.to_s(16)
|
41
|
+
assert session.authenticate(m)
|
42
|
+
end
|
28
43
|
end
|
metadata
CHANGED