keybase-core 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +19 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +3 -0
  5. data/Gemfile +2 -0
  6. data/Gemfile.lock +49 -0
  7. data/LICENSE +23 -0
  8. data/README.md +137 -0
  9. data/Rakefile +20 -0
  10. data/keybase.gemspec +25 -0
  11. data/lib/keybase.rb +49 -0
  12. data/lib/keybase/crypto.rb +20 -0
  13. data/lib/keybase/error.rb +37 -0
  14. data/lib/keybase/models/dump.rb +33 -0
  15. data/lib/keybase/models/user.rb +168 -0
  16. data/lib/keybase/request/base.rb +32 -0
  17. data/lib/keybase/request/dump/all.rb +10 -0
  18. data/lib/keybase/request/dump/latest.rb +10 -0
  19. data/lib/keybase/request/key/add.rb +13 -0
  20. data/lib/keybase/request/key/revoke.rb +14 -0
  21. data/lib/keybase/request/root/get_salt_and_login_session.rb +12 -0
  22. data/lib/keybase/request/root/login.rb +14 -0
  23. data/lib/keybase/request/sig/post_auth.rb +13 -0
  24. data/lib/keybase/request/user/lookup.rb +10 -0
  25. data/lib/keybase/response.rb +14 -0
  26. data/lib/keybase/token_store.rb +32 -0
  27. data/test/all.rb +6 -0
  28. data/test/fixtures/example_dump.json +9 -0
  29. data/test/fixtures/example_user.json +50 -0
  30. data/test/integration/dumps_test.rb +23 -0
  31. data/test/integration/keys_test.rb +26 -0
  32. data/test/integration/login_users_test.rb +18 -0
  33. data/test/integration/lookup_users_test.rb +42 -0
  34. data/test/integration_test_helper.rb +6 -0
  35. data/test/test_helper.rb +17 -0
  36. data/test/unit/lib/keybase/crypto_test.rb +45 -0
  37. data/test/unit/lib/keybase/error_test.rb +32 -0
  38. data/test/unit/lib/keybase/models/dump_test.rb +31 -0
  39. data/test/unit/lib/keybase/models/user_test.rb +136 -0
  40. data/test/unit/lib/keybase/requests/base_test.rb +60 -0
  41. data/test/unit/lib/keybase/requests/dump/all_test.rb +17 -0
  42. data/test/unit/lib/keybase/requests/dump/latest_test.rb +17 -0
  43. data/test/unit/lib/keybase/requests/key/add_test.rb +19 -0
  44. data/test/unit/lib/keybase/requests/key/revoke_test.rb +19 -0
  45. data/test/unit/lib/keybase/requests/root/get_salt_test.rb +23 -0
  46. data/test/unit/lib/keybase/requests/root/login_test.rb +19 -0
  47. data/test/unit/lib/keybase/requests/sig/post_auth_test.rb +19 -0
  48. data/test/unit/lib/keybase/requests/user/lookup_test.rb +17 -0
  49. data/test/unit/lib/keybase/response_test.rb +23 -0
  50. data/test/unit/lib/keybase/token_store_test.rb +25 -0
  51. data/test/unit/lib/keybase_test.rb +25 -0
  52. data/test/vcr_cassettes/dumps.yml +49418 -0
  53. data/test/vcr_cassettes/keys.yml +349 -0
  54. data/test/vcr_cassettes/user_login.yml +176 -0
  55. data/test/vcr_cassettes/user_lookup_foo.yml +89 -0
  56. data/test/vcr_cassettes/user_lookup_invalid.yml +52 -0
  57. data/test/vcr_cassettes/user_lookup_missing.yml +52 -0
  58. data/test/vcr_cassettes/user_lookup_not_found.yml +55 -0
  59. metadata +200 -0
@@ -0,0 +1,89 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://keybase.io/_/api/1.0/user/lookup.json?username=foo
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.3
23
+ Date:
24
+ - Sun, 23 Mar 2014 13:43:32 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Content-Length:
28
+ - '4523'
29
+ Connection:
30
+ - keep-alive
31
+ X-Powered-By:
32
+ - Express
33
+ Strict-Transport-Security:
34
+ - max-age=31536000
35
+ Set-Cookie:
36
+ - guest=lgHZIDQ2NzFjYWZmZGE3MzQ2YWIzM2QzYzY1ZWU1MTJiNDA4zlMu5QTOAAFRgMDEIGuOZbTvv8ek4yZTqN7864KpKBoyXw2xfaGYnj0sTSs1;
37
+ Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Sun, 23 Mar 2014 13:53:37
38
+ GMT; HttpOnly; Secure
39
+ Etag:
40
+ - "\"1807377587\""
41
+ body:
42
+ encoding: UTF-8
43
+ string: |-
44
+ {
45
+ "status": {
46
+ "code": 0,
47
+ "name": "OK"
48
+ },
49
+ "guest_id": "4671caffda7346ab33d3c65ee512b408",
50
+ "them": {
51
+ "id": "97839557ccbf46523fcfbe7196ad6f00",
52
+ "basics": {
53
+ "username": "foo",
54
+ "ctime": 1393646075,
55
+ "mtime": 1393646075,
56
+ "id_version": 1,
57
+ "track_version": 3,
58
+ "last_id_change": 1393646253
59
+ },
60
+ "profile": {
61
+ "mtime": 1393646143,
62
+ "full_name": "Erik Boettcher",
63
+ "location": "Pasadena, CA",
64
+ "bio": "Software engineer at the Jet Propulsion Laboratory"
65
+ },
66
+ "public_keys": {
67
+ "primary": {
68
+ "kid": "01011493a58d7ab2dba3b832bb39f7640b1eeca0539504c640cac8f727b40ed610bb0a",
69
+ "key_type": 1,
70
+ "bundle": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: Keybase OpenPGP JS 0.0.1\nComment: https://keybase.io/crypto\n\n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\n=6AGr\n-----END PGP PUBLIC KEY BLOCK-----",
71
+ "mtime": 1393646253,
72
+ "ctime": 1393646253,
73
+ "ukbid": "423a2cb9fb1d6e5bdfe4548cb60de111",
74
+ "key_fingerprint": "c65481ed61fd5f753f735588ee0b0da3b7a5deb2"
75
+ }
76
+ },
77
+ "sigs": {
78
+ "last": {
79
+ "sig_id": "b2f545766dc185f89ee616923fadcbfcffeeeb54e9626b45a7db6e1378add1ca0f",
80
+ "seqno": 3,
81
+ "payload_hash": "266f58c6c227f88eb70fdbca2f4df48ed0b464f5f0b58d04e30d8bac1db213c4"
82
+ }
83
+ }
84
+ },
85
+ "csrf_token": "lgHZIDQ2NzFjYWZmZGE3MzQ2YWIzM2QzYzY1ZWU1MTJiNDA4zlMu5QTOAAFRgMDEIBdXYE1s8bCrfrnog2rGg7v5HhXgXIxqr4xWptVG9cTi"
86
+ }
87
+ http_version:
88
+ recorded_at: Sun, 23 Mar 2014 13:43:54 GMT
89
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://keybase.io/_/api/1.0/user/lookup.json?username=d8dw9sfu83u39229i9fewdsi0-fdsii-i
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.3
23
+ Date:
24
+ - Sun, 16 Mar 2014 19:58:58 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Content-Length:
28
+ - '160'
29
+ Connection:
30
+ - keep-alive
31
+ X-Powered-By:
32
+ - Express
33
+ Strict-Transport-Security:
34
+ - max-age=31536000
35
+ Etag:
36
+ - "\"1429877151\""
37
+ body:
38
+ encoding: UTF-8
39
+ string: |-
40
+ {
41
+ "status": {
42
+ "code": 100,
43
+ "desc": "missing or invalid input",
44
+ "fields": {
45
+ "username": "invalid name"
46
+ },
47
+ "name": "INPUT_ERROR"
48
+ }
49
+ }
50
+ http_version:
51
+ recorded_at: Sun, 16 Mar 2014 19:59:05 GMT
52
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://keybase.io/_/api/1.0/user/lookup.json?username=
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.3
23
+ Date:
24
+ - Sun, 16 Mar 2014 19:58:59 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Content-Length:
28
+ - '160'
29
+ Connection:
30
+ - keep-alive
31
+ X-Powered-By:
32
+ - Express
33
+ Strict-Transport-Security:
34
+ - max-age=31536000
35
+ Etag:
36
+ - "\"410591839\""
37
+ body:
38
+ encoding: UTF-8
39
+ string: |-
40
+ {
41
+ "status": {
42
+ "code": 100,
43
+ "desc": "missing or invalid input",
44
+ "fields": {
45
+ "username": "missing name"
46
+ },
47
+ "name": "INPUT_ERROR"
48
+ }
49
+ }
50
+ http_version:
51
+ recorded_at: Sun, 16 Mar 2014 19:59:05 GMT
52
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://keybase.io/_/api/1.0/user/lookup.json?username=foofoofooofo
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.0
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.3
23
+ Date:
24
+ - Sun, 16 Mar 2014 17:54:21 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Content-Length:
28
+ - '283'
29
+ Connection:
30
+ - keep-alive
31
+ X-Powered-By:
32
+ - Express
33
+ Strict-Transport-Security:
34
+ - max-age=31536000
35
+ Set-Cookie:
36
+ - guest=lgHZIGQ5YTA1MWQ4NzFmM2NhMzkwZTQ5ODUyMzY2ZTUwYzA4zlMl5U3OAAFRgMDEIP3M%2Bj0OVhyf7bNQncqgtKT3fQNEQLivBYAeqSHi3vgg;
37
+ Max-Age=604.8; Domain=.keybase.io; Path=/; Expires=Sun, 16 Mar 2014 18:04:26
38
+ GMT; HttpOnly; Secure
39
+ Etag:
40
+ - "\"1066671616\""
41
+ body:
42
+ encoding: UTF-8
43
+ string: |-
44
+ {
45
+ "status": {
46
+ "code": 205,
47
+ "desc": "user not found foofoofooofo",
48
+ "name": "NOT_FOUND"
49
+ },
50
+ "guest_id": "d9a051d871f3ca390e49852366e50c08",
51
+ "csrf_token": "lgHZIGQ5YTA1MWQ4NzFmM2NhMzkwZTQ5ODUyMzY2ZTUwYzA4zlMl5U3OAAFRgMDEIBtOX1pI1pnSiI+0op+vru11ag2myj2lQotitpFvXj/1"
52
+ }
53
+ http_version:
54
+ recorded_at: Sun, 16 Mar 2014 17:54:28 GMT
55
+ recorded_with: VCR 2.8.0
metadata ADDED
@@ -0,0 +1,200 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: keybase-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Max Krohn
8
+ - Sean Handley
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-03-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: scrypt
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: 1.2.1
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 1.2.1
28
+ - !ruby/object:Gem::Dependency
29
+ name: faraday
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 0.9.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: 0.9.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: vcr
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: 2.8.0
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 2.8.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: webmock
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 1.8.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 1.8.0
70
+ - !ruby/object:Gem::Dependency
71
+ name: minitest
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 5.3.1
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: 5.3.1
84
+ - !ruby/object:Gem::Dependency
85
+ name: simplecov
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: 0.8.2
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ~>
96
+ - !ruby/object:Gem::Version
97
+ version: 0.8.2
98
+ - !ruby/object:Gem::Dependency
99
+ name: yard
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ version: 0.8.7.4
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: 0.8.7.4
112
+ description: Core Ruby lib for keybase.io
113
+ email: themax@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - .gitignore
119
+ - .ruby-version
120
+ - .travis.yml
121
+ - Gemfile
122
+ - Gemfile.lock
123
+ - LICENSE
124
+ - README.md
125
+ - Rakefile
126
+ - keybase.gemspec
127
+ - lib/keybase.rb
128
+ - lib/keybase/crypto.rb
129
+ - lib/keybase/error.rb
130
+ - lib/keybase/models/dump.rb
131
+ - lib/keybase/models/user.rb
132
+ - lib/keybase/request/base.rb
133
+ - lib/keybase/request/dump/all.rb
134
+ - lib/keybase/request/dump/latest.rb
135
+ - lib/keybase/request/key/add.rb
136
+ - lib/keybase/request/key/revoke.rb
137
+ - lib/keybase/request/root/get_salt_and_login_session.rb
138
+ - lib/keybase/request/root/login.rb
139
+ - lib/keybase/request/sig/post_auth.rb
140
+ - lib/keybase/request/user/lookup.rb
141
+ - lib/keybase/response.rb
142
+ - lib/keybase/token_store.rb
143
+ - test/all.rb
144
+ - test/fixtures/example_dump.json
145
+ - test/fixtures/example_user.json
146
+ - test/integration/dumps_test.rb
147
+ - test/integration/keys_test.rb
148
+ - test/integration/login_users_test.rb
149
+ - test/integration/lookup_users_test.rb
150
+ - test/integration_test_helper.rb
151
+ - test/test_helper.rb
152
+ - test/unit/lib/keybase/crypto_test.rb
153
+ - test/unit/lib/keybase/error_test.rb
154
+ - test/unit/lib/keybase/models/dump_test.rb
155
+ - test/unit/lib/keybase/models/user_test.rb
156
+ - test/unit/lib/keybase/requests/base_test.rb
157
+ - test/unit/lib/keybase/requests/dump/all_test.rb
158
+ - test/unit/lib/keybase/requests/dump/latest_test.rb
159
+ - test/unit/lib/keybase/requests/key/add_test.rb
160
+ - test/unit/lib/keybase/requests/key/revoke_test.rb
161
+ - test/unit/lib/keybase/requests/root/get_salt_test.rb
162
+ - test/unit/lib/keybase/requests/root/login_test.rb
163
+ - test/unit/lib/keybase/requests/sig/post_auth_test.rb
164
+ - test/unit/lib/keybase/requests/user/lookup_test.rb
165
+ - test/unit/lib/keybase/response_test.rb
166
+ - test/unit/lib/keybase/token_store_test.rb
167
+ - test/unit/lib/keybase_test.rb
168
+ - test/vcr_cassettes/dumps.yml
169
+ - test/vcr_cassettes/keys.yml
170
+ - test/vcr_cassettes/user_login.yml
171
+ - test/vcr_cassettes/user_lookup_foo.yml
172
+ - test/vcr_cassettes/user_lookup_invalid.yml
173
+ - test/vcr_cassettes/user_lookup_missing.yml
174
+ - test/vcr_cassettes/user_lookup_not_found.yml
175
+ homepage: https://github.com/keybase/ruby-core
176
+ licenses:
177
+ - BSD-3-Clause
178
+ metadata: {}
179
+ post_install_message:
180
+ rdoc_options: []
181
+ require_paths:
182
+ - lib
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ~>
186
+ - !ruby/object:Gem::Version
187
+ version: 2.1.0
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ requirements: []
194
+ rubyforge_project:
195
+ rubygems_version: 2.2.2
196
+ signing_key:
197
+ specification_version: 4
198
+ summary: keybase-core
199
+ test_files: []
200
+ has_rdoc: