lastpass 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +4 -4
- data/.travis.yml +4 -2
- data/CHANGELOG.md +9 -0
- data/README.md +5 -5
- data/Rakefile +1 -0
- data/lastpass.gemspec +7 -8
- data/lib/lastpass.rb +0 -1
- data/lib/lastpass/fetcher.rb +7 -14
- data/lib/lastpass/version.rb +1 -1
- data/spec/fetcher_spec.rb +1 -1
- metadata +31 -60
- data/.ruby-version +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 63a049d06efc466ce9ff2861ba45dc8c0797c0bb
|
4
|
+
data.tar.gz: 3d818fcc7316b20729917c5e40edac24a2e6b408
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2ec4ba7d245d8bc025b85f386ae69743db765c8a319436017586465cedfec115f03e454bc8495c5d2e4e14296e0c1b13eca3f5aa0e72851fbdc6bd75554e7548
|
7
|
+
data.tar.gz: 4df5d76964fa78f8a1cfcdc14086043dbf2a927249425fe67d4acff71dd7ed0047a5c95bb52e0d29da8d4e207fd59abef54770bdf4bbfa021a24c8887aba2eb8
|
data/.gitignore
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
coverage
|
4
|
-
example/credentials.yaml
|
1
|
+
/pkg/
|
2
|
+
/Gemfile.lock
|
3
|
+
/coverage
|
4
|
+
/example/credentials.yaml
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
Version 1.5.0
|
2
|
+
-------------
|
3
|
+
|
4
|
+
- Fixed failing `get_iteraction_count`. POST parameters are moved from the query (URL) to the body.
|
5
|
+
- pbkdf2-ruby gem is no longer used as it was causing problems. Relying on built-in `OpenSSL::PKCS5.pbkdf2_hmac`
|
6
|
+
- Minimum supported Ruby version is 2.0.0
|
7
|
+
- Dependencies updated to their laters versions
|
8
|
+
- Travis CI fixed
|
9
|
+
|
1
10
|
Version 1.4.0
|
2
11
|
-------------
|
3
12
|
|
data/README.md
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
LastPass Ruby API
|
2
2
|
=================
|
3
3
|
|
4
|
-
[](https://travis-ci.org/detunized/lastpass-ruby)
|
5
|
+
[](https://coveralls.io/r/detunized/lastpass-ruby?branch=master)
|
6
|
+
[](https://codeclimate.com/github/detunized/lastpass-ruby)
|
7
|
+
[](https://gemnasium.com/detunized/lastpass-ruby)
|
8
8
|
|
9
9
|
**This is unofficial LastPass API.**
|
10
10
|
|
11
|
-
There
|
11
|
+
There are also [a C#/.NET port](https://github.com/detunized/lastpass-sharp) and [a Python port](https://github.com/konomae/lastpass-python) available.
|
12
12
|
|
13
13
|
This library implements fetching and parsing of LastPass data. The library is
|
14
14
|
still in the proof of concept stage and doesn't support all LastPass features
|
data/Rakefile
CHANGED
data/lastpass.gemspec
CHANGED
@@ -12,17 +12,16 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.email = "detunized@gmail.com"
|
13
13
|
s.homepage = "https://github.com/detunized/lastpass-ruby"
|
14
14
|
s.summary = "Unofficial LastPass API"
|
15
|
-
s.description = "
|
15
|
+
s.description = "Read only access to the online LastPass vault"
|
16
16
|
|
17
|
-
s.required_ruby_version = ">=
|
17
|
+
s.required_ruby_version = ">= 2.0.0"
|
18
18
|
|
19
|
-
s.add_dependency "httparty", "~> 0.
|
20
|
-
s.add_dependency "pbkdf2-ruby", "~> 0.2.0"
|
19
|
+
s.add_dependency "httparty", "~> 0.14.0"
|
21
20
|
|
22
|
-
s.add_development_dependency "rake", "~>
|
23
|
-
s.add_development_dependency "rspec", "~> 3.
|
24
|
-
s.add_development_dependency "rspec-its", "~> 1.
|
25
|
-
s.add_development_dependency "coveralls", "~> 0.
|
21
|
+
s.add_development_dependency "rake", "~> 12.0"
|
22
|
+
s.add_development_dependency "rspec", "~> 3.5"
|
23
|
+
s.add_development_dependency "rspec-its", "~> 1.2"
|
24
|
+
s.add_development_dependency "coveralls", "~> 0.8.19"
|
26
25
|
|
27
26
|
s.files = `git ls-files`.split "\n"
|
28
27
|
s.test_files = `git ls-files spec`.split "\n"
|
data/lib/lastpass.rb
CHANGED
data/lib/lastpass/fetcher.rb
CHANGED
@@ -27,7 +27,7 @@ module LastPass
|
|
27
27
|
|
28
28
|
def self.request_iteration_count username, web_client = http
|
29
29
|
response = web_client.post "https://lastpass.com/iterations.php",
|
30
|
-
|
30
|
+
body: {email: username}
|
31
31
|
|
32
32
|
raise NetworkError unless response.response.is_a? Net::HTTPOK
|
33
33
|
|
@@ -117,13 +117,7 @@ module LastPass
|
|
117
117
|
if key_iteration_count == 1
|
118
118
|
Digest::SHA256.digest username + password
|
119
119
|
else
|
120
|
-
|
121
|
-
.new(password: password,
|
122
|
-
salt: username,
|
123
|
-
iterations: key_iteration_count,
|
124
|
-
key_length: 32)
|
125
|
-
.bin_string
|
126
|
-
.force_encoding "BINARY"
|
120
|
+
OpenSSL::PKCS5.pbkdf2_hmac password, username, key_iteration_count, 32, "sha256"
|
127
121
|
end
|
128
122
|
end
|
129
123
|
|
@@ -131,12 +125,11 @@ module LastPass
|
|
131
125
|
if key_iteration_count == 1
|
132
126
|
Digest::SHA256.hexdigest Digest.hexencode(make_key(username, password, 1)) + password
|
133
127
|
else
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
.hex_string
|
128
|
+
Digest.hexencode OpenSSL::PKCS5.pbkdf2_hmac make_key(username, password, key_iteration_count),
|
129
|
+
password,
|
130
|
+
1,
|
131
|
+
32,
|
132
|
+
"sha256"
|
140
133
|
end
|
141
134
|
end
|
142
135
|
|
data/lib/lastpass/version.rb
CHANGED
data/spec/fetcher_spec.rb
CHANGED
@@ -51,7 +51,7 @@ describe LastPass::Fetcher do
|
|
51
51
|
describe ".request_iteration_count" do
|
52
52
|
it "makes a POST request" do
|
53
53
|
expect(web_client = double("web_client")).to receive(:post)
|
54
|
-
.with("https://lastpass.com/iterations.php",
|
54
|
+
.with("https://lastpass.com/iterations.php", body: {email: username})
|
55
55
|
.and_return(http_ok(key_iteration_count.to_s))
|
56
56
|
|
57
57
|
LastPass::Fetcher.request_iteration_count username, web_client
|
metadata
CHANGED
@@ -1,121 +1,93 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lastpass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.5.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dmitry Yakimenko
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2017-02-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: httparty
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
19
|
+
version: 0.14.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: pbkdf2-ruby
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ~>
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 0.2.0
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 0.2.0
|
26
|
+
version: 0.14.0
|
46
27
|
- !ruby/object:Gem::Dependency
|
47
28
|
name: rake
|
48
29
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
30
|
requirements:
|
51
|
-
- - ~>
|
31
|
+
- - "~>"
|
52
32
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
33
|
+
version: '12.0'
|
54
34
|
type: :development
|
55
35
|
prerelease: false
|
56
36
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
37
|
requirements:
|
59
|
-
- - ~>
|
38
|
+
- - "~>"
|
60
39
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
40
|
+
version: '12.0'
|
62
41
|
- !ruby/object:Gem::Dependency
|
63
42
|
name: rspec
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
44
|
requirements:
|
67
|
-
- - ~>
|
45
|
+
- - "~>"
|
68
46
|
- !ruby/object:Gem::Version
|
69
|
-
version: 3.
|
47
|
+
version: '3.5'
|
70
48
|
type: :development
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
51
|
requirements:
|
75
|
-
- - ~>
|
52
|
+
- - "~>"
|
76
53
|
- !ruby/object:Gem::Version
|
77
|
-
version: 3.
|
54
|
+
version: '3.5'
|
78
55
|
- !ruby/object:Gem::Dependency
|
79
56
|
name: rspec-its
|
80
57
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
58
|
requirements:
|
83
|
-
- - ~>
|
59
|
+
- - "~>"
|
84
60
|
- !ruby/object:Gem::Version
|
85
|
-
version: 1.
|
61
|
+
version: '1.2'
|
86
62
|
type: :development
|
87
63
|
prerelease: false
|
88
64
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
65
|
requirements:
|
91
|
-
- - ~>
|
66
|
+
- - "~>"
|
92
67
|
- !ruby/object:Gem::Version
|
93
|
-
version: 1.
|
68
|
+
version: '1.2'
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: coveralls
|
96
71
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
72
|
requirements:
|
99
|
-
- - ~>
|
73
|
+
- - "~>"
|
100
74
|
- !ruby/object:Gem::Version
|
101
|
-
version: 0.
|
75
|
+
version: 0.8.19
|
102
76
|
type: :development
|
103
77
|
prerelease: false
|
104
78
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
79
|
requirements:
|
107
|
-
- - ~>
|
80
|
+
- - "~>"
|
108
81
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0.
|
110
|
-
description:
|
82
|
+
version: 0.8.19
|
83
|
+
description: Read only access to the online LastPass vault
|
111
84
|
email: detunized@gmail.com
|
112
85
|
executables: []
|
113
86
|
extensions: []
|
114
87
|
extra_rdoc_files: []
|
115
88
|
files:
|
116
|
-
- .gitignore
|
117
|
-
- .
|
118
|
-
- .travis.yml
|
89
|
+
- ".gitignore"
|
90
|
+
- ".travis.yml"
|
119
91
|
- CHANGELOG.md
|
120
92
|
- Gemfile
|
121
93
|
- LICENSE
|
@@ -150,27 +122,26 @@ files:
|
|
150
122
|
homepage: https://github.com/detunized/lastpass-ruby
|
151
123
|
licenses:
|
152
124
|
- MIT
|
125
|
+
metadata: {}
|
153
126
|
post_install_message:
|
154
127
|
rdoc_options: []
|
155
128
|
require_paths:
|
156
129
|
- lib
|
157
130
|
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
-
none: false
|
159
131
|
requirements:
|
160
|
-
- -
|
132
|
+
- - ">="
|
161
133
|
- !ruby/object:Gem::Version
|
162
|
-
version:
|
134
|
+
version: 2.0.0
|
163
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
|
-
none: false
|
165
136
|
requirements:
|
166
|
-
- -
|
137
|
+
- - ">="
|
167
138
|
- !ruby/object:Gem::Version
|
168
139
|
version: '0'
|
169
140
|
requirements: []
|
170
141
|
rubyforge_project:
|
171
|
-
rubygems_version:
|
142
|
+
rubygems_version: 2.5.1
|
172
143
|
signing_key:
|
173
|
-
specification_version:
|
144
|
+
specification_version: 4
|
174
145
|
summary: Unofficial LastPass API
|
175
146
|
test_files:
|
176
147
|
- spec/account_spec.rb
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.9.3-p551
|