schleuder 4.0.1 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80f579a3285abeaea12343a4d475e6b1de3c35308b923ee6c397e65c1b1be455
4
- data.tar.gz: 6473080963a09323a4feb6364fab9290a2ff4f17588e29af4f4dbada0da867a2
3
+ metadata.gz: 9f8275838177195ab78283d9c737de9cbd2d39e816c9f41db2e31d785d787dd8
4
+ data.tar.gz: 464e220965c5d0ee43d300a1f988e7a27edd9344d751bae9e06a9a02fc5c2a43
5
5
  SHA512:
6
- metadata.gz: d972b205bf9b3f9d4e3a1dbbb12ccab952d5ccfde2d71ceb4d0464faff6f8aeb8e0c0543fc0166fce72840af463fbc7217a1e9cdca509a764d47946ef1018a02
7
- data.tar.gz: 06ea91d301606341692f92f8e9d0937e63f03071b7d32538d6de7de00163e4a6533c47725d3b8c51de5cf86e0f9530b9de969fe91fdc43f42fc4ccf952d93c28
6
+ metadata.gz: d6ba6aab5c19ae0f8f74a0fe44e84e5a10f4adf434f55454a1d7ca49943557fbad5db23ff06fee1a3e0efa5a248034f8a6a17dcbeb91864bf04ec68f8cd14d1f
7
+ data.tar.gz: bd361a32b63c6bcfa146e1369a45fa54e9c3c94d29baaefbbff01a1629b468c896a34c17cd6ff957357eaf67611a5b09b5c2b2d9a023130430a86f29892b19cb
data/README.md CHANGED
@@ -16,21 +16,10 @@ Requirements
16
16
  * openssl
17
17
  * icu
18
18
 
19
- *If you use Debian buster or CentOS 7, please have a look at the [installation docs](https://schleuder.org/schleuder/docs/server-admins.html#installation). We do provide packages for those platforms, which simplify the installation a lot.*
20
-
21
- *🛈 A note regarding Ubuntu: All Ubuntu versions up to and including 17.10 don't meet the requirements with their packaged versions of gnupg! To run Schleuder on Ubuntu you currently have to install a more recent version of gnupg manually. Only Ubuntu 18.04 ("bionic") provides modern enough versions of Schleuder's requirements.*
22
-
23
- On systems that base on Debian 10 ("buster"), install the dependencies via
24
-
25
- apt-get install ruby-dev gnupg2 libgpgme-dev libsqlite3-dev libssl-dev build-essential libicu-dev
26
-
19
+ *If you use Debian buster, CentOS 7 or Archlinux, please have a look at the [installation docs](https://schleuder.org/schleuder/docs/server-admins.html#installation). We do provide packages for those platforms, which simplify the installation a lot.*
27
20
 
28
21
  We **recommend** to also run a random number generator like [haveged](http://www.issihosts.com/haveged/). This ensures Schleuder won't be blocked by lacking entropy, which otherwise might happen especially during key generation.
29
22
 
30
- On Debian based systems, install it via
31
-
32
- apt-get install haveged
33
-
34
23
 
35
24
  Additionally these **rubygems** are required (will be installed automatically unless present):
36
25
 
@@ -47,15 +36,15 @@ Additionally these **rubygems** are required (will be installed automatically un
47
36
  Installing Schleuder
48
37
  ------------
49
38
 
50
- 1. Download [the gem](https://schleuder.org/download/schleuder-4.0.1.gem) and [the OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.1.gem.sig) and verify:
39
+ 1. Download [the gem](https://schleuder.org/download/schleuder-4.0.2.gem) and [the OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.2.gem.sig) and verify:
51
40
  ```
52
41
  gpg --recv-key 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
53
- gpg --verify schleuder-4.0.1.gem.sig
42
+ gpg --verify schleuder-4.0.2.gem.sig
54
43
  ```
55
44
 
56
45
  2. If all went well install the gem:
57
46
  ```
58
- gem install schleuder-4.0.1.gem
47
+ gem install schleuder-4.0.2.gem
59
48
  ```
60
49
 
61
50
  3. Set up schleuder:
@@ -145,4 +134,4 @@ GNU GPL 3.0. Please see [LICENSE.txt](LICENSE.txt).
145
134
  Alternative Download
146
135
  --------------------
147
136
 
148
- Alternatively to the gem-files you can download the latest release as [a tarball](https://schleuder.org/download/schleuder-4.0.1.tar.gz) and [its OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.1.tar.gz.sig).
137
+ Alternatively to the gem-files you can download the latest release as [a tarball](https://schleuder.org/download/schleuder-4.0.2.tar.gz) and [its OpenPGP-signature](https://schleuder.org/download/schleuder-4.0.2.tar.gz.sig).
data/Rakefile CHANGED
@@ -7,6 +7,9 @@ require_relative "lib/#{project}.rb"
7
7
  @filename_gem = "#{@tagname}.gem"
8
8
  @filename_tarball = "#{@tagname}.tar.gz"
9
9
 
10
+ # Make ActiveRecord's tasks usable for us (without this, those tasks try to run
11
+ # in the "default_env" environment, which is not configured).
12
+ ENV['RACK_ENV'] ||= ENV['SCHLEUDER_ENV']
10
13
  load 'active_record/railties/databases.rake'
11
14
 
12
15
  # Configure ActiveRecord
data/db/schema.rb CHANGED
@@ -2,8 +2,8 @@
2
2
  # of editing this file, please use the migrations feature of Active Record to
3
3
  # incrementally modify your database, and then regenerate this schema definition.
4
4
  #
5
- # This file is the source Rails uses to define your schema when running `rails
6
- # db:schema:load`. When creating a new database, `rails db:schema:load` tends to
5
+ # This file is the source Rails uses to define your schema when running `bin/rails
6
+ # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
7
7
  # be faster and is potentially less error prone than running all of your
8
8
  # migrations from scratch. Old migrations may fail to apply correctly if those
9
9
  # migrations use external dependencies or application code.
@@ -15,13 +15,13 @@ ActiveRecord::Schema.define(version: 2020_01_18_170110) do
15
15
  create_table "lists", force: :cascade do |t|
16
16
  t.datetime "created_at"
17
17
  t.datetime "updated_at"
18
- t.string "email", limit: 255
19
- t.string "fingerprint", limit: 255
20
- t.string "log_level", limit: 255, default: "warn"
21
- t.string "subject_prefix", limit: 255, default: ""
22
- t.string "subject_prefix_in", limit: 255, default: ""
23
- t.string "subject_prefix_out", limit: 255, default: ""
24
- t.string "openpgp_header_preference", limit: 255, default: "signencrypt"
18
+ t.string "email"
19
+ t.string "fingerprint"
20
+ t.string "log_level", default: "warn"
21
+ t.string "subject_prefix", default: ""
22
+ t.string "subject_prefix_in", default: ""
23
+ t.string "subject_prefix_out", default: ""
24
+ t.string "openpgp_header_preference", default: "signencrypt"
25
25
  t.text "public_footer", default: ""
26
26
  t.text "headers_to_meta", default: "[\"from\", \"to\", \"cc\", \"date\", \"sig\", \"enc\"]"
27
27
  t.text "bounces_drop_on_headers", default: "{\"x-spam-flag\":\"yes\"}"
@@ -39,7 +39,7 @@ ActiveRecord::Schema.define(version: 2020_01_18_170110) do
39
39
  t.boolean "include_list_headers", default: true
40
40
  t.boolean "include_openpgp_header", default: true
41
41
  t.integer "max_message_size_kb", default: 10240
42
- t.string "language", limit: 255, default: "en"
42
+ t.string "language", default: "en"
43
43
  t.boolean "forward_all_incoming_to_admins", default: false
44
44
  t.integer "logfiles_to_keep", default: 2
45
45
  t.text "internal_footer", default: ""
@@ -51,8 +51,8 @@ ActiveRecord::Schema.define(version: 2020_01_18_170110) do
51
51
 
52
52
  create_table "subscriptions", force: :cascade do |t|
53
53
  t.integer "list_id"
54
- t.string "email", limit: 255
55
- t.string "fingerprint", limit: 255
54
+ t.string "email"
55
+ t.string "fingerprint"
56
56
  t.boolean "admin", default: false
57
57
  t.boolean "delivery_enabled", default: true
58
58
  t.datetime "created_at"
data/lib/schleuder.rb CHANGED
@@ -6,6 +6,7 @@
6
6
  Encoding.default_external = Encoding::UTF_8
7
7
 
8
8
  # Stdlib
9
+ require 'etc'
9
10
  require 'fileutils'
10
11
  require 'singleton'
11
12
  require 'yaml'
@@ -13,6 +14,7 @@ require 'pathname'
13
14
  require 'syslog/logger'
14
15
  require 'logger'
15
16
  require 'open3'
17
+ require 'socket'
16
18
 
17
19
  # Require mandatory libs. The database-layer-lib is required below.
18
20
  require 'mail-gpg'
@@ -32,7 +34,8 @@ $:.unshift libdir
32
34
  require 'schleuder/mail/parts_list.rb'
33
35
  require 'schleuder/mail/message.rb'
34
36
  require 'schleuder/mail/gpg.rb'
35
- require 'schleuder/mail/encrypted_part.rb'
37
+ require 'schleuder/mail/gpg/encrypted_part.rb'
38
+ require 'schleuder/mail/gpg/sign_part.rb'
36
39
  require 'schleuder/gpgme/import_status.rb'
37
40
  require 'schleuder/gpgme/key.rb'
38
41
  require 'schleuder/gpgme/sub_key.rb'
data/lib/schleuder/cli.rb CHANGED
@@ -70,7 +70,6 @@ module Schleuder
70
70
 
71
71
  desc 'refresh_keys [list1@example.com]', 'Refresh all keys of all list from the keyservers sequentially (one by one or on the passed list). (This is supposed to be run from cron or systemd weekly.)'
72
72
  def refresh_keys(list=nil)
73
- GPGME::Ctx.send_notice_if_gpg_does_not_know_import_filter
74
73
  work_on_lists(:refresh_keys, list)
75
74
  permission_notice
76
75
  end
@@ -134,7 +134,6 @@ module GPGME
134
134
  arguments, error = fetch_key_gpg_arguments_for(input)
135
135
  return error if error
136
136
 
137
- self.class.send_notice_if_gpg_does_not_know_import_filter
138
137
  gpgerr, gpgout, exitcode = self.class.gpgcli("#{import_filter_arg} #{arguments}")
139
138
 
140
139
  # Unfortunately gpg doesn't exit with code > 0 if `--fetch-key` fails.
@@ -229,21 +228,6 @@ module GPGME
229
228
  raise 'Need gpg in $PATH or in $GPGBIN'
230
229
  end
231
230
 
232
- def self.spawn_daemon(name, args)
233
- delete_daemon_socket(name)
234
- cmd = "#{name} #{args} --daemon > /dev/null 2>&1"
235
- if ! system(cmd)
236
- return [false, "#{name} exited with code #{$?}"]
237
- end
238
- end
239
-
240
- def self.delete_daemon_socket(name)
241
- path = File.join(ENV['GNUPGHOME'], "S.#{name}")
242
- if File.exist?(path)
243
- File.delete(path)
244
- end
245
- end
246
-
247
231
  def keyserver_arg
248
232
  if Conf.keyserver.present?
249
233
  "--keyserver #{Conf.keyserver}"
@@ -252,24 +236,8 @@ module GPGME
252
236
  end
253
237
  end
254
238
 
255
- def self.gpg_knows_import_filter?
256
- sufficient_gpg_version?('2.1.15')
257
- end
258
-
259
239
  def import_filter_arg
260
- if self.class.gpg_knows_import_filter?
261
- %{ --import-filter drop-sig='sig_created_d > 0000-00-00'}
262
- end
263
- end
264
-
265
- def self.send_notice_if_gpg_does_not_know_import_filter
266
- if ! gpg_knows_import_filter?
267
- Schleuder.logger.notify_superadmin(
268
- subject: 'Schleuder installation problem',
269
- message: "Your version of GnuPG is very old, please update!\n\nWith your version of GnuPG we can not protect your setup against signature flooding. Please update to at least version 2.1.15 to fix this problem. See <https://dkg.fifthhorseman.net/blog/openpgp-certificate-flooding.html> for details on the background."
270
- )
271
- ''
272
- end
240
+ %{ --import-filter drop-sig='sig_created_d > 0000-00-00'}
273
241
  end
274
242
  end
275
243
  end
@@ -9,7 +9,7 @@ module Schleuder
9
9
  def initialize
10
10
  super('Schleuder', Syslog::LOG_MAIL)
11
11
  # We need some sender-address different from the superadmin-address.
12
- @from = "#{`whoami`.chomp}@#{`hostname`.chomp}"
12
+ @from = "#{Etc.getlogin}@#{Socket.gethostname}"
13
13
  @adminaddresses = Conf.superadmin
14
14
  @level = ::Logger.const_get(Conf.log_level.upcase)
15
15
  end
@@ -0,0 +1,33 @@
1
+ module Mail
2
+ module Gpg
3
+ class SignPart < Mail::Part
4
+ # Copied verbatim from mail-gpg v.0.4.2. This code was changed in
5
+ # <https://github.com/jkraemer/mail-gpg/commit/5fded41ccee4a58f848a2f8e7bd53d11236f8984>,
6
+ # which breaks verifying some encapsulated (signed-then-encrypted)
7
+ # messages. See
8
+ # <https://github.com/jkraemer/mail-gpg/pull/40#issue-95776382> for
9
+ # details.
10
+ def self.verify_signature(plain_part, signature_part, options = {})
11
+ if !(signature_part.has_content_type? &&
12
+ ('application/pgp-signature' == signature_part.mime_type))
13
+ return false
14
+ end
15
+
16
+ # Work around the problem that plain_part.raw_source prefixes an
17
+ # erroneous CRLF, <https://github.com/mikel/mail/issues/702>.
18
+ if ! plain_part.raw_source.empty?
19
+ plaintext = [ plain_part.header.raw_source,
20
+ "\r\n\r\n",
21
+ plain_part.body.raw_source
22
+ ].join
23
+ else
24
+ plaintext = plain_part.encoded
25
+ end
26
+
27
+ signature = signature_part.body.encoded
28
+ GpgmeHelper.sign_verify(plaintext, signature, options)
29
+ end
30
+ end
31
+ end
32
+ end
33
+
@@ -1,3 +1,3 @@
1
1
  module Schleuder
2
- VERSION = '4.0.1'
2
+ VERSION = '4.0.2'
3
3
  end
metadata CHANGED
@@ -1,119 +1,119 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schleuder
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.1
4
+ version: 4.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - schleuder dev team
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-18 00:00:00.000000000 Z
11
+ date: 2021-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: gpgme
14
+ name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 2.0.19
19
+ version: 6.1.3
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '2.0'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 2.0.19
26
+ version: 6.1.3
33
27
  - !ruby/object:Gem::Dependency
34
- name: mail
28
+ name: bcrypt
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: 2.7.1
33
+ version: 3.1.2
40
34
  type: :runtime
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
38
  - - "~>"
45
39
  - !ruby/object:Gem::Version
46
- version: 2.7.1
40
+ version: 3.1.2
47
41
  - !ruby/object:Gem::Dependency
48
- name: mail-gpg
42
+ name: charlock_holmes
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0.3'
47
+ version: 0.7.6
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
52
  - - "~>"
59
53
  - !ruby/object:Gem::Version
60
- version: '0.3'
54
+ version: 0.7.6
61
55
  - !ruby/object:Gem::Dependency
62
- name: activerecord
56
+ name: gpgme
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
59
  - - "~>"
66
60
  - !ruby/object:Gem::Version
67
- version: 6.1.3
61
+ version: '2.0'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 2.0.19
68
65
  type: :runtime
69
66
  prerelease: false
70
67
  version_requirements: !ruby/object:Gem::Requirement
71
68
  requirements:
72
69
  - - "~>"
73
70
  - !ruby/object:Gem::Version
74
- version: 6.1.3
71
+ version: '2.0'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 2.0.19
75
75
  - !ruby/object:Gem::Dependency
76
- name: bcrypt
76
+ name: mail
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 3.1.2
81
+ version: 2.7.1
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 3.1.2
88
+ version: 2.7.1
89
89
  - !ruby/object:Gem::Dependency
90
- name: rake
90
+ name: mail-gpg
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - ">="
93
+ - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: 10.5.0
95
+ version: '0.3'
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ">="
100
+ - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: 10.5.0
102
+ version: '0.3'
103
103
  - !ruby/object:Gem::Dependency
104
- name: sqlite3
104
+ name: rake
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - "~>"
107
+ - - ">="
108
108
  - !ruby/object:Gem::Version
109
- version: 1.4.2
109
+ version: 10.5.0
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - "~>"
114
+ - - ">="
115
115
  - !ruby/object:Gem::Version
116
- version: 1.4.2
116
+ version: 10.5.0
117
117
  - !ruby/object:Gem::Dependency
118
118
  name: sinatra
119
119
  requirement: !ruby/object:Gem::Requirement
@@ -143,19 +143,19 @@ dependencies:
143
143
  - !ruby/object:Gem::Version
144
144
  version: '2'
145
145
  - !ruby/object:Gem::Dependency
146
- name: thor
146
+ name: sqlite3
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '0'
151
+ version: 1.4.2
152
152
  type: :runtime
153
153
  prerelease: false
154
154
  version_requirements: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '0'
158
+ version: 1.4.2
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: thin
161
161
  requirement: !ruby/object:Gem::Requirement
@@ -171,47 +171,47 @@ dependencies:
171
171
  - !ruby/object:Gem::Version
172
172
  version: '1'
173
173
  - !ruby/object:Gem::Dependency
174
- name: charlock_holmes
174
+ name: thor
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
177
  - - "~>"
178
178
  - !ruby/object:Gem::Version
179
- version: 0.7.6
179
+ version: '0'
180
180
  type: :runtime
181
181
  prerelease: false
182
182
  version_requirements: !ruby/object:Gem::Requirement
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: 0.7.6
186
+ version: '0'
187
187
  - !ruby/object:Gem::Dependency
188
- name: rspec
188
+ name: byebug
189
189
  requirement: !ruby/object:Gem::Requirement
190
190
  requirements:
191
191
  - - "~>"
192
192
  - !ruby/object:Gem::Version
193
- version: '3'
193
+ version: '10'
194
194
  type: :development
195
195
  prerelease: false
196
196
  version_requirements: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: '3'
200
+ version: '10'
201
201
  - !ruby/object:Gem::Dependency
202
- name: hirb
202
+ name: database_cleaner
203
203
  requirement: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - "~>"
206
206
  - !ruby/object:Gem::Version
207
- version: '0'
207
+ version: '2.0'
208
208
  type: :development
209
209
  prerelease: false
210
210
  version_requirements: !ruby/object:Gem::Requirement
211
211
  requirements:
212
212
  - - "~>"
213
213
  - !ruby/object:Gem::Version
214
- version: '0'
214
+ version: '2.0'
215
215
  - !ruby/object:Gem::Dependency
216
216
  name: factory_bot
217
217
  requirement: !ruby/object:Gem::Requirement
@@ -227,31 +227,31 @@ dependencies:
227
227
  - !ruby/object:Gem::Version
228
228
  version: '6.0'
229
229
  - !ruby/object:Gem::Dependency
230
- name: database_cleaner
230
+ name: hirb
231
231
  requirement: !ruby/object:Gem::Requirement
232
232
  requirements:
233
233
  - - "~>"
234
234
  - !ruby/object:Gem::Version
235
- version: '2.0'
235
+ version: '0'
236
236
  type: :development
237
237
  prerelease: false
238
238
  version_requirements: !ruby/object:Gem::Requirement
239
239
  requirements:
240
240
  - - "~>"
241
241
  - !ruby/object:Gem::Version
242
- version: '2.0'
242
+ version: '0'
243
243
  - !ruby/object:Gem::Dependency
244
- name: simplecov-console
244
+ name: irb
245
245
  requirement: !ruby/object:Gem::Requirement
246
246
  requirements:
247
- - - "~>"
247
+ - - ">="
248
248
  - !ruby/object:Gem::Version
249
249
  version: '0'
250
250
  type: :development
251
251
  prerelease: false
252
252
  version_requirements: !ruby/object:Gem::Requirement
253
253
  requirements:
254
- - - "~>"
254
+ - - ">="
255
255
  - !ruby/object:Gem::Version
256
256
  version: '0'
257
257
  - !ruby/object:Gem::Dependency
@@ -268,6 +268,20 @@ dependencies:
268
268
  - - "~>"
269
269
  - !ruby/object:Gem::Version
270
270
  version: '1'
271
+ - !ruby/object:Gem::Dependency
272
+ name: rspec
273
+ requirement: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: '3'
278
+ type: :development
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '3'
271
285
  - !ruby/object:Gem::Dependency
272
286
  name: rubocop
273
287
  requirement: !ruby/object:Gem::Requirement
@@ -283,19 +297,19 @@ dependencies:
283
297
  - !ruby/object:Gem::Version
284
298
  version: '1'
285
299
  - !ruby/object:Gem::Dependency
286
- name: byebug
300
+ name: simplecov-console
287
301
  requirement: !ruby/object:Gem::Requirement
288
302
  requirements:
289
303
  - - "~>"
290
304
  - !ruby/object:Gem::Version
291
- version: '10'
305
+ version: '0'
292
306
  type: :development
293
307
  prerelease: false
294
308
  version_requirements: !ruby/object:Gem::Requirement
295
309
  requirements:
296
310
  - - "~>"
297
311
  - !ruby/object:Gem::Version
298
- version: '10'
312
+ version: '0'
299
313
  description: |-
300
314
  Schleuder is a group's email-gateway: subscribers can exchange encrypted emails among themselves, receive emails from non-subscribers and send emails to non-subscribers via the list.
301
315
 
@@ -404,8 +418,9 @@ files:
404
418
  - lib/schleuder/listlogger.rb
405
419
  - lib/schleuder/logger.rb
406
420
  - lib/schleuder/logger_notifications.rb
407
- - lib/schleuder/mail/encrypted_part.rb
408
421
  - lib/schleuder/mail/gpg.rb
422
+ - lib/schleuder/mail/gpg/encrypted_part.rb
423
+ - lib/schleuder/mail/gpg/sign_part.rb
409
424
  - lib/schleuder/mail/message.rb
410
425
  - lib/schleuder/mail/parts_list.rb
411
426
  - lib/schleuder/runner.rb
@@ -445,9 +460,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
445
460
  - !ruby/object:Gem::Version
446
461
  version: '0'
447
462
  requirements: []
448
- rubyforge_project:
449
- rubygems_version: 2.7.6.2
450
- signing_key:
463
+ rubygems_version: 3.2.21
464
+ signing_key:
451
465
  specification_version: 4
452
466
  summary: Schleuder is an encrypting mailing list manager with remailing-capabilities.
453
467
  test_files: []