keybase-core 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +5 -13
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/Gemfile.lock +19 -5
  5. data/README.md +20 -7
  6. data/certs/seanhandley.pem +21 -0
  7. data/{keybase.gemspec → keybase-core.gemspec} +10 -5
  8. data/lib/keybase-core.rb +52 -0
  9. data/lib/{keybase → keybase-core}/crypto.rb +1 -1
  10. data/lib/{keybase → keybase-core}/error.rb +3 -3
  11. data/lib/{keybase → keybase-core}/models/dump.rb +2 -2
  12. data/lib/{keybase → keybase-core}/models/user.rb +19 -12
  13. data/lib/{keybase → keybase-core}/request/base.rb +3 -3
  14. data/lib/{keybase → keybase-core}/request/dump/all.rb +1 -1
  15. data/lib/{keybase → keybase-core}/request/dump/latest.rb +1 -1
  16. data/lib/{keybase → keybase-core}/request/key/add.rb +1 -1
  17. data/lib/{keybase → keybase-core}/request/key/revoke.rb +1 -1
  18. data/lib/{keybase → keybase-core}/request/root/get_salt_and_login_session.rb +1 -1
  19. data/lib/{keybase → keybase-core}/request/root/login.rb +1 -1
  20. data/lib/keybase-core/request/session/kill_all.rb +11 -0
  21. data/lib/{keybase → keybase-core}/request/sig/post_auth.rb +1 -1
  22. data/lib/{keybase → keybase-core}/request/user/lookup.rb +1 -1
  23. data/lib/{keybase → keybase-core}/response.rb +1 -1
  24. data/lib/{keybase → keybase-core}/token_store.rb +1 -1
  25. data/test/integration/dumps_test.rb +3 -3
  26. data/test/integration/keys_test.rb +1 -1
  27. data/test/integration/login_users_test.rb +4 -3
  28. data/test/integration/lookup_users_test.rb +5 -5
  29. data/test/test_helper.rb +4 -2
  30. data/test/unit/lib/{keybase → keybase-core}/crypto_test.rb +1 -1
  31. data/test/unit/lib/{keybase → keybase-core}/error_test.rb +2 -2
  32. data/test/unit/lib/{keybase → keybase-core}/models/dump_test.rb +4 -4
  33. data/test/unit/lib/{keybase → keybase-core}/models/user_test.rb +21 -15
  34. data/test/unit/lib/{keybase → keybase-core}/requests/base_test.rb +5 -5
  35. data/test/unit/lib/{keybase → keybase-core}/requests/dump/all_test.rb +1 -1
  36. data/test/unit/lib/{keybase → keybase-core}/requests/dump/latest_test.rb +1 -1
  37. data/test/unit/lib/{keybase → keybase-core}/requests/key/add_test.rb +1 -1
  38. data/test/unit/lib/{keybase → keybase-core}/requests/key/revoke_test.rb +1 -1
  39. data/test/unit/lib/{keybase → keybase-core}/requests/root/get_salt_test.rb +1 -1
  40. data/test/unit/lib/{keybase → keybase-core}/requests/root/login_test.rb +1 -1
  41. data/test/unit/lib/keybase-core/requests/session/kill_all.rb +19 -0
  42. data/test/unit/lib/{keybase → keybase-core}/requests/sig/post_auth_test.rb +1 -1
  43. data/test/unit/lib/{keybase → keybase-core}/requests/user/lookup_test.rb +1 -1
  44. data/test/unit/lib/{keybase → keybase-core}/response_test.rb +2 -2
  45. data/test/unit/lib/{keybase → keybase-core}/token_store_test.rb +1 -1
  46. data/test/unit/lib/{keybase_test.rb → keybase_core_test.rb} +4 -4
  47. data/test/vcr_cassettes/user_login.yml +113 -43
  48. metadata +98 -59
  49. metadata.gz.sig +0 -0
  50. data/lib/keybase.rb +0 -49
@@ -1,7 +1,7 @@
1
1
  # POST sig/post_auth.json
2
2
  # sig : "----- BEGIN PGP MESSAGE ----- ..."
3
3
  # email_or_username : "maxtaco"
4
- module Keybase
4
+ module Keybase::Core
5
5
  module Request
6
6
  class Sig < Base
7
7
  def self.post_auth(email_or_username, sig)
@@ -1,5 +1,5 @@
1
1
  # GET /user/lookup.json?username=USERNAME
2
- module Keybase
2
+ module Keybase::Core
3
3
  module Request
4
4
  class User < Base
5
5
  def self.lookup(username)
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
  # @private
3
3
  class Response
4
4
 
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
  # @private
3
3
  class TokenStore
4
4
 
@@ -1,13 +1,13 @@
1
1
  require_relative '../test_helper'
2
2
  require_relative '../integration_test_helper'
3
3
 
4
- module Keybase
4
+ module Keybase::Core
5
5
  class DumpsIntegrationTest < Minitest::Test
6
6
 
7
7
  def setup
8
8
  VCR.use_cassette('dumps') do
9
- @all = Keybase.dump_all
10
- @latest = Keybase.dump_latest
9
+ @all = Keybase::Core.dump_all
10
+ @latest = Keybase::Core.dump_latest
11
11
  end
12
12
  end
13
13
 
@@ -1,7 +1,7 @@
1
1
  require_relative '../test_helper'
2
2
  require_relative '../integration_test_helper'
3
3
 
4
- module Keybase
4
+ module Keybase::Core
5
5
  class KeysIntegrationTest < Minitest::Test
6
6
 
7
7
  def setup
@@ -1,7 +1,7 @@
1
1
  require_relative '../test_helper'
2
2
  require_relative '../integration_test_helper'
3
3
 
4
- module Keybase
4
+ module Keybase::Core
5
5
  class LoginUsersIntegrationTest < Minitest::Test
6
6
 
7
7
  def test_login
@@ -9,8 +9,9 @@ module Keybase
9
9
  user = User.login('seanhandley', 'secret')
10
10
  assert_equal "secret", user.private_keys.primary.bundle
11
11
  assert_equal "dude@testing.com", user.emails.primary.email
12
- assert_equal 'lgHZIDA0MmNjYWYwMTMxZmZlZDNiZGE1MDAyM2M3ZGEzNzA4zlMxfzfOAAFRgMDEIPBYxx9HWUnY8GVK2rYzx29hOQW5DXDNkONntT1FjGxI', TokenStore.csrf
13
- assert_equal 'guest=lgHZIGJkM2E1MGNmMjBjNmQ0MzQwMmFhMDI4Mjc4YzJiZjA4zlMxfzjOAAFRgMDEINQblgb3pKa15JV58bI2VqKfWGvPFe3qcLUuq153%2Be7C; Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Tue, 25 Mar 2014 13:16:04 GMT; HttpOnly; Secure, session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlMxfzjOAeEzgNkgODViZmU1ZGI4MzM3NzM4NDk2MDRmZGIzOWZkM2UxMDLEII%2B6%2FmdEgDo74uwb%2BQDMrDt6m06NFhs0eQjX9popcagO; Max-Age=31536000; Domain=.keybase.io; Path=/; Expires=Wed, 25 Mar 2015 13:06:00 GMT; HttpOnly; Secure', TokenStore.cookie
12
+ assert_equal 'lgHZIGJmYmI4ZTQxMzE3YzU1N2VlYzc0MWZiMjE4ZDRjNjA4zlNMW3DOAAFRgMDEINPBJ1t4RDULa9V9gxQxmEfn31148DeUuyJJUI+pzS0A', TokenStore.csrf
13
+ assert_equal 'guest=lgHZIGYzM2JhODcxNmI1MWIwNjEwMmRiYzJjZjYyZDc2MDA4zlNMW3HOAAFRgMDEIO5SxHNTXW6adHXLZAWVcKHEsRCENKrdX5ORk%2FZHSJ3r; Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Mon, 14 Apr 2014 22:14:37 GMT; HttpOnly; Secure, session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlNMW3HOAeEzgNkgNDhkZWI1ZTAxNjdkZWU2MjMzZjYyODUzYjA3NDk1MDLEIOpnJ3YjyYV0Ia1irJDYIvGrXhcj3sATBJsOeQiPzS%2FT; Max-Age=31536000; Domain=.keybase.io; Path=/; Expires=Tue, 14 Apr 2015 22:04:33 GMT; HttpOnly; Secure', TokenStore.cookie
14
+ assert_equal true, user.logout
14
15
  end
15
16
  end
16
17
 
@@ -1,12 +1,12 @@
1
1
  require_relative '../test_helper'
2
2
  require_relative '../integration_test_helper'
3
3
 
4
- module Keybase
4
+ module Keybase::Core
5
5
  class LookupUsersIntegrationTest < Minitest::Test
6
6
 
7
7
  def setup
8
8
  VCR.use_cassette('user_lookup_foo') do
9
- @user = Keybase.lookup("foo")
9
+ @user = Keybase::Core.lookup("foo")
10
10
  end
11
11
  end
12
12
 
@@ -16,7 +16,7 @@ module Keybase
16
16
 
17
17
  def test_user_not_found
18
18
  VCR.use_cassette('user_lookup_not_found') do
19
- assert_raises(Keybase::UserNotFoundError, 'user not found foofoofooofo') do
19
+ assert_raises(Keybase::Core::UserNotFoundError, 'user not found foofoofooofo') do
20
20
  @user = User.lookup('foofoofooofo')
21
21
  end
22
22
  end
@@ -24,7 +24,7 @@ module Keybase
24
24
 
25
25
  def test_username_missing
26
26
  VCR.use_cassette('user_lookup_missing') do
27
- assert_raises(Keybase::InputError, 'missing or invalid input. username: missing name') do
27
+ assert_raises(Keybase::Core::InputError, 'missing or invalid input. username: missing name') do
28
28
  @user = User.lookup('')
29
29
  end
30
30
  end
@@ -32,7 +32,7 @@ module Keybase
32
32
 
33
33
  def test_username_invalid
34
34
  VCR.use_cassette('user_lookup_invalid') do
35
- assert_raises(Keybase::InputError, 'missing or invalid input. username: invalid name') do
35
+ assert_raises(Keybase::Core::InputError, 'missing or invalid input. username: invalid name') do
36
36
  @user = User.lookup('d8dw9sfu83u39229i9fewdsi0-fdsii-i')
37
37
  end
38
38
  end
@@ -1,10 +1,12 @@
1
- if require 'simplecov'
1
+ require 'simplecov'
2
+ if require 'coveralls'
3
+ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
2
4
  SimpleCov.start do
3
5
  add_filter '/test/'
4
6
  end
5
7
  end
6
8
 
7
- require_relative '../lib/keybase'
9
+ require_relative '../lib/keybase-core'
8
10
  EXAMPLE_USER_JSON = IO.read(File.expand_path('../fixtures/example_user.json', __FILE__))
9
11
  EXAMPLE_USER = JSON.parse(EXAMPLE_USER_JSON)
10
12
  EXAMPLE_DUMP_JSON = IO.read(File.expand_path('../fixtures/example_dump.json', __FILE__))
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
  require_relative '../../../test_helper'
3
3
 
4
4
  class CryptoTest < Minitest::Test
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
  require_relative '../../../test_helper'
3
3
 
4
4
  class ErrorTest < Minitest::Test
@@ -19,7 +19,7 @@ module Keybase
19
19
  end
20
20
 
21
21
  def test_behaviour_with_unknown_error_code
22
- assert_raises Keybase::Error do
22
+ assert_raises Keybase::Core::Error do
23
23
  begin
24
24
  Error.raise_unless_successful(@unknown)
25
25
  catch StandardError => e
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
 
3
3
  require_relative '../../../../test_helper'
4
4
 
@@ -8,8 +8,8 @@ module Keybase
8
8
  end
9
9
 
10
10
  def test_unix_time_parsed_to_date
11
- assert_equal "2014-02-24T18:46:31+00:00",
12
- @dump.created_at.to_s
11
+ assert_equal "2014-02-24 18:46:31 UTC",
12
+ @dump.created_at.utc.to_s
13
13
  end
14
14
 
15
15
  def test_dump_all
@@ -24,7 +24,7 @@ module Keybase
24
24
  def test_dump_latest
25
25
  Request::Dump.stub :latest, {'dump_id' => 1, 'ctime' => 1393267591} do
26
26
  assert_equal 1, Dump.latest.id
27
- assert_equal '2014-02-24T18:46:31+00:00', Dump.latest.created_at.to_s
27
+ assert_equal '2014-02-24 18:46:31 UTC', Dump.latest.created_at.utc.to_s
28
28
  end
29
29
  end
30
30
  end
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
 
3
3
  require_relative '../../../../test_helper'
4
4
 
@@ -14,29 +14,29 @@ module Keybase
14
14
  end
15
15
 
16
16
  def test_unix_times_parsed_to_dates_for_basics
17
- assert_equal "2013-10-30T19:24:21+00:00",
18
- @user.basics.created_at.to_s
19
- assert_equal "2013-10-30T19:41:01+00:00",
20
- @user.basics.updated_at.to_s
17
+ assert_equal "2013-10-30 19:24:21 UTC",
18
+ @user.basics.created_at.utc.to_s
19
+ assert_equal "2013-10-30 19:41:01 UTC",
20
+ @user.basics.updated_at.utc.to_s
21
21
  end
22
22
 
23
23
  def test_unix_times_parsed_to_dates_for_profile
24
- assert_equal "2013-10-31T19:22:19+00:00",
25
- @user.profile.updated_at.to_s
24
+ assert_equal "2013-10-31 19:22:19 UTC",
25
+ @user.profile.updated_at.utc.to_s
26
26
  end
27
27
 
28
28
  def test_unix_times_parsed_to_dates_for_public_keys
29
- assert_equal "2013-11-05T21:00:12+00:00",
30
- @user.public_keys.primary.created_at.to_s
31
- assert_equal "2013-11-05T21:00:12+00:00",
32
- @user.public_keys.primary.updated_at.to_s
29
+ assert_equal "2013-11-05 21:00:12 UTC",
30
+ @user.public_keys.primary.created_at.utc.to_s
31
+ assert_equal "2013-11-05 21:00:12 UTC",
32
+ @user.public_keys.primary.updated_at.utc.to_s
33
33
  end
34
34
 
35
35
  def test_unix_times_parsed_to_dates_for_private_keys
36
- assert_equal "2013-11-05T21:00:12+00:00",
37
- @user.private_keys.primary.created_at.to_s
38
- assert_equal "2013-11-05T21:00:12+00:00",
39
- @user.private_keys.primary.updated_at.to_s
36
+ assert_equal "2013-11-05 21:00:12 UTC",
37
+ @user.private_keys.primary.created_at.utc.to_s
38
+ assert_equal "2013-11-05 21:00:12 UTC",
39
+ @user.private_keys.primary.updated_at.utc.to_s
40
40
  end
41
41
 
42
42
  def test_emails_set_correctly
@@ -131,6 +131,12 @@ module Keybase
131
131
  assert @user.revoke_key(@kid)
132
132
  end
133
133
  end
134
+
135
+ def test_logout
136
+ Request::Session.stub(:post, true) do
137
+ assert Request::Session.kill_all
138
+ end
139
+ end
134
140
 
135
141
  end
136
142
  end
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
  require_relative '../../../../test_helper'
3
3
 
4
4
  module Request
@@ -12,7 +12,7 @@ module Keybase
12
12
  def test_get_returns_keybase_response
13
13
  Base.stub :conn, @conn do
14
14
  @conn.stub :get, nil do
15
- Keybase::Response.stub :new, @response do
15
+ Keybase::Core::Response.stub :new, @response do
16
16
  assert Base.get('foo', {})
17
17
  end
18
18
  end
@@ -23,7 +23,7 @@ module Keybase
23
23
  @mock = MiniTest::Mock.new
24
24
  @mock.expect(:get, @response, ['foo', { 'bar' => 'baz'}])
25
25
  Base.stub :conn, @mock do
26
- Keybase::Response.stub :new, @response do
26
+ Keybase::Core::Response.stub :new, @response do
27
27
  Base.get('foo', 'bar' => 'baz')
28
28
  end
29
29
  end
@@ -33,7 +33,7 @@ module Keybase
33
33
  def test_post_returns_keybase_response
34
34
  Base.stub :conn, @conn do
35
35
  @conn.stub :post, nil do
36
- Keybase::Response.stub :new, @response do
36
+ Keybase::Core::Response.stub :new, @response do
37
37
  assert Base.post('foo', {})
38
38
  end
39
39
  end
@@ -44,7 +44,7 @@ module Keybase
44
44
  @mock = MiniTest::Mock.new
45
45
  @mock.expect(:post, @response, ['foo', { 'bar' => 'baz'}])
46
46
  Base.stub :conn, @mock do
47
- Keybase::Response.stub :new, @response do
47
+ Keybase::Core::Response.stub :new, @response do
48
48
  Base.post('foo', 'bar' => 'baz')
49
49
  end
50
50
  end
@@ -1,6 +1,6 @@
1
1
  require_relative '../../../../../test_helper'
2
2
 
3
- module Keybase
3
+ module Keybase::Core
4
4
  module Request
5
5
  class DumpAllTest < Minitest::Test
6
6
  def setup
@@ -1,6 +1,6 @@
1
1
  require_relative '../../../../../test_helper'
2
2
 
3
- module Keybase
3
+ module Keybase::Core
4
4
  module Request
5
5
  class DumpLatestTest < Minitest::Test
6
6
  def setup
@@ -1,6 +1,6 @@
1
1
  require_relative '../../../../../test_helper'
2
2
 
3
- module Keybase
3
+ module Keybase::Core
4
4
  module Request
5
5
  class KeyAddTest < Minitest::Test
6
6
 
@@ -1,6 +1,6 @@
1
1
  require_relative '../../../../../test_helper'
2
2
 
3
- module Keybase
3
+ module Keybase::Core
4
4
  module Request
5
5
  class KeyRevokeTest < Minitest::Test
6
6
 
@@ -1,6 +1,6 @@
1
1
  require_relative '../../../../../test_helper'
2
2
 
3
- module Keybase
3
+ module Keybase::Core
4
4
  module Request
5
5
  class RootGetSaltTest < Minitest::Test
6
6
 
@@ -1,6 +1,6 @@
1
1
  require_relative '../../../../../test_helper'
2
2
 
3
- module Keybase
3
+ module Keybase::Core
4
4
  module Request
5
5
  class RootLoginTest < Minitest::Test
6
6
 
@@ -0,0 +1,19 @@
1
+ require_relative '../../../../../test_helper'
2
+
3
+ module Keybase::Core
4
+ module Request
5
+ class SessionKillAllTest < Minitest::Test
6
+
7
+ def setup
8
+ @response = { }
9
+ end
10
+
11
+ def test_session_kill_all_true
12
+ Base.stub :post, @response do
13
+ assert Request::Session.kill_all
14
+ end
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -1,6 +1,6 @@
1
1
  require_relative '../../../../../test_helper'
2
2
 
3
- module Keybase
3
+ module Keybase::Core
4
4
  module Request
5
5
  class SigPostAuthTest < Minitest::Test
6
6
 
@@ -1,6 +1,6 @@
1
1
  require_relative '../../../../../test_helper'
2
2
 
3
- module Keybase
3
+ module Keybase::Core
4
4
  module Request
5
5
  class UserLookupTest < Minitest::Test
6
6
  def setup
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
  require_relative '../../../test_helper'
3
3
 
4
4
  class ResponseTest < Minitest::Test
@@ -14,7 +14,7 @@ module Keybase
14
14
 
15
15
  def test_raises_user_not_found
16
16
  @response.stub :body, {'status' => {'code' => 205, 'desc' => 'User not found'}}.to_json do
17
- assert_raises(Keybase::UserNotFoundError, 'User not found') do
17
+ assert_raises(Keybase::Core::UserNotFoundError, 'User not found') do
18
18
  Response.new(@response)
19
19
  end
20
20
  end
@@ -1,4 +1,4 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
  require_relative '../../../test_helper'
3
3
 
4
4
  class TokenStoreTest < Minitest::Test
@@ -1,23 +1,23 @@
1
- module Keybase
1
+ module Keybase::Core
2
2
 
3
3
  require_relative '../../test_helper'
4
4
 
5
5
  class KeybaseTest < Minitest::Test
6
6
  def test_keybase_calls_user_lookup
7
7
  User.stub :lookup, true do
8
- assert_equal true, Keybase.lookup('foo')
8
+ assert_equal true, Keybase::Core.lookup('foo')
9
9
  end
10
10
  end
11
11
 
12
12
  def test_keybase_calls_dump_all
13
13
  Dump.stub :all, true do
14
- assert_equal true, Keybase.dump_all
14
+ assert_equal true, Keybase::Core.dump_all
15
15
  end
16
16
  end
17
17
 
18
18
  def test_keybase_calls_dump_latest
19
19
  Dump.stub :latest, true do
20
- assert_equal true, Keybase.dump_latest
20
+ assert_equal true, Keybase::Core.dump_latest
21
21
  end
22
22
  end
23
23
 
@@ -7,6 +7,14 @@ http_interactions:
7
7
  encoding: US-ASCII
8
8
  string: ''
9
9
  headers:
10
+ Cookie:
11
+ - guest=lgHZIDI1ZmRlMjZhZGQ5ZTZjNzNlOWQ2Yzg4NmVjN2M3MjA4zlMxgOvOAAFRgMDEID27s4G4rgbr7Q8kINyCbeDXMR3Tk1H%2BEOKFkrsRGnJN;
12
+ Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Tue, 25 Mar 2014 13:23:20
13
+ GMT; HttpOnly; Secure, session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlMxgOvOAeEzgNkgNjkxYzlmOWI0ODA2N2IxM2JjN2I5ZDBmMTBlOGE2MDLEIJmFmQo450P8iz0TItrkA33%2Frtwyt9rhdcmpSYjxZ2h4;
14
+ Max-Age=31536000; Domain=.keybase.io; Path=/; Expires=Wed, 25 Mar 2015 13:13:15
15
+ GMT; HttpOnly; Secure
16
+ X-Csrf-Token:
17
+ - lgHZIDVhMDMwZmZlMTk3YjIwOWU2MDM2MGFkYTg4M2UwYTA4zlMxgOvOAAFRgMDEIN9EVcSYlQT55aj+cnieTT8YhPYszpo0trf8xN1XXepy
10
18
  User-Agent:
11
19
  - Faraday v0.9.0
12
20
  Accept-Encoding:
@@ -19,9 +27,9 @@ http_interactions:
19
27
  message: OK
20
28
  headers:
21
29
  Server:
22
- - nginx/1.4.3
30
+ - nginx/1.4.7
23
31
  Date:
24
- - Tue, 25 Mar 2014 13:05:59 GMT
32
+ - Mon, 14 Apr 2014 22:04:32 GMT
25
33
  Content-Type:
26
34
  - application/json; charset=utf-8
27
35
  Content-Length:
@@ -33,15 +41,15 @@ http_interactions:
33
41
  Strict-Transport-Security:
34
42
  - max-age=31536000
35
43
  Set-Cookie:
36
- - guest=lgHZIDA0MmNjYWYwMTMxZmZlZDNiZGE1MDAyM2M3ZGEzNzA4zlMxfzfOAAFRgMDEICcDJkfb9Dx%2B3zOwXf0uinslHFcRbVhcblMfROqL7d8%2B;
37
- Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Tue, 25 Mar 2014 13:16:04
44
+ - guest=lgHZIGJmYmI4ZTQxMzE3YzU1N2VlYzc0MWZiMjE4ZDRjNjA4zlNMW3DOAAFRgMDEIACBEdeTdwduaYHTkgtrVO5wnaTdL4LW30TWG0%2B8HEG3;
45
+ Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Mon, 14 Apr 2014 22:14:37
38
46
  GMT; HttpOnly; Secure
39
47
  Expires:
40
48
  - "-1"
41
49
  Cache-Control:
42
50
  - must-revalidate, private
43
51
  Etag:
44
- - "\"-995079555\""
52
+ - "\"510021544\""
45
53
  body:
46
54
  encoding: UTF-8
47
55
  string: |-
@@ -50,23 +58,29 @@ http_interactions:
50
58
  "code": 0,
51
59
  "name": "OK"
52
60
  },
53
- "guest_id": "042ccaf0131ffed3bda50023c7da3708",
54
- "salt": "a64952fa509406dcd9b3b26b696ab5d0",
55
- "login_session": "lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlMxfzfNASzAxCDt2SoFRFcwv131WjjMslvJldcxobU5ZdG+6OvX86uq5A==",
61
+ "guest_id": "bfbb8e41317c557eec741fb218d4c608",
62
+ "salt": "salt",
63
+ "login_session": "lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlNMW3DNASzAxCACS6xHYzDITHa6pbKGoa0xtwKgt2IPYL7VPKX6Vph/9w==",
56
64
  "pwh_version": 3,
57
- "csrf_token": "lgHZIDA0MmNjYWYwMTMxZmZlZDNiZGE1MDAyM2M3ZGEzNzA4zlMxfzfOAAFRgMDEIPBYxx9HWUnY8GVK2rYzx29hOQW5DXDNkONntT1FjGxI"
65
+ "csrf_token": "lgHZIGJmYmI4ZTQxMzE3YzU1N2VlYzc0MWZiMjE4ZDRjNjA4zlNMW3DOAAFRgMDEINPBJ1t4RDULa9V9gxQxmEfn31148DeUuyJJUI+pzS0A"
58
66
  }
59
67
  http_version:
60
- recorded_at: Tue, 25 Mar 2014 13:06:25 GMT
68
+ recorded_at: Mon, 14 Apr 2014 22:04:32 GMT
61
69
  - request:
62
70
  method: post
63
71
  uri: https://keybase.io/_/api/1.0/login.json
64
72
  body:
65
73
  encoding: UTF-8
66
- string: email_or_username=seanhandley&hmac_pwh=9c1b51658ab062c506ebcebc981831f77f468c793cf0d4a83e731e1bbaa49a5e1dce96c47d5ce3068c620e51f0a23d4945d4b6b30c59fada6976c487c59a0742&login_session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlMxfzfNASzAxCDt2SoFRFcwv131WjjMslvJldcxobU5ZdG%2B6OvX86uq5A%3D%3D
74
+ string: email_or_username=seanhandley&hmac_pwh=6629b3e3e7a692f8bd702ab32035c7d6ab9b0aa9729f62ae5b25ef86e457b44e8bd79a294d240afeedb4b4264e8b9dbe49ceb9c87191781c4774c913417ace52&login_session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlNMW3DNASzAxCACS6xHYzDITHa6pbKGoa0xtwKgt2IPYL7VPKX6Vph%2F9w%3D%3D
67
75
  headers:
76
+ Cookie:
77
+ - guest=lgHZIDI1ZmRlMjZhZGQ5ZTZjNzNlOWQ2Yzg4NmVjN2M3MjA4zlMxgOvOAAFRgMDEID27s4G4rgbr7Q8kINyCbeDXMR3Tk1H%2BEOKFkrsRGnJN;
78
+ Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Tue, 25 Mar 2014 13:23:20
79
+ GMT; HttpOnly; Secure, session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlMxgOvOAeEzgNkgNjkxYzlmOWI0ODA2N2IxM2JjN2I5ZDBmMTBlOGE2MDLEIJmFmQo450P8iz0TItrkA33%2Frtwyt9rhdcmpSYjxZ2h4;
80
+ Max-Age=31536000; Domain=.keybase.io; Path=/; Expires=Wed, 25 Mar 2015 13:13:15
81
+ GMT; HttpOnly; Secure
68
82
  X-Csrf-Token:
69
- - lgHZIDA0MmNjYWYwMTMxZmZlZDNiZGE1MDAyM2M3ZGEzNzA4zlMxfzfOAAFRgMDEIPBYxx9HWUnY8GVK2rYzx29hOQW5DXDNkONntT1FjGxI
83
+ - lgHZIGJmYmI4ZTQxMzE3YzU1N2VlYzc0MWZiMjE4ZDRjNjA4zlNMW3DOAAFRgMDEINPBJ1t4RDULa9V9gxQxmEfn31148DeUuyJJUI+pzS0A
70
84
  User-Agent:
71
85
  - Faraday v0.9.0
72
86
  Content-Type:
@@ -81,13 +95,13 @@ http_interactions:
81
95
  message: OK
82
96
  headers:
83
97
  Server:
84
- - nginx/1.4.3
98
+ - nginx/1.4.7
85
99
  Date:
86
- - Tue, 25 Mar 2014 13:06:00 GMT
100
+ - Mon, 14 Apr 2014 22:04:33 GMT
87
101
  Content-Type:
88
102
  - application/json; charset=utf-8
89
103
  Content-Length:
90
- - '14298'
104
+ - '14322'
91
105
  Connection:
92
106
  - keep-alive
93
107
  X-Powered-By:
@@ -95,11 +109,11 @@ http_interactions:
95
109
  Strict-Transport-Security:
96
110
  - max-age=31536000
97
111
  Set-Cookie:
98
- - guest=lgHZIGJkM2E1MGNmMjBjNmQ0MzQwMmFhMDI4Mjc4YzJiZjA4zlMxfzjOAAFRgMDEINQblgb3pKa15JV58bI2VqKfWGvPFe3qcLUuq153%2Be7C;
99
- Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Tue, 25 Mar 2014 13:16:04
112
+ - guest=lgHZIGYzM2JhODcxNmI1MWIwNjEwMmRiYzJjZjYyZDc2MDA4zlNMW3HOAAFRgMDEIO5SxHNTXW6adHXLZAWVcKHEsRCENKrdX5ORk%2FZHSJ3r;
113
+ Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Mon, 14 Apr 2014 22:14:37
100
114
  GMT; HttpOnly; Secure
101
- - session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlMxfzjOAeEzgNkgODViZmU1ZGI4MzM3NzM4NDk2MDRmZGIzOWZkM2UxMDLEII%2B6%2FmdEgDo74uwb%2BQDMrDt6m06NFhs0eQjX9popcagO;
102
- Max-Age=31536000; Domain=.keybase.io; Path=/; Expires=Wed, 25 Mar 2015 13:06:00
115
+ - session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlNMW3HOAeEzgNkgNDhkZWI1ZTAxNjdkZWU2MjMzZjYyODUzYjA3NDk1MDLEIOpnJ3YjyYV0Ia1irJDYIvGrXhcj3sATBJsOeQiPzS%2FT;
116
+ Max-Age=31536000; Domain=.keybase.io; Path=/; Expires=Tue, 14 Apr 2015 22:04:33
103
117
  GMT; HttpOnly; Secure
104
118
  body:
105
119
  encoding: UTF-8
@@ -109,19 +123,19 @@ http_interactions:
109
123
  "code": 0,
110
124
  "name": "OK"
111
125
  },
112
- "guest_id": "bd3a50cf20c6d43402aa028278c2bf08",
113
- "session": "lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlMxfzjOAeEzgNkgODViZmU1ZGI4MzM3NzM4NDk2MDRmZGIzOWZkM2UxMDLEII+6/mdEgDo74uwb+QDMrDt6m06NFhs0eQjX9popcagO",
114
- "uid": "e720f5a4cce9c60f94538d30959e7100",
126
+ "guest_id": "f33ba8716b51b06102dbc2cf62d76008",
127
+ "session": "lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlNMW3HOAeEzgNkgNDhkZWI1ZTAxNjdkZWU2MjMzZjYyODUzYjA3NDk1MDLEIOpnJ3YjyYV0Ia1irJDYIvGrXhcj3sATBJsOeQiPzS/T",
128
+ "uid": "1",
115
129
  "me": {
116
- "id": "e720f5a4cce9c60f94538d30959e7100",
130
+ "id": "1",
117
131
  "basics": {
118
132
  "username": "seanhandley",
119
133
  "ctime": 1394719469,
120
134
  "mtime": 1394719469,
121
- "id_version": 11,
122
- "track_version": 9,
123
- "last_id_change": 1395752675,
124
- "salt": "a64952fa509406dcd9b3b26b696ab5d0"
135
+ "id_version": 28,
136
+ "track_version": 11,
137
+ "last_id_change": 1395870234,
138
+ "salt": "a"
125
139
  },
126
140
  "invitation_stats": {
127
141
  "available": 0,
@@ -130,10 +144,10 @@ http_interactions:
130
144
  "open": 0
131
145
  },
132
146
  "profile": {
133
- "mtime": 1394830113,
147
+ "mtime": 1395870263,
134
148
  "full_name": "Sean Handley",
135
149
  "location": "Manchester, UK",
136
- "bio": "I use open source languages, technologies and systems to solve problems."
150
+ "bio": "I use open source languages, technologies and systems to solve (and, sometimes cause) problems."
137
151
  },
138
152
  "emails": {
139
153
  "primary": {
@@ -143,34 +157,90 @@ http_interactions:
143
157
  },
144
158
  "public_keys": {
145
159
  "primary": {
146
- "kid": "010170cb70407fabc41c72a03201b061c895f7c2b478d613aeb28f5a52f4725674000a",
160
+ "kid": "secret",
147
161
  "key_type": 1,
148
- "bundle": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: Keybase OpenPGP v0.1.1\nComment: https://keybase.io/crypto\n\n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\n=Iq71\n-----END PGP PUBLIC KEY BLOCK-----",
149
- "mtime": 1395752675,
150
- "ctime": 1395752675,
151
- "ukbid": "3200ab8dff3054fb0b2f92572c9bbc11",
152
- "key_fingerprint": "5a92216efbf5802ee8e77bc4388b381109627697"
162
+ "bundle": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: Keybase OpenPGP v0.1.1\nComment: https://keybase.io/crypto\n\n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\n=l2sl\n-----END PGP PUBLIC KEY BLOCK-----",
163
+ "mtime": 1395753196,
164
+ "ctime": 1395753196,
165
+ "ukbid": "1e84cc13e87130ca24cfaf6f704f1711",
166
+ "key_fingerprint": "3d5a1e2c0f9d2ec2c5f67afe07ab1775ef126f8d"
153
167
  }
154
168
  },
155
169
  "private_keys": {
156
170
  "primary": {
157
- "kid": "010170cb70407fabc41c72a03201b061c895f7c2b478d613aeb28f5a52f4725674000a",
171
+ "kid": "secret",
158
172
  "key_type": 2,
159
173
  "bundle": "secret",
160
- "mtime": 1395752675,
161
- "ctime": 1395752675
174
+ "mtime": 1395753197,
175
+ "ctime": 1395753197
162
176
  }
163
177
  },
164
178
  "sigs": {
165
179
  "last": {
166
- "sig_id": "08409d3257bbd7f4c01a009b05dccf93f2fe7fcc113df9929b71616a2a5346300f",
167
- "seqno": 11,
168
- "payload_hash": "f1014d7a49f12733aab197ca6d9f7957424df16c5bc27590d7549813139ba5cd"
180
+ "sig_id": "secret",
181
+ "seqno": 18,
182
+ "payload_hash": "secret"
169
183
  }
170
184
  }
171
185
  },
172
- "csrf_token": "lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlMxftDOAAFRgMDEIA8bUlzQnZvTPUFj4y+VUt9whvsam2C3HClE9VPJqNWZ"
186
+ "csrf_token": "lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlNMW3HOAAFRgMDEIIQBAE1ZpGaNr9mQ5lWOgEhZkeRPAM+ZhlvbkvakYtvy"
187
+ }
188
+ http_version:
189
+ recorded_at: Mon, 14 Apr 2014 22:04:32 GMT
190
+ - request:
191
+ method: post
192
+ uri: https://keybase.io/_/api/1.0/session/killall.json
193
+ body:
194
+ encoding: UTF-8
195
+ string: csrf_token=lgHZIGJmYmI4ZTQxMzE3YzU1N2VlYzc0MWZiMjE4ZDRjNjA4zlNMW3DOAAFRgMDEINPBJ1t4RDULa9V9gxQxmEfn31148DeUuyJJUI%2BpzS0A
196
+ headers:
197
+ Cookie:
198
+ - guest=lgHZIGYzM2JhODcxNmI1MWIwNjEwMmRiYzJjZjYyZDc2MDA4zlNMW3HOAAFRgMDEIO5SxHNTXW6adHXLZAWVcKHEsRCENKrdX5ORk%2FZHSJ3r;
199
+ Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Mon, 14 Apr 2014 22:14:37
200
+ GMT; HttpOnly; Secure, session=lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlNMW3HOAeEzgNkgNDhkZWI1ZTAxNjdkZWU2MjMzZjYyODUzYjA3NDk1MDLEIOpnJ3YjyYV0Ia1irJDYIvGrXhcj3sATBJsOeQiPzS%2FT;
201
+ Max-Age=31536000; Domain=.keybase.io; Path=/; Expires=Tue, 14 Apr 2015 22:04:33
202
+ GMT; HttpOnly; Secure
203
+ X-Csrf-Token:
204
+ - lgHZIGJmYmI4ZTQxMzE3YzU1N2VlYzc0MWZiMjE4ZDRjNjA4zlNMW3DOAAFRgMDEINPBJ1t4RDULa9V9gxQxmEfn31148DeUuyJJUI+pzS0A
205
+ User-Agent:
206
+ - Faraday v0.9.0
207
+ Content-Type:
208
+ - application/x-www-form-urlencoded
209
+ Accept-Encoding:
210
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
211
+ Accept:
212
+ - "*/*"
213
+ response:
214
+ status:
215
+ code: 200
216
+ message: OK
217
+ headers:
218
+ Server:
219
+ - nginx/1.4.7
220
+ Date:
221
+ - Mon, 14 Apr 2014 22:04:33 GMT
222
+ Content-Type:
223
+ - application/json; charset=utf-8
224
+ Content-Length:
225
+ - '181'
226
+ Connection:
227
+ - keep-alive
228
+ X-Powered-By:
229
+ - Express
230
+ Strict-Transport-Security:
231
+ - max-age=31536000
232
+ Set-Cookie:
233
+ - session=; Domain=.keybase.io; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT
234
+ body:
235
+ encoding: UTF-8
236
+ string: |-
237
+ {
238
+ "status": {
239
+ "code": 0,
240
+ "name": "OK"
241
+ },
242
+ "csrf_token": "lgHZIGU3MjBmNWE0Y2NlOWM2MGY5NDUzOGQzMDk1OWU3MTAwzlNMW3HOAAFRgMDEIIQBAE1ZpGaNr9mQ5lWOgEhZkeRPAM+ZhlvbkvakYtvy"
173
243
  }
174
244
  http_version:
175
- recorded_at: Tue, 25 Mar 2014 13:06:26 GMT
245
+ recorded_at: Mon, 14 Apr 2014 22:04:33 GMT
176
246
  recorded_with: VCR 2.8.0