gtk2passwordapp 6.2.210911 → 6.3.250921
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 +4 -4
- data/README.md +40 -21
- data/lib/gtk2passwordapp/cli.rb +11 -1
- data/lib/gtk2passwordapp/config.rb +2 -2
- data/lib/gtk2passwordapp/gui.rb +6 -4
- data/lib/gtk2passwordapp.rb +1 -1
- metadata +21 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4a5dcb07d8d8c9f26017988525acfd990b4118b8d1f849182641fdb7ceec914
|
4
|
+
data.tar.gz: 74478049a39abd85a634db2df45b76f47f881dfdc0177576e4a85803e94c1d35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2210f38d6efbb35defe3a6d64c0f059be1403b47e85f9ffbba57ac2a7f05d444302ca972dccc7f7d1425ce64e9376a9a6234364e12be6264adce322e984964f
|
7
|
+
data.tar.gz: 2a954d69ea330161bb61755a9a29938bf7545380ea009bfc789c9b2c77c35dd85ec453f830944eaca02db12591a0d6900c7ec5a956d4b5e8a9e060098f89e679
|
data/README.md
CHANGED
@@ -1,11 +1,15 @@
|
|
1
1
|
# Gtk2PasswordApp
|
2
2
|
|
3
|
-
* [VERSION 6.
|
3
|
+
* [VERSION 6.3.250921](https://github.com/carlosjhr64/gtk2passwordapp/releases)
|
4
4
|
* [github](https://github.com/carlosjhr64/gtk2passwordapp)
|
5
5
|
* [rubygems](https://rubygems.org/gems/gtk2passwordapp)
|
6
6
|
|
7
7
|

|
8
8
|
|
9
|
+
WARNING: Blowfish is considered a legacy and deprecated algorithm.
|
10
|
+
On my next review of this project, I'll migrate this to a different encryption,
|
11
|
+
but I don't know when I'll get to it.
|
12
|
+
|
9
13
|
## Description:
|
10
14
|
|
11
15
|
Ruby-Gnome Password Manager.
|
@@ -14,11 +18,9 @@ Uses Blowfish to encrypt the datafile.
|
|
14
18
|
Features random password generator, clipboard use, and TOTP.
|
15
19
|
|
16
20
|
## Install:
|
17
|
-
|
18
21
|
```console
|
19
22
|
$ gem install gtk2passwordapp
|
20
23
|
```
|
21
|
-
|
22
24
|
## Help:
|
23
25
|
```console
|
24
26
|
$ gtk2passwordapp --help
|
@@ -45,9 +47,9 @@ Default passwords data file is:
|
|
45
47
|
|
46
48
|
Mouse clicks on logo:
|
47
49
|
|
48
|
-
|
49
|
-
|
50
|
-
|
50
|
+
+ Button #1: Get the passwords list and select.
|
51
|
+
+ Button #2: Reset the master password.
|
52
|
+
+ Button #3: Application menu.
|
51
53
|
|
52
54
|
When you select an account,
|
53
55
|
the username/password will be in clipboard/primary for a few seconds.
|
@@ -60,31 +62,48 @@ View Account page:
|
|
60
62
|
* `Previous` button will put password/previous in clipboard/primary for a few seconds.
|
61
63
|
|
62
64
|
## Configuration:
|
63
|
-
|
64
65
|
```console
|
65
66
|
$ ls ~/.config/gtk3app/gtk2passwordapp/config-?.?.rbon
|
66
67
|
```
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
68
|
+
+ Salt: If your master password length is under 16(LongPwd), it'll append this Salt.
|
69
|
+
+ TooOld: I have this set for a year (in seconds).
|
70
|
+
+ PwdFile: passwords file... you'll want include this file in your back-ups.
|
71
|
+
|
72
|
+
## On password length
|
73
|
+
|
74
|
+
As of early 2023,
|
75
|
+
[Blockchain.com](https://www.blockchain.com/explorer/charts/hash-rate)
|
76
|
+
charts the total hash rate of the Bitcoin network approaching `300*M*TH/s`.
|
77
|
+
Interpreting this as the number a passwords it can test per second,
|
78
|
+
I estimate the number of passwords it could test in two years:
|
79
|
+
```ruby
|
80
|
+
# Passwords attempted in two years:
|
81
|
+
M = 1_000_000
|
82
|
+
T = M*M
|
83
|
+
YEAR = 60*60*24*365
|
84
|
+
PASSWORDS = 2*YEAR*300*M*T
|
85
|
+
# There are 94 graph characters in ASCII.
|
86
|
+
# I can estimate the password length needed to cover this number of PASSWORDS:
|
87
|
+
Math.log(PASSWORDS,94).ceil #=> 15
|
88
|
+
# Excluding the quotes in graph, it's still:
|
89
|
+
Math.log(PASSWORDS,91).ceil #=> 15
|
77
90
|
```
|
91
|
+
So that's how come to a default password length of 15.
|
92
|
+
|
93
|
+
## Trouble shooting on upgrades
|
78
94
|
|
79
|
-
|
80
|
-
|
81
|
-
|
95
|
+
Edit your configuration file's `:Salt` value
|
96
|
+
to what it was set in your previous configuration.
|
97
|
+
Also, the `:LongPwd` value changed from 14 to 16,
|
98
|
+
so if your long password length was 14 or 15,
|
99
|
+
you'll have to enter that as it's now considered short
|
100
|
+
and set `:Salt` to "".
|
82
101
|
|
83
102
|
## LICENSE:
|
84
103
|
|
85
104
|
(The MIT License)
|
86
105
|
|
87
|
-
Copyright (c)
|
106
|
+
Copyright (c) 2025 CarlosJHR64
|
88
107
|
|
89
108
|
Permission is hereby granted, free of charge, to any person obtaining
|
90
109
|
a copy of this software and associated documentation files (the
|
data/lib/gtk2passwordapp/cli.rb
CHANGED
@@ -33,6 +33,16 @@ def self.run(pattern='.',
|
|
33
33
|
$stderr.puts "Bad password+salt"
|
34
34
|
exit 65
|
35
35
|
end
|
36
|
-
|
36
|
+
lst.select{|k,v|pattern.match? k}.each do |k,v|
|
37
|
+
puts <<~RECORD
|
38
|
+
Account: #{k}
|
39
|
+
Username: #{v[2]}
|
40
|
+
Password: #{v[0]}
|
41
|
+
Previous: #{v[1]}
|
42
|
+
Note: #{v[4]}
|
43
|
+
URL: #{v[3]}
|
44
|
+
Updated: #{Time.at(v[5]).strftime('%Y-%m-%d %H:%M:%S')}
|
45
|
+
RECORD
|
46
|
+
end
|
37
47
|
end
|
38
48
|
end
|
@@ -12,7 +12,7 @@ class Gtk2PasswordApp
|
|
12
12
|
# Hashing
|
13
13
|
|
14
14
|
Salt: s0,
|
15
|
-
LongPwd:
|
15
|
+
LongPwd: 16,
|
16
16
|
|
17
17
|
# Miscellaneous Strings
|
18
18
|
|
@@ -53,7 +53,7 @@ class Gtk2PasswordApp
|
|
53
53
|
# Spin Buttons
|
54
54
|
|
55
55
|
PWDLEN: [3,40,1],
|
56
|
-
pwdlen: {set_value:
|
56
|
+
pwdlen: {set_value: 15},
|
57
57
|
pwdlen!: [:PWDLEN,:pwdlen],
|
58
58
|
|
59
59
|
# Tools Labels
|
data/lib/gtk2passwordapp/gui.rb
CHANGED
@@ -12,6 +12,7 @@ class Gtk2PasswordApp
|
|
12
12
|
@tools = @password_page = @add_page = @edit_page = @main_page = @menu = nil
|
13
13
|
build_password_page
|
14
14
|
build_logo_menu
|
15
|
+
@password_entry.grab_focus
|
15
16
|
end
|
16
17
|
|
17
18
|
def build_logo_menu
|
@@ -35,6 +36,7 @@ class Gtk2PasswordApp
|
|
35
36
|
@reset = true
|
36
37
|
hide_main_page
|
37
38
|
@password_page.show
|
39
|
+
@password_entry.grab_focus
|
38
40
|
end
|
39
41
|
end
|
40
42
|
|
@@ -119,9 +121,9 @@ class Gtk2PasswordApp
|
|
119
121
|
@password_page = Such::Box.new @pages, :page!
|
120
122
|
Such::Label.new @password_page, :PASSWORD_PAGE_LABEL, :page_label
|
121
123
|
error_label,previous = nil,'' # updates below
|
122
|
-
password_entry = field_row(@password_page, :PASSWORD, :password_entry!) do
|
123
|
-
pwd = password_entry.text.strip
|
124
|
-
password_entry.text = ''
|
124
|
+
@password_entry = field_row(@password_page, :PASSWORD, :password_entry!) do
|
125
|
+
pwd = @password_entry.text.strip
|
126
|
+
@password_entry.text = ''
|
125
127
|
raise CONFIG[:TooShort] if pwd.length < CONFIG[:MinPwdLen]
|
126
128
|
if not @reset and @accounts.exist?
|
127
129
|
@accounts.load rehash pwd
|
@@ -214,7 +216,7 @@ class Gtk2PasswordApp
|
|
214
216
|
generator = Such::Box.new @edit_page, :toolbox!
|
215
217
|
pwdlen=rndpwd=nil
|
216
218
|
Such::Button.new generator, :RAND, :tool_button do
|
217
|
-
rndpwd = H2Q.convert RND.hexadecimal
|
219
|
+
rndpwd = H2Q.convert RND.hexadecimal.upcase
|
218
220
|
@edit_password.text = rndpwd[0...pwdlen.value]
|
219
221
|
end
|
220
222
|
pwdlen = Such::SpinButton.new generator, :pwdlen!, 'value-changed' do
|
data/lib/gtk2passwordapp.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gtk2passwordapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.3.250921
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CarlosJHR64
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-09-21 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: yaml_zlib_blowfish
|
@@ -19,7 +18,7 @@ dependencies:
|
|
19
18
|
version: '2.0'
|
20
19
|
- - ">="
|
21
20
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.0.
|
21
|
+
version: 2.0.250921
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,47 +28,47 @@ dependencies:
|
|
29
28
|
version: '2.0'
|
30
29
|
- - ">="
|
31
30
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.0.
|
31
|
+
version: 2.0.250921
|
33
32
|
- !ruby/object:Gem::Dependency
|
34
33
|
name: base_convert
|
35
34
|
requirement: !ruby/object:Gem::Requirement
|
36
35
|
requirements:
|
37
36
|
- - "~>"
|
38
37
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
38
|
+
version: '7.1'
|
40
39
|
- - ">="
|
41
40
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
41
|
+
version: 7.1.221229
|
43
42
|
type: :runtime
|
44
43
|
prerelease: false
|
45
44
|
version_requirements: !ruby/object:Gem::Requirement
|
46
45
|
requirements:
|
47
46
|
- - "~>"
|
48
47
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
48
|
+
version: '7.1'
|
50
49
|
- - ">="
|
51
50
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
51
|
+
version: 7.1.221229
|
53
52
|
- !ruby/object:Gem::Dependency
|
54
53
|
name: gtk3app
|
55
54
|
requirement: !ruby/object:Gem::Requirement
|
56
55
|
requirements:
|
57
56
|
- - "~>"
|
58
57
|
- !ruby/object:Gem::Version
|
59
|
-
version: '5.
|
58
|
+
version: '5.4'
|
60
59
|
- - ">="
|
61
60
|
- !ruby/object:Gem::Version
|
62
|
-
version: 5.
|
61
|
+
version: 5.4.230109
|
63
62
|
type: :runtime
|
64
63
|
prerelease: false
|
65
64
|
version_requirements: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
66
|
- - "~>"
|
68
67
|
- !ruby/object:Gem::Version
|
69
|
-
version: '5.
|
68
|
+
version: '5.4'
|
70
69
|
- - ">="
|
71
70
|
- !ruby/object:Gem::Version
|
72
|
-
version: 5.
|
71
|
+
version: 5.4.230109
|
73
72
|
- !ruby/object:Gem::Dependency
|
74
73
|
name: base32
|
75
74
|
requirement: !ruby/object:Gem::Requirement
|
@@ -90,34 +89,34 @@ dependencies:
|
|
90
89
|
requirements:
|
91
90
|
- - '='
|
92
91
|
- !ruby/object:Gem::Version
|
93
|
-
version: 1.0.
|
92
|
+
version: 1.0.1
|
94
93
|
type: :runtime
|
95
94
|
prerelease: false
|
96
95
|
version_requirements: !ruby/object:Gem::Requirement
|
97
96
|
requirements:
|
98
97
|
- - '='
|
99
98
|
- !ruby/object:Gem::Version
|
100
|
-
version: 1.0.
|
99
|
+
version: 1.0.1
|
101
100
|
- !ruby/object:Gem::Dependency
|
102
101
|
name: super_random
|
103
102
|
requirement: !ruby/object:Gem::Requirement
|
104
103
|
requirements:
|
105
104
|
- - "~>"
|
106
105
|
- !ruby/object:Gem::Version
|
107
|
-
version: '2
|
106
|
+
version: '3.2'
|
108
107
|
- - ">="
|
109
108
|
- !ruby/object:Gem::Version
|
110
|
-
version: 2.
|
109
|
+
version: 3.2.230116
|
111
110
|
type: :runtime
|
112
111
|
prerelease: false
|
113
112
|
version_requirements: !ruby/object:Gem::Requirement
|
114
113
|
requirements:
|
115
114
|
- - "~>"
|
116
115
|
- !ruby/object:Gem::Version
|
117
|
-
version: '2
|
116
|
+
version: '3.2'
|
118
117
|
- - ">="
|
119
118
|
- !ruby/object:Gem::Version
|
120
|
-
version: 2.
|
119
|
+
version: 3.2.230116
|
121
120
|
description: |
|
122
121
|
Ruby-Gnome Password Manager.
|
123
122
|
|
@@ -142,7 +141,6 @@ homepage: https://github.com/carlosjhr64/gtk2passwordapp
|
|
142
141
|
licenses:
|
143
142
|
- MIT
|
144
143
|
metadata: {}
|
145
|
-
post_install_message:
|
146
144
|
rdoc_options: []
|
147
145
|
require_paths:
|
148
146
|
- lib
|
@@ -150,16 +148,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
148
|
requirements:
|
151
149
|
- - ">="
|
152
150
|
- !ruby/object:Gem::Version
|
153
|
-
version: '
|
151
|
+
version: '3.4'
|
154
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
153
|
requirements:
|
156
154
|
- - ">="
|
157
155
|
- !ruby/object:Gem::Version
|
158
156
|
version: '0'
|
159
|
-
requirements:
|
160
|
-
|
161
|
-
rubygems_version: 3.2.22
|
162
|
-
signing_key:
|
157
|
+
requirements: []
|
158
|
+
rubygems_version: 3.6.2
|
163
159
|
specification_version: 4
|
164
160
|
summary: Ruby-Gnome Password Manager.
|
165
161
|
test_files: []
|