tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
gpgme: fix i686 build
sg2002
3 years ago
e4e3dafe
01188530
+371
2 changed files
expand all
collapse all
unified
split
pkgs
development
libraries
gpgme
default.nix
t-addexistingsubkey-i686.patch
+2
pkgs/development/libraries/gpgme/default.nix
···
35
35
};
36
36
37
37
patches = [
38
38
+
# Fix compilation on i686, would not be needed after 1.18.1 releases, https://dev.gnupg.org/T5522
39
39
+
./t-addexistingsubkey-i686.patch
38
40
# https://dev.gnupg.org/rMc4cf527ea227edb468a84bf9b8ce996807bd6992
39
41
./fix_gpg_list_keys.diff
40
42
# https://lists.gnupg.org/pipermail/gnupg-devel/2020-April/034591.html
+369
pkgs/development/libraries/gpgme/t-addexistingsubkey-i686.patch
···
1
1
+
From c977424a1d39751fc5055131ad3f7819d421dcc8 Mon Sep 17 00:00:00 2001
2
2
+
From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
3
3
+
Date: Wed, 17 Aug 2022 14:51:19 +0200
4
4
+
Subject: [PATCH 1/5] qt: Make sure expiration time is interpreted as unsigned
5
5
+
number
6
6
+
7
7
+
* lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp (add_subkey): Convert
8
8
+
expiration time to uint_least32_t.
9
9
+
--
10
10
+
11
11
+
This fixes the corresponding test on 32-bit systems where time_t (the
12
12
+
return type of expirationTime()) is a signed 32-bit integer type.
13
13
+
14
14
+
GnuPG-bug-id: 6137
15
15
+
---
16
16
+
lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp | 3 ++-
17
17
+
1 file changed, 2 insertions(+), 1 deletion(-)
18
18
+
19
19
+
diff --git a/lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp b/lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp
20
20
+
index 32e2c292..b74e7a06 100644
21
21
+
--- a/lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp
22
22
+
+++ b/lang/qt/src/qgpgmeaddexistingsubkeyjob.cpp
23
23
+
@@ -64,7 +64,8 @@ static QGpgMEAddExistingSubkeyJob::result_type add_subkey(Context *ctx, const Ke
24
24
+
std::unique_ptr<GpgAddExistingSubkeyEditInteractor> interactor{new GpgAddExistingSubkeyEditInteractor{subkey.keyGrip()}};
25
25
+
26
26
+
if (!subkey.neverExpires()) {
27
27
+
- const auto expiry = QDateTime::fromSecsSinceEpoch(subkey.expirationTime(), Qt::UTC).toString(u"yyyyMMdd'T'hhmmss").toStdString();
28
28
+
+ const auto expiry = QDateTime::fromSecsSinceEpoch(uint_least32_t(subkey.expirationTime()),
29
29
+
+ Qt::UTC).toString(u"yyyyMMdd'T'hhmmss").toStdString();
30
30
+
interactor->setExpiry(expiry);
31
31
+
}
32
32
+
33
33
+
--
34
34
+
2.36.0.windows.1
35
35
+
36
36
+
37
37
+
From 81d4b7f2d7077297d76af5728949d8f2bdff8cd5 Mon Sep 17 00:00:00 2001
38
38
+
From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
39
39
+
Date: Wed, 17 Aug 2022 14:56:13 +0200
40
40
+
Subject: [PATCH 2/5] qt,tests: Log the actual error code if the assertion
41
41
+
fails
42
42
+
43
43
+
* lang/qt/tests/t-addexistingsubkey.cpp (
44
44
+
AddExistingSubkeyJobTest::testAddExistingSubkeyAsync,
45
45
+
AddExistingSubkeyJobTest::testAddExistingSubkeySync,
46
46
+
AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Use
47
47
+
QCOMPARE instead of QVERIFY for asserting equality.
48
48
+
--
49
49
+
50
50
+
GnuPG-bug-id: 6137
51
51
+
---
52
52
+
lang/qt/tests/t-addexistingsubkey.cpp | 6 +++---
53
53
+
1 file changed, 3 insertions(+), 3 deletions(-)
54
54
+
55
55
+
diff --git a/lang/qt/tests/t-addexistingsubkey.cpp b/lang/qt/tests/t-addexistingsubkey.cpp
56
56
+
index 589c90bf..2e654cec 100644
57
57
+
--- a/lang/qt/tests/t-addexistingsubkey.cpp
58
58
+
+++ b/lang/qt/tests/t-addexistingsubkey.cpp
59
59
+
@@ -168,7 +168,7 @@ private Q_SLOTS:
60
60
+
QSignalSpy spy (this, SIGNAL(asyncDone()));
61
61
+
QVERIFY(spy.wait(QSIGNALSPY_TIMEOUT));
62
62
+
63
63
+
- QVERIFY(result.code() == GPG_ERR_NO_ERROR);
64
64
+
+ QCOMPARE(result.code(), static_cast<int>(GPG_ERR_NO_ERROR));
65
65
+
key.update();
66
66
+
QCOMPARE(key.numSubkeys(), 3u);
67
67
+
}
68
68
+
@@ -190,7 +190,7 @@ private Q_SLOTS:
69
69
+
70
70
+
const auto result = job->exec(key, sourceSubkey);
71
71
+
72
72
+
- QVERIFY(result.code() == GPG_ERR_NO_ERROR);
73
73
+
+ QCOMPARE(result.code(), static_cast<int>(GPG_ERR_NO_ERROR));
74
74
+
key.update();
75
75
+
QCOMPARE(key.numSubkeys(), 3u);
76
76
+
QCOMPARE(key.subkey(2).expirationTime(), 0);
77
77
+
@@ -213,7 +213,7 @@ private Q_SLOTS:
78
78
+
79
79
+
const auto result = job->exec(key, sourceSubkey);
80
80
+
81
81
+
- QVERIFY(result.code() == GPG_ERR_NO_ERROR);
82
82
+
+ QCOMPARE(result.code(), static_cast<int>(GPG_ERR_NO_ERROR));
83
83
+
key.update();
84
84
+
QCOMPARE(key.numSubkeys(), 3u);
85
85
+
86
86
+
--
87
87
+
2.36.0.windows.1
88
88
+
89
89
+
90
90
+
From f2b48de26b8f8c48c293423eda712831544924f6 Mon Sep 17 00:00:00 2001
91
91
+
From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
92
92
+
Date: Wed, 17 Aug 2022 15:22:29 +0200
93
93
+
Subject: [PATCH 3/5] qt,tests: Make sure expiration time is interpreted as
94
94
+
unsigned number
95
95
+
96
96
+
* lang/qt/tests/t-addexistingsubkey.cpp,
97
97
+
lang/qt/tests/t-changeexpiryjob.cpp: Convert expiration time to
98
98
+
uint_least32_t.
99
99
+
--
100
100
+
101
101
+
This doesn't change the outcome of the tests (they also pass without
102
102
+
this change because of the expiration dates of the test keys), but it's
103
103
+
still good practise to treat the expiration time as an unsigned number
104
104
+
if the assertions check that the expiration time is in some range.
105
105
+
106
106
+
GnuPG-bug-id: 6137
107
107
+
---
108
108
+
lang/qt/tests/t-addexistingsubkey.cpp | 6 +++---
109
109
+
lang/qt/tests/t-changeexpiryjob.cpp | 26 +++++++++++++-------------
110
110
+
2 files changed, 16 insertions(+), 16 deletions(-)
111
111
+
112
112
+
diff --git a/lang/qt/tests/t-addexistingsubkey.cpp b/lang/qt/tests/t-addexistingsubkey.cpp
113
113
+
index 2e654cec..87eadf43 100644
114
114
+
--- a/lang/qt/tests/t-addexistingsubkey.cpp
115
115
+
+++ b/lang/qt/tests/t-addexistingsubkey.cpp
116
116
+
@@ -222,9 +222,9 @@ private Q_SLOTS:
117
117
+
// several times
118
118
+
const auto allowedDeltaTSeconds = 1;
119
119
+
const auto expectedExpirationRange = std::make_pair(
120
120
+
- sourceSubkey.expirationTime() - allowedDeltaTSeconds,
121
121
+
- sourceSubkey.expirationTime() + allowedDeltaTSeconds);
122
122
+
- const auto actualExpiration = key.subkey(2).expirationTime();
123
123
+
+ uint_least32_t(sourceSubkey.expirationTime()) - allowedDeltaTSeconds,
124
124
+
+ uint_least32_t(sourceSubkey.expirationTime()) + allowedDeltaTSeconds);
125
125
+
+ const auto actualExpiration = uint_least32_t(key.subkey(2).expirationTime());
126
126
+
QVERIFY2(actualExpiration >= expectedExpirationRange.first,
127
127
+
("actual: " + std::to_string(actualExpiration) +
128
128
+
"; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
129
129
+
diff --git a/lang/qt/tests/t-changeexpiryjob.cpp b/lang/qt/tests/t-changeexpiryjob.cpp
130
130
+
index 090002f3..3da74d46 100644
131
131
+
--- a/lang/qt/tests/t-changeexpiryjob.cpp
132
132
+
+++ b/lang/qt/tests/t-changeexpiryjob.cpp
133
133
+
@@ -70,7 +70,7 @@ private Q_SLOTS:
134
134
+
QVERIFY(!key.isNull());
135
135
+
QVERIFY(!key.subkey(0).isNull());
136
136
+
QVERIFY(!key.subkey(1).isNull());
137
137
+
- const auto subkeyExpiration = key.subkey(1).expirationTime();
138
138
+
+ const auto subkeyExpiration = uint_least32_t(key.subkey(1).expirationTime());
139
139
+
140
140
+
{
141
141
+
// Create the job
142
142
+
@@ -101,7 +101,7 @@ private Q_SLOTS:
143
143
+
newExpirationDate.toSecsSinceEpoch() - 10,
144
144
+
QDateTime::currentDateTime().addDays(1).toSecsSinceEpoch());
145
145
+
{
146
146
+
- const auto actualExpiration = key.subkey(0).expirationTime();
147
147
+
+ const auto actualExpiration = uint_least32_t(key.subkey(0).expirationTime());
148
148
+
QVERIFY2(actualExpiration >= expectedExpirationRange.first,
149
149
+
("actual: " + std::to_string(actualExpiration) +
150
150
+
"; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
151
151
+
@@ -110,7 +110,7 @@ private Q_SLOTS:
152
152
+
"; expected: " + std::to_string(expectedExpirationRange.second)).c_str());
153
153
+
}
154
154
+
{
155
155
+
- const auto actualExpiration = key.subkey(1).expirationTime();
156
156
+
+ const auto actualExpiration = uint_least32_t(key.subkey(1).expirationTime());
157
157
+
QCOMPARE(actualExpiration, subkeyExpiration); // unchanged
158
158
+
}
159
159
+
}
160
160
+
@@ -133,7 +133,7 @@ private Q_SLOTS:
161
161
+
QVERIFY(!key.isNull());
162
162
+
QVERIFY(!key.subkey(0).isNull());
163
163
+
QVERIFY(!key.subkey(1).isNull());
164
164
+
- const auto primaryKeyExpiration = key.subkey(0).expirationTime();
165
165
+
+ const auto primaryKeyExpiration = uint_least32_t(key.subkey(0).expirationTime());
166
166
+
167
167
+
{
168
168
+
// Create the job
169
169
+
@@ -164,11 +164,11 @@ private Q_SLOTS:
170
170
+
newExpirationDate.toSecsSinceEpoch() - 10,
171
171
+
QDateTime::currentDateTime().addDays(2).toSecsSinceEpoch());
172
172
+
{
173
173
+
- const auto actualExpiration = key.subkey(0).expirationTime();
174
174
+
+ const auto actualExpiration = uint_least32_t(key.subkey(0).expirationTime());
175
175
+
QCOMPARE(actualExpiration, primaryKeyExpiration); // unchanged
176
176
+
}
177
177
+
{
178
178
+
- const auto actualExpiration = key.subkey(1).expirationTime();
179
179
+
+ const auto actualExpiration = uint_least32_t(key.subkey(1).expirationTime());
180
180
+
QVERIFY2(actualExpiration >= expectedExpirationRange.first,
181
181
+
("actual: " + std::to_string(actualExpiration) +
182
182
+
"; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
183
183
+
@@ -196,7 +196,7 @@ private Q_SLOTS:
184
184
+
QVERIFY(!key.isNull());
185
185
+
QVERIFY(!key.subkey(0).isNull());
186
186
+
QVERIFY(!key.subkey(1).isNull());
187
187
+
- const auto subkeyExpiration = key.subkey(1).expirationTime();
188
188
+
+ const auto subkeyExpiration = uint_least32_t(key.subkey(1).expirationTime());
189
189
+
190
190
+
{
191
191
+
// Create the job
192
192
+
@@ -228,7 +228,7 @@ private Q_SLOTS:
193
193
+
newExpirationDate.toSecsSinceEpoch() - 10,
194
194
+
QDateTime::currentDateTime().addDays(3).toSecsSinceEpoch());
195
195
+
{
196
196
+
- const auto actualExpiration = key.subkey(0).expirationTime();
197
197
+
+ const auto actualExpiration = uint_least32_t(key.subkey(0).expirationTime());
198
198
+
QVERIFY2(actualExpiration >= expectedExpirationRange.first,
199
199
+
("actual: " + std::to_string(actualExpiration) +
200
200
+
"; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
201
201
+
@@ -237,7 +237,7 @@ private Q_SLOTS:
202
202
+
"; expected: " + std::to_string(expectedExpirationRange.second)).c_str());
203
203
+
}
204
204
+
{
205
205
+
- const auto actualExpiration = key.subkey(1).expirationTime();
206
206
+
+ const auto actualExpiration = uint_least32_t(key.subkey(1).expirationTime());
207
207
+
QCOMPARE(actualExpiration, subkeyExpiration); // unchanged
208
208
+
}
209
209
+
}
210
210
+
@@ -291,7 +291,7 @@ private Q_SLOTS:
211
211
+
newExpirationDate.toSecsSinceEpoch() - 10,
212
212
+
QDateTime::currentDateTime().addDays(4).toSecsSinceEpoch());
213
213
+
{
214
214
+
- const auto actualExpiration = key.subkey(0).expirationTime();
215
215
+
+ const auto actualExpiration = uint_least32_t(key.subkey(0).expirationTime());
216
216
+
QVERIFY2(actualExpiration >= expectedExpirationRange.first,
217
217
+
("actual: " + std::to_string(actualExpiration) +
218
218
+
"; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
219
219
+
@@ -300,7 +300,7 @@ private Q_SLOTS:
220
220
+
"; expected: " + std::to_string(expectedExpirationRange.second)).c_str());
221
221
+
}
222
222
+
{
223
223
+
- const auto actualExpiration = key.subkey(1).expirationTime();
224
224
+
+ const auto actualExpiration = uint_least32_t(key.subkey(1).expirationTime());
225
225
+
QVERIFY2(actualExpiration >= expectedExpirationRange.first,
226
226
+
("actual: " + std::to_string(actualExpiration) +
227
227
+
"; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
228
228
+
@@ -359,7 +359,7 @@ private Q_SLOTS:
229
229
+
newExpirationDate.toSecsSinceEpoch() - 10,
230
230
+
QDateTime::currentDateTime().addDays(5).toSecsSinceEpoch());
231
231
+
{
232
232
+
- const auto actualExpiration = key.subkey(0).expirationTime();
233
233
+
+ const auto actualExpiration = uint_least32_t(key.subkey(0).expirationTime());
234
234
+
QVERIFY2(actualExpiration >= expectedExpirationRange.first,
235
235
+
("actual: " + std::to_string(actualExpiration) +
236
236
+
"; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
237
237
+
@@ -368,7 +368,7 @@ private Q_SLOTS:
238
238
+
"; expected: " + std::to_string(expectedExpirationRange.second)).c_str());
239
239
+
}
240
240
+
{
241
241
+
- const auto actualExpiration = key.subkey(1).expirationTime();
242
242
+
+ const auto actualExpiration = uint_least32_t(key.subkey(1).expirationTime());
243
243
+
QVERIFY2(actualExpiration >= expectedExpirationRange.first,
244
244
+
("actual: " + std::to_string(actualExpiration) +
245
245
+
"; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
246
246
+
--
247
247
+
2.36.0.windows.1
248
248
+
249
249
+
250
250
+
From 2fa5c80aeba4528b3bdf41ec5740e7db5d4b6d2b Mon Sep 17 00:00:00 2001
251
251
+
From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
252
252
+
Date: Thu, 18 Aug 2022 10:43:19 +0200
253
253
+
Subject: [PATCH 4/5] cpp: Fix handling of "no key" or "invalid time"
254
254
+
situations
255
255
+
256
256
+
* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
257
257
+
(GpgAddExistingSubkeyEditInteractor::Private::nextState): Fix inverted
258
258
+
logic of string comparisons.
259
259
+
--
260
260
+
261
261
+
This fixes the problem that the interactor didn't return the proper
262
262
+
error code if gpg didn't accept the key grip or the expiration date.
263
263
+
264
264
+
GnuPG-bug-id: 6137
265
265
+
---
266
266
+
lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp | 4 ++--
267
267
+
1 file changed, 2 insertions(+), 2 deletions(-)
268
268
+
269
269
+
diff --git a/lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp b/lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
270
270
+
index 547e613d..8eec7460 100644
271
271
+
--- a/lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
272
272
+
+++ b/lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
273
273
+
@@ -136,7 +136,7 @@ unsigned int GpgAddExistingSubkeyEditInteractor::Private::nextState(unsigned int
274
274
+
strcmp(args, "keygen.flags") == 0) {
275
275
+
return FLAGS;
276
276
+
} else if (status == GPGME_STATUS_GET_LINE &&
277
277
+
- strcmp(args, "keygen.keygrip")) {
278
278
+
+ strcmp(args, "keygen.keygrip") == 0) {
279
279
+
err = NO_KEY_ERROR;
280
280
+
return ERROR;
281
281
+
}
282
282
+
@@ -157,7 +157,7 @@ unsigned int GpgAddExistingSubkeyEditInteractor::Private::nextState(unsigned int
283
283
+
strcmp(args, "keyedit.prompt") == 0) {
284
284
+
return QUIT;
285
285
+
} else if (status == GPGME_STATUS_GET_LINE &&
286
286
+
- strcmp(args, "keygen.valid")) {
287
287
+
+ strcmp(args, "keygen.valid") == 0) {
288
288
+
err = INV_TIME_ERROR;
289
289
+
return ERROR;
290
290
+
}
291
291
+
--
292
292
+
2.36.0.windows.1
293
293
+
294
294
+
295
295
+
From 2e7a61b898fccc1c20000b79dee83cd980901fa9 Mon Sep 17 00:00:00 2001
296
296
+
From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
297
297
+
Date: Thu, 18 Aug 2022 10:55:09 +0200
298
298
+
Subject: [PATCH 5/5] qt,tests: Make test pass on 32-bit systems
299
299
+
300
300
+
* lang/qt/tests/t-addexistingsubkey.cpp
301
301
+
(AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration): Handle
302
302
+
negative expiration date.
303
303
+
--
304
304
+
305
305
+
On 32-bit systems the expiration date of the test key overflows. This
306
306
+
will cause the AddExistingSubkeyJob to fail. We expect it to fail with
307
307
+
an "invalid time" error.
308
308
+
309
309
+
GnuPG-bug-id: 6137
310
310
+
---
311
311
+
lang/qt/tests/t-addexistingsubkey.cpp | 42 +++++++++++++++------------
312
312
+
1 file changed, 24 insertions(+), 18 deletions(-)
313
313
+
314
314
+
diff --git a/lang/qt/tests/t-addexistingsubkey.cpp b/lang/qt/tests/t-addexistingsubkey.cpp
315
315
+
index 87eadf43..c0eee57b 100644
316
316
+
--- a/lang/qt/tests/t-addexistingsubkey.cpp
317
317
+
+++ b/lang/qt/tests/t-addexistingsubkey.cpp
318
318
+
@@ -213,24 +213,30 @@ private Q_SLOTS:
319
319
+
320
320
+
const auto result = job->exec(key, sourceSubkey);
321
321
+
322
322
+
- QCOMPARE(result.code(), static_cast<int>(GPG_ERR_NO_ERROR));
323
323
+
- key.update();
324
324
+
- QCOMPARE(key.numSubkeys(), 3u);
325
325
+
-
326
326
+
- // allow 1 second different expiration because gpg calculates with
327
327
+
- // expiration as difference to current time and takes current time
328
328
+
- // several times
329
329
+
- const auto allowedDeltaTSeconds = 1;
330
330
+
- const auto expectedExpirationRange = std::make_pair(
331
331
+
- uint_least32_t(sourceSubkey.expirationTime()) - allowedDeltaTSeconds,
332
332
+
- uint_least32_t(sourceSubkey.expirationTime()) + allowedDeltaTSeconds);
333
333
+
- const auto actualExpiration = uint_least32_t(key.subkey(2).expirationTime());
334
334
+
- QVERIFY2(actualExpiration >= expectedExpirationRange.first,
335
335
+
- ("actual: " + std::to_string(actualExpiration) +
336
336
+
- "; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
337
337
+
- QVERIFY2(actualExpiration <= expectedExpirationRange.second,
338
338
+
- ("actual: " + std::to_string(actualExpiration) +
339
339
+
- "; expected: " + std::to_string(expectedExpirationRange.second)).c_str());
340
340
+
+ if (sourceSubkey.expirationTime() > 0) {
341
341
+
+ QCOMPARE(result.code(), static_cast<int>(GPG_ERR_NO_ERROR));
342
342
+
+ key.update();
343
343
+
+ QCOMPARE(key.numSubkeys(), 3u);
344
344
+
+
345
345
+
+ // allow 1 second different expiration because gpg calculates with
346
346
+
+ // expiration as difference to current time and takes current time
347
347
+
+ // several times
348
348
+
+ const auto allowedDeltaTSeconds = 1;
349
349
+
+ const auto expectedExpirationRange = std::make_pair(
350
350
+
+ uint_least32_t(sourceSubkey.expirationTime()) - allowedDeltaTSeconds,
351
351
+
+ uint_least32_t(sourceSubkey.expirationTime()) + allowedDeltaTSeconds);
352
352
+
+ const auto actualExpiration = uint_least32_t(key.subkey(2).expirationTime());
353
353
+
+ QVERIFY2(actualExpiration >= expectedExpirationRange.first,
354
354
+
+ ("actual: " + std::to_string(actualExpiration) +
355
355
+
+ "; expected: " + std::to_string(expectedExpirationRange.first)).c_str());
356
356
+
+ QVERIFY2(actualExpiration <= expectedExpirationRange.second,
357
357
+
+ ("actual: " + std::to_string(actualExpiration) +
358
358
+
+ "; expected: " + std::to_string(expectedExpirationRange.second)).c_str());
359
359
+
+ } else {
360
360
+
+ // on 32-bit systems the expiration date of the test key overflows;
361
361
+
+ // in this case we expect an appropriate error code
362
362
+
+ QCOMPARE(result.code(), static_cast<int>(GPG_ERR_INV_TIME));
363
363
+
+ }
364
364
+
}
365
365
+
366
366
+
private:
367
367
+
--
368
368
+
2.36.0.windows.1
369
369
+