hexapdf 0.20.0 → 0.20.4
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/CHANGELOG.md +42 -0
- data/data/hexapdf/encoding/glyphlist.txt +4283 -4282
- data/data/hexapdf/encoding/zapfdingbats.txt +203 -202
- data/lib/hexapdf/cli/form.rb +9 -1
- data/lib/hexapdf/encryption/security_handler.rb +5 -1
- data/lib/hexapdf/font/encoding/glyph_list.rb +5 -6
- data/lib/hexapdf/font/type1_wrapper.rb +14 -15
- data/lib/hexapdf/task/dereference.rb +12 -4
- data/lib/hexapdf/task/optimize.rb +3 -3
- data/lib/hexapdf/type/annotation.rb +1 -1
- data/lib/hexapdf/type/signature/adbe_pkcs7_detached.rb +1 -5
- data/lib/hexapdf/type/signature/adbe_x509_rsa_sha1.rb +1 -5
- data/lib/hexapdf/type/signature/handler.rb +39 -11
- data/lib/hexapdf/version.rb +1 -1
- data/lib/hexapdf/writer.rb +11 -3
- data/test/hexapdf/encryption/test_security_handler.rb +11 -3
- data/test/hexapdf/font/test_type1_wrapper.rb +4 -0
- data/test/hexapdf/task/test_optimize.rb +4 -1
- data/test/hexapdf/test_writer.rb +13 -2
- data/test/hexapdf/type/signature/test_handler.rb +33 -7
- data/test/hexapdf/type/test_annotation.rb +7 -1
- metadata +3 -3
@@ -12,6 +12,8 @@
|
|
12
12
|
# implied. See the License for the specific language governing
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
# -----------------------------------------------------------
|
15
|
+
# Modified for use with HexaPDF
|
16
|
+
# -----------------------------------------------------------
|
15
17
|
# Name: ITC Zapf Dingbats Glyph List
|
16
18
|
# Table version: 2.0
|
17
19
|
# Date: September 20, 2002
|
@@ -21,205 +23,204 @@
|
|
21
23
|
# (1) glyph name--upper/lowercase letters and digits
|
22
24
|
# (2) Unicode scalar value--four uppercase hexadecimal digits
|
23
25
|
#
|
24
|
-
a100
|
25
|
-
a101
|
26
|
-
a102
|
27
|
-
a103
|
28
|
-
a104
|
29
|
-
a105
|
30
|
-
a106
|
31
|
-
a107
|
32
|
-
a108
|
33
|
-
a109
|
34
|
-
a10
|
35
|
-
a110
|
36
|
-
a111
|
37
|
-
a112
|
38
|
-
a117
|
39
|
-
a118
|
40
|
-
a119
|
41
|
-
a11
|
42
|
-
a120
|
43
|
-
a121
|
44
|
-
a122
|
45
|
-
a123
|
46
|
-
a124
|
47
|
-
a125
|
48
|
-
a126
|
49
|
-
a127
|
50
|
-
a128
|
51
|
-
a129
|
52
|
-
a12
|
53
|
-
a130
|
54
|
-
a131
|
55
|
-
a132
|
56
|
-
a133
|
57
|
-
a134
|
58
|
-
a135
|
59
|
-
a136
|
60
|
-
a137
|
61
|
-
a138
|
62
|
-
a139
|
63
|
-
a13
|
64
|
-
a140
|
65
|
-
a141
|
66
|
-
a142
|
67
|
-
a143
|
68
|
-
a144
|
69
|
-
a145
|
70
|
-
a146
|
71
|
-
a147
|
72
|
-
a148
|
73
|
-
a149
|
74
|
-
a14
|
75
|
-
a150
|
76
|
-
a151
|
77
|
-
a152
|
78
|
-
a153
|
79
|
-
a154
|
80
|
-
a155
|
81
|
-
a156
|
82
|
-
a157
|
83
|
-
a158
|
84
|
-
a159
|
85
|
-
a15
|
86
|
-
a160
|
87
|
-
a161
|
88
|
-
a162
|
89
|
-
a163
|
90
|
-
a164
|
91
|
-
a165
|
92
|
-
a166
|
93
|
-
a167
|
94
|
-
a168
|
95
|
-
a169
|
96
|
-
a16
|
97
|
-
a170
|
98
|
-
a171
|
99
|
-
a172
|
100
|
-
a173
|
101
|
-
a174
|
102
|
-
a175
|
103
|
-
a176
|
104
|
-
a177
|
105
|
-
a178
|
106
|
-
a179
|
107
|
-
a17
|
108
|
-
a180
|
109
|
-
a181
|
110
|
-
a182
|
111
|
-
a183
|
112
|
-
a184
|
113
|
-
a185
|
114
|
-
a186
|
115
|
-
a187
|
116
|
-
a188
|
117
|
-
a189
|
118
|
-
a18
|
119
|
-
a190
|
120
|
-
a191
|
121
|
-
a192
|
122
|
-
a193
|
123
|
-
a194
|
124
|
-
a195
|
125
|
-
a196
|
126
|
-
a197
|
127
|
-
a198
|
128
|
-
a199
|
129
|
-
a19
|
130
|
-
a1
|
131
|
-
a200
|
132
|
-
a201
|
133
|
-
a202
|
134
|
-
a203
|
135
|
-
a204
|
136
|
-
a205
|
137
|
-
a206
|
138
|
-
a20
|
139
|
-
a21
|
140
|
-
a22
|
141
|
-
a23
|
142
|
-
a24
|
143
|
-
a25
|
144
|
-
a26
|
145
|
-
a27
|
146
|
-
a28
|
147
|
-
a29
|
148
|
-
a2
|
149
|
-
a30
|
150
|
-
a31
|
151
|
-
a32
|
152
|
-
a33
|
153
|
-
a34
|
154
|
-
a35
|
155
|
-
a36
|
156
|
-
a37
|
157
|
-
a38
|
158
|
-
a39
|
159
|
-
a3
|
160
|
-
a40
|
161
|
-
a41
|
162
|
-
a42
|
163
|
-
a43
|
164
|
-
a44
|
165
|
-
a45
|
166
|
-
a46
|
167
|
-
a47
|
168
|
-
a48
|
169
|
-
a49
|
170
|
-
a4
|
171
|
-
a50
|
172
|
-
a51
|
173
|
-
a52
|
174
|
-
a53
|
175
|
-
a54
|
176
|
-
a55
|
177
|
-
a56
|
178
|
-
a57
|
179
|
-
a58
|
180
|
-
a59
|
181
|
-
a5
|
182
|
-
a60
|
183
|
-
a61
|
184
|
-
a62
|
185
|
-
a63
|
186
|
-
a64
|
187
|
-
a65
|
188
|
-
a66
|
189
|
-
a67
|
190
|
-
a68
|
191
|
-
a69
|
192
|
-
a6
|
193
|
-
a70
|
194
|
-
a71
|
195
|
-
a72
|
196
|
-
a73
|
197
|
-
a74
|
198
|
-
a75
|
199
|
-
a76
|
200
|
-
a77
|
201
|
-
a78
|
202
|
-
a79
|
203
|
-
a7
|
204
|
-
a81
|
205
|
-
a82
|
206
|
-
a83
|
207
|
-
a84
|
208
|
-
a85
|
209
|
-
a86
|
210
|
-
a87
|
211
|
-
a88
|
212
|
-
a89
|
213
|
-
a8
|
214
|
-
a90
|
215
|
-
a91
|
216
|
-
a92
|
217
|
-
a93
|
218
|
-
a94
|
219
|
-
a95
|
220
|
-
a96
|
221
|
-
a97
|
222
|
-
a98
|
223
|
-
a99
|
224
|
-
a9
|
225
|
-
#END
|
26
|
+
a100;❞
|
27
|
+
a101;❡
|
28
|
+
a102;❢
|
29
|
+
a103;❣
|
30
|
+
a104;❤
|
31
|
+
a105;✐
|
32
|
+
a106;❥
|
33
|
+
a107;❦
|
34
|
+
a108;❧
|
35
|
+
a109;♠
|
36
|
+
a10;✡
|
37
|
+
a110;♥
|
38
|
+
a111;♦
|
39
|
+
a112;♣
|
40
|
+
a117;✉
|
41
|
+
a118;✈
|
42
|
+
a119;✇
|
43
|
+
a11;☛
|
44
|
+
a120;①
|
45
|
+
a121;②
|
46
|
+
a122;③
|
47
|
+
a123;④
|
48
|
+
a124;⑤
|
49
|
+
a125;⑥
|
50
|
+
a126;⑦
|
51
|
+
a127;⑧
|
52
|
+
a128;⑨
|
53
|
+
a129;⑩
|
54
|
+
a12;☞
|
55
|
+
a130;❶
|
56
|
+
a131;❷
|
57
|
+
a132;❸
|
58
|
+
a133;❹
|
59
|
+
a134;❺
|
60
|
+
a135;❻
|
61
|
+
a136;❼
|
62
|
+
a137;❽
|
63
|
+
a138;❾
|
64
|
+
a139;❿
|
65
|
+
a13;✌
|
66
|
+
a140;➀
|
67
|
+
a141;➁
|
68
|
+
a142;➂
|
69
|
+
a143;➃
|
70
|
+
a144;➄
|
71
|
+
a145;➅
|
72
|
+
a146;➆
|
73
|
+
a147;➇
|
74
|
+
a148;➈
|
75
|
+
a149;➉
|
76
|
+
a14;✍
|
77
|
+
a150;➊
|
78
|
+
a151;➋
|
79
|
+
a152;➌
|
80
|
+
a153;➍
|
81
|
+
a154;➎
|
82
|
+
a155;➏
|
83
|
+
a156;➐
|
84
|
+
a157;➑
|
85
|
+
a158;➒
|
86
|
+
a159;➓
|
87
|
+
a15;✎
|
88
|
+
a160;➔
|
89
|
+
a161;→
|
90
|
+
a162;➣
|
91
|
+
a163;↔
|
92
|
+
a164;↕
|
93
|
+
a165;➙
|
94
|
+
a166;➛
|
95
|
+
a167;➜
|
96
|
+
a168;➝
|
97
|
+
a169;➞
|
98
|
+
a16;✏
|
99
|
+
a170;➟
|
100
|
+
a171;➠
|
101
|
+
a172;➡
|
102
|
+
a173;➢
|
103
|
+
a174;➤
|
104
|
+
a175;➥
|
105
|
+
a176;➦
|
106
|
+
a177;➧
|
107
|
+
a178;➨
|
108
|
+
a179;➩
|
109
|
+
a17;✑
|
110
|
+
a180;➫
|
111
|
+
a181;➭
|
112
|
+
a182;➯
|
113
|
+
a183;➲
|
114
|
+
a184;➳
|
115
|
+
a185;➵
|
116
|
+
a186;➸
|
117
|
+
a187;➺
|
118
|
+
a188;➻
|
119
|
+
a189;➼
|
120
|
+
a18;✒
|
121
|
+
a190;➽
|
122
|
+
a191;➾
|
123
|
+
a192;➚
|
124
|
+
a193;➪
|
125
|
+
a194;➶
|
126
|
+
a195;➹
|
127
|
+
a196;➘
|
128
|
+
a197;➴
|
129
|
+
a198;➷
|
130
|
+
a199;➬
|
131
|
+
a19;✓
|
132
|
+
a1;✁
|
133
|
+
a200;➮
|
134
|
+
a201;➱
|
135
|
+
a202;✃
|
136
|
+
a203;❐
|
137
|
+
a204;❒
|
138
|
+
a205;❮
|
139
|
+
a206;❰
|
140
|
+
a20;✔
|
141
|
+
a21;✕
|
142
|
+
a22;✖
|
143
|
+
a23;✗
|
144
|
+
a24;✘
|
145
|
+
a25;✙
|
146
|
+
a26;✚
|
147
|
+
a27;✛
|
148
|
+
a28;✜
|
149
|
+
a29;✢
|
150
|
+
a2;✂
|
151
|
+
a30;✣
|
152
|
+
a31;✤
|
153
|
+
a32;✥
|
154
|
+
a33;✦
|
155
|
+
a34;✧
|
156
|
+
a35;★
|
157
|
+
a36;✩
|
158
|
+
a37;✪
|
159
|
+
a38;✫
|
160
|
+
a39;✬
|
161
|
+
a3;✄
|
162
|
+
a40;✭
|
163
|
+
a41;✮
|
164
|
+
a42;✯
|
165
|
+
a43;✰
|
166
|
+
a44;✱
|
167
|
+
a45;✲
|
168
|
+
a46;✳
|
169
|
+
a47;✴
|
170
|
+
a48;✵
|
171
|
+
a49;✶
|
172
|
+
a4;☎
|
173
|
+
a50;✷
|
174
|
+
a51;✸
|
175
|
+
a52;✹
|
176
|
+
a53;✺
|
177
|
+
a54;✻
|
178
|
+
a55;✼
|
179
|
+
a56;✽
|
180
|
+
a57;✾
|
181
|
+
a58;✿
|
182
|
+
a59;❀
|
183
|
+
a5;✆
|
184
|
+
a60;❁
|
185
|
+
a61;❂
|
186
|
+
a62;❃
|
187
|
+
a63;❄
|
188
|
+
a64;❅
|
189
|
+
a65;❆
|
190
|
+
a66;❇
|
191
|
+
a67;❈
|
192
|
+
a68;❉
|
193
|
+
a69;❊
|
194
|
+
a6;✝
|
195
|
+
a70;❋
|
196
|
+
a71;●
|
197
|
+
a72;❍
|
198
|
+
a73;■
|
199
|
+
a74;❏
|
200
|
+
a75;❑
|
201
|
+
a76;▲
|
202
|
+
a77;▼
|
203
|
+
a78;◆
|
204
|
+
a79;❖
|
205
|
+
a7;✞
|
206
|
+
a81;◗
|
207
|
+
a82;❘
|
208
|
+
a83;❙
|
209
|
+
a84;❚
|
210
|
+
a85;❯
|
211
|
+
a86;❱
|
212
|
+
a87;❲
|
213
|
+
a88;❳
|
214
|
+
a89;❨
|
215
|
+
a8;✟
|
216
|
+
a90;❩
|
217
|
+
a91;❬
|
218
|
+
a92;❭
|
219
|
+
a93;❪
|
220
|
+
a94;❫
|
221
|
+
a95;❴
|
222
|
+
a96;❵
|
223
|
+
a97;❛
|
224
|
+
a98;❜
|
225
|
+
a99;❝
|
226
|
+
a9;✠
|
data/lib/hexapdf/cli/form.rb
CHANGED
@@ -135,12 +135,20 @@ module HexaPDF
|
|
135
135
|
concrete_field_type = field.concrete_field_type
|
136
136
|
nice_field_type = concrete_field_type.to_s.split('_').map(&:capitalize).join(' ')
|
137
137
|
position = "(#{widget[:Rect].left}, #{widget[:Rect].bottom})"
|
138
|
+
field_value = if !field.field_value || concrete_field_type != :signature_field
|
139
|
+
field.field_value.inspect
|
140
|
+
else
|
141
|
+
sig = field.field_value
|
142
|
+
temp = "#{sig.signer_name} (#{sig.signing_time})"
|
143
|
+
temp << " (#{sig.signing_reason})" if sig.signing_reason
|
144
|
+
temp
|
145
|
+
end
|
138
146
|
|
139
147
|
puts " #{field_name}"
|
140
148
|
if command_parser.verbosity_info?
|
141
149
|
printf(" └─ %-22s | %-20s\n", nice_field_type, position)
|
142
150
|
end
|
143
|
-
puts " └─ #{
|
151
|
+
puts " └─ #{field_value}"
|
144
152
|
if command_parser.verbosity_info?
|
145
153
|
if field.field_type == :Ch
|
146
154
|
puts " └─ Options: #{field.option_items.map(&:inspect).join(', ')}"
|
@@ -249,6 +249,10 @@ module HexaPDF
|
|
249
249
|
@document = document
|
250
250
|
@encrypt_dict_hash = nil
|
251
251
|
@encryption_details = {}
|
252
|
+
|
253
|
+
@is_encrypt_dict = document.revisions.each.with_object({}) do |rev, hash|
|
254
|
+
hash[rev.trailer[:Encrypt]] = true
|
255
|
+
end
|
252
256
|
end
|
253
257
|
|
254
258
|
# Checks if the encryption key computed by this security handler is derived from the
|
@@ -262,7 +266,7 @@ module HexaPDF
|
|
262
266
|
#
|
263
267
|
# See: PDF1.7 s7.6.2
|
264
268
|
def decrypt(obj)
|
265
|
-
return obj if obj
|
269
|
+
return obj if @is_encrypt_dict[obj] || obj.type == :XRef
|
266
270
|
|
267
271
|
key = object_key(obj.oid, obj.gen, string_algorithm)
|
268
272
|
each_string_in_object(obj.value) do |str|
|
@@ -131,13 +131,12 @@ module HexaPDF
|
|
131
131
|
def load_file(file)
|
132
132
|
name2uni = {}
|
133
133
|
uni2name = {}
|
134
|
-
File.open(file, '
|
134
|
+
File.open(file, 'r:UTF-8') do |f|
|
135
|
+
25.times { f.gets } # Skip comments
|
135
136
|
while (line = f.gets)
|
136
|
-
|
137
|
-
|
138
|
-
name =
|
139
|
-
codes = line[index + 1, 50].split(" ").map(&:hex).pack('U*')
|
140
|
-
name2uni[name] = codes
|
137
|
+
name, codes = line.split(';', 2)
|
138
|
+
name = name.to_sym
|
139
|
+
name2uni[name] = codes.chomp!
|
141
140
|
uni2name[codes] = name unless uni2name.key?(codes)
|
142
141
|
end
|
143
142
|
end
|
@@ -212,24 +212,23 @@ module HexaPDF
|
|
212
212
|
|
213
213
|
# Creates a PDF object representing the wrapped font for the given PDF document.
|
214
214
|
def create_pdf_object(document)
|
215
|
-
fd = document.
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
215
|
+
fd = document.add({Type: :FontDescriptor,
|
216
|
+
FontName: @wrapped_font.font_name.intern,
|
217
|
+
FontWeight: @wrapped_font.weight_class,
|
218
|
+
FontBBox: @wrapped_font.bounding_box,
|
219
|
+
ItalicAngle: @wrapped_font.italic_angle || 0,
|
220
|
+
Ascent: @wrapped_font.ascender || 0,
|
221
|
+
Descent: @wrapped_font.descender || 0,
|
222
|
+
CapHeight: @wrapped_font.cap_height,
|
223
|
+
XHeight: @wrapped_font.x_height,
|
224
|
+
StemH: @wrapped_font.dominant_horizontal_stem_width,
|
225
|
+
StemV: @wrapped_font.dominant_vertical_stem_width || 0})
|
226
226
|
fd.flag(:fixed_pitch) if @wrapped_font.metrics.is_fixed_pitch
|
227
227
|
fd.flag(@wrapped_font.metrics.character_set == 'Special' ? :symbolic : :nonsymbolic)
|
228
|
-
fd.must_be_indirect = true
|
229
228
|
|
230
|
-
dict = document.
|
231
|
-
|
232
|
-
|
229
|
+
dict = document.add({Type: :Font, Subtype: :Type1,
|
230
|
+
BaseFont: @wrapped_font.font_name.intern,
|
231
|
+
FontDescriptor: fd})
|
233
232
|
dict.font_wrapper = self
|
234
233
|
|
235
234
|
document.register_listener(:complete_objects) do
|
@@ -68,9 +68,9 @@ module HexaPDF
|
|
68
68
|
|
69
69
|
def execute #:nodoc:
|
70
70
|
if @object
|
71
|
-
|
71
|
+
dereference_all(@object)
|
72
72
|
else
|
73
|
-
|
73
|
+
dereference_all(@doc.trailer)
|
74
74
|
@result = []
|
75
75
|
@doc.each(only_current: false) do |obj|
|
76
76
|
if !@seen.key?(obj.data) && obj.type != :ObjStm && obj.type != :XRef
|
@@ -83,6 +83,11 @@ module HexaPDF
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
+
def dereference_all(object) # :nodoc:
|
87
|
+
@dereference_later = [object]
|
88
|
+
dereference(@dereference_later.pop) until @dereference_later.empty?
|
89
|
+
end
|
90
|
+
|
86
91
|
def dereference(object) #:nodoc:
|
87
92
|
return object if object.nil? || @seen.key?(object.data)
|
88
93
|
@seen[object.data] = true
|
@@ -97,9 +102,12 @@ module HexaPDF
|
|
97
102
|
when Array
|
98
103
|
val.map! {|v| recurse(v) }
|
99
104
|
when HexaPDF::Reference
|
100
|
-
|
105
|
+
val = @doc.object(val)
|
106
|
+
@dereference_later.push(val)
|
107
|
+
val
|
101
108
|
when HexaPDF::Object
|
102
|
-
|
109
|
+
@dereference_later.push(val)
|
110
|
+
val
|
103
111
|
else
|
104
112
|
val
|
105
113
|
end
|
@@ -234,7 +234,7 @@ module HexaPDF
|
|
234
234
|
page.contents = processor.result
|
235
235
|
page[:Contents].set_filter(:FlateDecode)
|
236
236
|
xobjects = page.resources[:XObject]
|
237
|
-
processor.used_references.each {|ref| used_refs[xobjects[ref]] = true }
|
237
|
+
processor.used_references.each {|ref| used_refs[xobjects[ref]] = true } if xobjects
|
238
238
|
end
|
239
239
|
used_refs
|
240
240
|
end
|
@@ -245,7 +245,7 @@ module HexaPDF
|
|
245
245
|
unless used_refs
|
246
246
|
used_refs = {}
|
247
247
|
doc.pages.each do |page|
|
248
|
-
xobjects = page.resources[:XObject]
|
248
|
+
next unless (xobjects = page.resources[:XObject])
|
249
249
|
HexaPDF::Content::Parser.parse(page.contents) do |op, operands|
|
250
250
|
used_refs[xobjects[operands[0]]] = true if op == :Do
|
251
251
|
end
|
@@ -253,7 +253,7 @@ module HexaPDF
|
|
253
253
|
end
|
254
254
|
|
255
255
|
doc.pages.each do |page|
|
256
|
-
xobjects = page.resources[:XObject]
|
256
|
+
next unless (xobjects = page.resources[:XObject])
|
257
257
|
xobjects.each do |key, obj|
|
258
258
|
next if used_refs[obj]
|
259
259
|
xobjects.delete(key)
|
@@ -160,7 +160,7 @@ module HexaPDF
|
|
160
160
|
end
|
161
161
|
return unless entry.kind_of?(HexaPDF::Stream)
|
162
162
|
|
163
|
-
if entry.type == :XObject && entry[:Subtype] == :Form
|
163
|
+
if entry.type == :XObject && entry[:Subtype] == :Form && !entry.instance_of?(HexaPDF::Stream)
|
164
164
|
entry
|
165
165
|
elsif (entry[:Type].nil? || entry[:Type] == :XObject) &&
|
166
166
|
(entry[:Subtype].nil? || entry[:Subtype] == :Form) && entry[:BBox]
|
@@ -78,7 +78,7 @@ module HexaPDF
|
|
78
78
|
|
79
79
|
# Verifies the signature using the provided OpenSSL::X509::Store object.
|
80
80
|
def verify(store, allow_self_signed: false)
|
81
|
-
result =
|
81
|
+
result = super
|
82
82
|
|
83
83
|
signer_info = self.signer_info
|
84
84
|
signer_certificate = self.signer_certificate
|
@@ -104,10 +104,6 @@ module HexaPDF
|
|
104
104
|
result.log(:error, "Certificate key usage is missing 'Digital Signature'")
|
105
105
|
end
|
106
106
|
|
107
|
-
verify_signing_time(result)
|
108
|
-
|
109
|
-
store.verify_callback = store_verification_callback(result,
|
110
|
-
allow_self_signed: allow_self_signed)
|
111
107
|
if @pkcs7.verify(certificate_chain, store, signature_dict.signed_data,
|
112
108
|
OpenSSL::PKCS7::DETACHED | OpenSSL::PKCS7::BINARY)
|
113
109
|
result.log(:info, "Signature valid")
|
@@ -60,7 +60,7 @@ module HexaPDF
|
|
60
60
|
|
61
61
|
# Verifies the signature using the provided OpenSSL::X509::Store object.
|
62
62
|
def verify(store, allow_self_signed: false)
|
63
|
-
result =
|
63
|
+
result = super
|
64
64
|
|
65
65
|
signer_certificate = self.signer_certificate
|
66
66
|
certificate_chain = self.certificate_chain
|
@@ -76,10 +76,6 @@ module HexaPDF
|
|
76
76
|
return result
|
77
77
|
end
|
78
78
|
|
79
|
-
verify_signing_time(result)
|
80
|
-
|
81
|
-
store.verify_callback = store_verification_callback(result,
|
82
|
-
allow_self_signed: allow_self_signed)
|
83
79
|
store.verify(signer_certificate, certificate_chain)
|
84
80
|
|
85
81
|
if signer_certificate.public_key.verify(OpenSSL::Digest.new('SHA1'),
|