trocla 0.7.0 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e516b5dbf1bdca34c4c47a440672337c3c7f8694593ff2b06ae2a2602a6b907
4
- data.tar.gz: ce60947349c3faf08f7d0cda00fa3ddeeae6c09a1b8f8947695134c74e72b101
3
+ metadata.gz: 23d5e8dfd009afd3c57c7621398d319cb5ccc503a2d8af485c32d99593ecd5c3
4
+ data.tar.gz: a8390bafef25e87f0c21c2a2e5c5035fcbb54e7dd2eb2ce337142dae6412e0ac
5
5
  SHA512:
6
- metadata.gz: 900ce53ad161c3a8819353205c685ebae03d95f303df6af34e5cd4771ab1fc4711684aad9411bdd9aab85d8426873ea179a03f288b47e38c9351b1c49c757528
7
- data.tar.gz: eb344684031b86e4e56cd75c2530f9542d051fc1e395141c4c68070f03e4ba53784d6bdfcdbcf08d563af62e770526b1a7e2d9a1ac56c7daf6371ac6120a5397
6
+ metadata.gz: bb1442e7ce601a9c057c3df1dfba3eef8d59c0bb09112b30258978beff97e3f65bb38b3908db8e4f54ec90681fb5a3b4a355341c621273b34a2c540266a4251c
7
+ data.tar.gz: d8bc6e8656184fe454b3716cf137f48d1e2aa46ffdf368b4af528363fde7f159b17d8c5ea729792b7eac34d10d1610f05da35d33a09381d78ba52e0c69eda8f1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## to 0.8.0
4
+
5
+ * Add Argon2 format - Fixes [#84](https://github.com/duritong/trocla/issues/84)
6
+ * Add yescrypt format - Fixes [#81](https://github.com/duritong/trocla/issues/81) - not supported on Jruby
7
+
3
8
  ## to 0.7.0
4
9
 
5
10
  * bump support for various dependencies and ruby versions
data/README.md CHANGED
@@ -174,6 +174,17 @@ Password hashes for PostgreSQL servers. Since postgesql 10 you can use the sha25
174
174
  You are able to tune the [cost factor of bcrypt](https://github.com/codahale/bcrypt-ruby#cost-factors) by passing the option `cost`.
175
175
  Note: ruby bcrypt does not support a [cost > 31](https://github.com/codahale/bcrypt-ruby/blob/master/lib/bcrypt/password.rb#L45).
176
176
 
177
+ ### argon2
178
+
179
+ You are able to tune argon2 options by passing the option `argon2` with what the [Argon2](https://github.com/technion/ruby-argon2?tab=readme-ov-file#usage) rubygem supports.
180
+
181
+ ### yescrypt
182
+
183
+ You are able to tune the cost factor of yescrypt by passing the option `cost`.
184
+ Note: yescrypt does not support a cost > 11
185
+
186
+ **Important:** Since we are using [XCrypt](https://github.com/rkh/ruby-xcrypt) gem, which calls out to libxcrypt through FFI, you cannot use the yecrypt format on JRuby installations, aka. OpenVox Server installations. If you want to deliver yescrypt hashes in your Puppet manifests, you need to generate the yescrypt hash in a Ruby MRI installation, once the hash is in the trocla database a OpenVox Server can just fetch it.
187
+
177
188
  ### x509
178
189
 
179
190
  This format takes a set of additional options. Required are:
@@ -247,7 +258,6 @@ Output render options are:
247
258
  ## Installation
248
259
 
249
260
  * Debian has trocla within its sid-release: `apt-get install trocla`
250
- * For RHEL/CentOS 7 there is a [copr reporisotry](https://copr.fedoraproject.org/coprs/duritong/trocla/). Follow the help there to integrate the repository and install trocla.
251
261
  * Trocla is also distributed as gem: `gem install trocla`
252
262
 
253
263
  ## Configuration
@@ -420,6 +430,6 @@ See [Changelog](CHANGELOG.md)
420
430
 
421
431
  ## Copyright
422
432
 
423
- Copyright (c) 2011-2015 mh. See LICENSE.txt for
433
+ Copyright (c) 2011-2026 mh. See LICENSE.txt for
424
434
  further details.
425
435
 
@@ -0,0 +1,7 @@
1
+ class Trocla::Formats::Argon2 < Trocla::Formats::Base
2
+ expensive true
3
+ require 'argon2'
4
+ def format(plain_password, options = {})
5
+ Argon2::Password.create(plain_password,options['argon2'] || {})
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ class Trocla::Formats::Yescrypt < Trocla::Formats::Base
2
+ expensive true
3
+ require 'xcrypt' unless Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == 'jruby'
4
+ def format(plain_password, options = {})
5
+ raise 'Not supported on Jruby' if Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == 'jruby'
6
+ raise "Unsupported cost factor" if options['cost'] && options['cost'] > 11
7
+ XCrypt.yescrypt(plain_password, cost: options['cost'])
8
+ end
9
+ end
@@ -3,7 +3,7 @@
3
3
  class Trocla
4
4
  module VERSION
5
5
  MAJOR = 0
6
- MINOR = 7
6
+ MINOR = 8
7
7
  PATCH = 0
8
8
  BUILD = nil
9
9
 
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trocla
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mh
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-04-13 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: highline
@@ -93,6 +94,34 @@ dependencies:
93
94
  - - "~>"
94
95
  - !ruby/object:Gem::Version
95
96
  version: '0.2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: argon2
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.3'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.3'
111
+ - !ruby/object:Gem::Dependency
112
+ name: xcrypt
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.2'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.2'
96
125
  - !ruby/object:Gem::Dependency
97
126
  name: rake
98
127
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +197,7 @@ files:
168
197
  - lib/trocla/encryptions/none.rb
169
198
  - lib/trocla/encryptions/ssl.rb
170
199
  - lib/trocla/formats.rb
200
+ - lib/trocla/formats/argon2.rb
171
201
  - lib/trocla/formats/bcrypt.rb
172
202
  - lib/trocla/formats/md5crypt.rb
173
203
  - lib/trocla/formats/mysql.rb
@@ -180,6 +210,7 @@ files:
180
210
  - lib/trocla/formats/sshkey.rb
181
211
  - lib/trocla/formats/wireguard.rb
182
212
  - lib/trocla/formats/x509.rb
213
+ - lib/trocla/formats/yescrypt.rb
183
214
  - lib/trocla/hooks.rb
184
215
  - lib/trocla/store.rb
185
216
  - lib/trocla/stores.rb
@@ -195,6 +226,7 @@ metadata:
195
226
  homepage_uri: https://tech.immerda.ch/2011/12/trocla-get-hashed-passwords-out-of-puppet-manifests/
196
227
  source_code_uri: https://github.com/duritong/trocla
197
228
  changelog_uri: https://github.com/duritong/trocla/blob/master/CHANGELOG.md
229
+ post_install_message:
198
230
  rdoc_options: []
199
231
  require_paths:
200
232
  - lib
@@ -202,14 +234,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
202
234
  requirements:
203
235
  - - ">="
204
236
  - !ruby/object:Gem::Version
205
- version: 2.5.0
237
+ version: '3.0'
206
238
  required_rubygems_version: !ruby/object:Gem::Requirement
207
239
  requirements:
208
240
  - - ">="
209
241
  - !ruby/object:Gem::Version
210
242
  version: '0'
211
243
  requirements: []
212
- rubygems_version: 4.0.3
244
+ rubygems_version: 3.5.22
245
+ signing_key:
213
246
  specification_version: 4
214
247
  summary: Trocla a simple password generator and storage
215
248
  test_files: []