pki_express 1.3.1 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +2 -2
  3. data/.github/workflows/test.yml +21 -21
  4. data/.gitignore +27 -27
  5. data/CHANGELOG.md +19 -16
  6. data/Gemfile +8 -7
  7. data/README.md +24 -24
  8. data/Rakefile +6 -6
  9. data/lib/pki_express/auth_complete_result.rb +21 -21
  10. data/lib/pki_express/auth_start_result.rb +76 -76
  11. data/lib/pki_express/authentication.rb +284 -284
  12. data/lib/pki_express/base_signer.rb +54 -54
  13. data/lib/pki_express/cades_signature.rb +89 -89
  14. data/lib/pki_express/cades_signature_starter.rb +242 -242
  15. data/lib/pki_express/check_service_result.rb +15 -15
  16. data/lib/pki_express/command_error.rb +13 -13
  17. data/lib/pki_express/commands.rb +24 -24
  18. data/lib/pki_express/digest_algorithm.rb +118 -118
  19. data/lib/pki_express/digest_algorithm_and_value.rb +30 -30
  20. data/lib/pki_express/discovery_service_result.rb +25 -25
  21. data/lib/pki_express/enum.rb +9 -9
  22. data/lib/pki_express/error_codes.rb +46 -46
  23. data/lib/pki_express/installation_not_found_error.rb +8 -8
  24. data/lib/pki_express/name.rb +47 -47
  25. data/lib/pki_express/oids.rb +30 -30
  26. data/lib/pki_express/pades_certification_level.rb +7 -7
  27. data/lib/pki_express/pades_horizontal_align.rb +9 -9
  28. data/lib/pki_express/pades_measurement_units.rb +8 -8
  29. data/lib/pki_express/pades_page_optimization.rb +50 -50
  30. data/lib/pki_express/pades_page_orientation.rb +9 -9
  31. data/lib/pki_express/pades_paper_size.rb +21 -21
  32. data/lib/pki_express/pades_signature.rb +16 -16
  33. data/lib/pki_express/pades_signature_explorer.rb +30 -30
  34. data/lib/pki_express/pades_signature_starter.rb +251 -251
  35. data/lib/pki_express/pades_signer.rb +274 -274
  36. data/lib/pki_express/pades_signer_info.rb +9 -9
  37. data/lib/pki_express/pades_size.rb +17 -17
  38. data/lib/pki_express/pades_text_horizontal_align.rb +8 -8
  39. data/lib/pki_express/pades_vertical_align.rb +9 -9
  40. data/lib/pki_express/pades_visual_auto_positioning.rb +21 -21
  41. data/lib/pki_express/pades_visual_image.rb +51 -51
  42. data/lib/pki_express/pades_visual_manual_positioning.rb +16 -16
  43. data/lib/pki_express/pades_visual_positioning.rb +27 -27
  44. data/lib/pki_express/pades_visual_rectangle.rb +74 -74
  45. data/lib/pki_express/pades_visual_representation.rb +22 -22
  46. data/lib/pki_express/pades_visual_text.rb +35 -35
  47. data/lib/pki_express/pk_algorithms.rb +157 -157
  48. data/lib/pki_express/pk_certificate.rb +61 -61
  49. data/lib/pki_express/pki_brazil_certificate_fields.rb +57 -57
  50. data/lib/pki_express/pki_brazil_certificate_types.rb +19 -19
  51. data/lib/pki_express/pki_express_config.rb +39 -26
  52. data/lib/pki_express/pki_express_operator.rb +240 -240
  53. data/lib/pki_express/pki_italy_certificate_fields.rb +15 -15
  54. data/lib/pki_express/pki_italy_certificate_types.rb +11 -11
  55. data/lib/pki_express/signature_algorithm_and_value.rb +34 -34
  56. data/lib/pki_express/signature_explorer.rb +74 -74
  57. data/lib/pki_express/signature_finisher.rb +314 -314
  58. data/lib/pki_express/signature_policy_identifier.rb +20 -20
  59. data/lib/pki_express/signature_start_result.rb +12 -12
  60. data/lib/pki_express/signature_starter.rb +116 -116
  61. data/lib/pki_express/signer.rb +151 -151
  62. data/lib/pki_express/standard_signature_policies.rb +58 -58
  63. data/lib/pki_express/timestamp_authority.rb +50 -50
  64. data/lib/pki_express/trust_service_auth_parameters.rb +20 -20
  65. data/lib/pki_express/trust_service_info.rb +37 -37
  66. data/lib/pki_express/trust_service_manager.rb +258 -258
  67. data/lib/pki_express/trust_service_session_result.rb +29 -29
  68. data/lib/pki_express/trust_service_session_types.rb +7 -7
  69. data/lib/pki_express/tsa_authentication_type.rb +14 -14
  70. data/lib/pki_express/validation_error.rb +8 -8
  71. data/lib/pki_express/validation_item.rb +43 -43
  72. data/lib/pki_express/validation_item_types.rb +103 -103
  73. data/lib/pki_express/validation_results.rb +120 -120
  74. data/lib/pki_express/version.rb +3 -3
  75. data/lib/pki_express/version_manager.rb +20 -20
  76. data/lib/pki_express.rb +69 -69
  77. data/pki_express.gemspec +26 -26
  78. data/spec/pki_express/pki_express_config_spec.rb +73 -0
  79. data/spec/pki_express/pki_express_operator_spec.rb +30 -30
  80. metadata +4 -2
@@ -1,275 +1,275 @@
1
- module PkiExpress
2
-
3
- class PadesSigner < Signer
4
- attr_accessor :suppress_default_visual_representation, :overwrite_original_file
5
- attr_accessor :custom_signature_field_name, :certification_level, :reason
6
-
7
- def initialize(config=PkiExpressConfig.new)
8
- super(config)
9
- @pdf_to_sign_path = nil
10
- @vr_json_path = nil
11
- @overwrite_original_file = false
12
- @version_manager = VersionManager.new
13
- @custom_signature_field_name = nil
14
- @certification_level = nil
15
- @reason = nil
16
- @suppress_default_visual_representation = false
17
- end
18
-
19
- # region set_visual_representation
20
-
21
- def visual_representation_content_raw
22
- _get_visual_representation_content_raw
23
- end
24
-
25
- def _get_visual_representation_content_raw
26
- unless @vr_json_path
27
- return nil
28
- end
29
-
30
- File.read(@vr_json_path)
31
- end
32
- private :_get_visual_representation_content_raw
33
-
34
- def visual_representation_content_raw=(content_raw)
35
- _set_visual_representation_content_raw(content_raw)
36
- end
37
-
38
- def _set_visual_representation_content_raw(content_raw)
39
- unless content_raw
40
- raise 'The provided "visual_representation" is not valid'
41
- end
42
-
43
- temp_file_path = self.create_temp_file
44
- File.open(temp_file_path, 'wb') do |f|
45
- f.write(content_raw)
46
- end
47
- @vr_json_path = temp_file_path
48
- end
49
- private :_set_visual_representation_content_raw
50
-
51
- def visual_representation_path
52
- _get_visual_representation_path
53
- end
54
-
55
- def _get_visual_representation_path
56
- @vr_json_path
57
- end
58
- private :_get_visual_representation_path
59
-
60
- def visual_representation_path=(path)
61
- _set_visual_representation_path(path)
62
- end
63
-
64
- def _set_visual_representation_path(path)
65
- unless path
66
- raise 'The provided "visual_representation_path" is not valid'
67
- end
68
- unless File.exists?(path)
69
- raise 'The provided "visual_representation_path" does not exist'
70
- end
71
- @vr_json_path = path
72
- end
73
- private :_set_visual_representation_path
74
-
75
- def visual_representation
76
- _get_visual_representation
77
- end
78
-
79
- def _get_visual_representation
80
- unless @vr_json_path
81
- return nil
82
- end
83
-
84
- content = File.read(@vr_json_path)
85
- JSON.parse(content)
86
- end
87
- private :_get_visual_representation
88
-
89
-
90
- def visual_representation=(vr)
91
- _set_visual_representation(vr)
92
- end
93
-
94
- def _set_visual_representation(vr)
95
- temp_file_path = self.create_temp_file
96
- json = JSON.pretty_generate(vr.to_model)
97
- File.open(temp_file_path, 'w') do |f|
98
- f.write(json)
99
- end
100
- @vr_json_path = temp_file_path
101
- end
102
- private :_set_visual_representation
103
-
104
- # endregion
105
-
106
- # region The "pdf_to_sign" accessors
107
-
108
- def pdf_to_sign
109
- _get_pdf_to_sign
110
- end
111
-
112
- def _get_pdf_to_sign
113
- unless @pdf_to_sign_path
114
- return nil
115
- end
116
-
117
- File.read(@pdf_to_sign_path)
118
- end
119
- private :_get_pdf_to_sign
120
-
121
- def pdf_to_sign=(content_raw)
122
- _set_pdf_to_sign(content_raw)
123
- end
124
-
125
- def _set_pdf_to_sign(content_raw)
126
- unless content_raw
127
- raise 'The provided "pdf_to_sign" is not valid'
128
- end
129
-
130
- temp_file_path = self.create_temp_file
131
- File.open(temp_file_path, 'wb') do |f|
132
- f.write(content_raw)
133
- end
134
- @pdf_to_sign_path = temp_file_path
135
- end
136
- private :_set_pdf_to_sign
137
-
138
- def pdf_to_sign_base64
139
- _get_pdf_to_sign_base64
140
- end
141
-
142
- def _get_pdf_to_sign_base64
143
- unless @pdf_to_sign_path
144
- return nil
145
- end
146
-
147
- content = File.read(@pdf_to_sign_path)
148
- Base64.encode64(content)
149
- end
150
- private :_get_pdf_to_sign_base64
151
-
152
- def pdf_to_sign_base64=(content_base64)
153
- _set_pdf_to_sign_base64(content_base64)
154
- end
155
-
156
- def _set_pdf_to_sign_base64(content_base64)
157
- unless content_base64
158
- raise 'The provided "pdf_to_sign_base64" is not valid'
159
- end
160
-
161
- begin
162
- content_raw = Base64.decode64(content_base64)
163
- rescue Error
164
- raise 'The provided "pdf_to_sign_base64" is not Base64-encoded'
165
- end
166
-
167
- _set_pdf_to_sign(content_raw)
168
- end
169
- private :_set_pdf_to_sign_base64
170
-
171
- def pdf_to_sign_path
172
- _get_pdf_to_sign_path
173
- end
174
-
175
- def _get_pdf_to_sign_path
176
- @pdf_to_sign_path
177
- end
178
- private :_get_pdf_to_sign_path
179
-
180
- def pdf_to_sign_path=(path)
181
- _set_pdf_to_sign_path(path)
182
- end
183
-
184
- def _set_pdf_to_sign_path(path)
185
- unless path
186
- raise 'The provided "pdf_to_sign_path" is not valid'
187
- end
188
- unless File.exists?(path)
189
- raise 'The provided "pdf_to_sign_path" does not exist'
190
- end
191
- @pdf_to_sign_path = path
192
- end
193
- private :_set_pdf_to_sign_path
194
-
195
- # endregion
196
-
197
- def sign(get_cert=false)
198
- unless @pdf_to_sign_path
199
- raise 'The PDF to be signed was not set'
200
- end
201
-
202
- unless @overwrite_original_file || @output_file_path
203
- raise 'The output destination was not set'
204
- end
205
-
206
- args = [
207
- @pdf_to_sign_path,
208
- ]
209
-
210
- # Logic to overwrite original file or use the output file
211
- if @overwrite_original_file
212
- args.append('--overwrite')
213
- else
214
- args.append(@output_file_path)
215
- end
216
-
217
- # Verify and add common options between signers.
218
- verify_and_add_common_options(args)
219
-
220
- if @vr_json_path
221
- args.append('--visual-rep')
222
- args.append(@vr_json_path)
223
- end
224
-
225
- if @custom_signature_field_name
226
- args.append('--custom-signature-field-name')
227
- args.append(@custom_signature_field_name)
228
- # This option can only be used on versions greater than 1.15.0 of the
229
- # PKI Express.
230
- @version_manager.require_version('1.15')
231
- end
232
-
233
- if @certification_level
234
- args.append('--certification-level')
235
- args.append(@certification_level)
236
- # This option can only be used on versions greater than 1.16.0 of the
237
- # PKI Express.
238
- @version_manager.require_version('1.16')
239
- end
240
-
241
- if @suppress_default_visual_representation
242
- args.append('--suppress-default-visual-rep')
243
- # This option can only be used on versions greater than 1.13.1 of the
244
- # PKI Express.
245
- @version_manager.require_version('1.13.1')
246
- end
247
-
248
- if @reason
249
- args.append('--reason')
250
- args.append(@reason)
251
- # This option can only be used on versions greater than 1.13 of the
252
- # PKI Express.
253
- @version_manager.require_version('1.13')
254
- end
255
-
256
- if get_cert
257
- # This option can only be used on versions greater than 1.8.0 of the
258
- # PKI Express.
259
- @version_manager.require_version('1.8')
260
-
261
- # Invoke command.
262
- result = invoke(Commands::SIGN_PADES, args)
263
-
264
- # Parse output and return result.
265
- model = parse_output(result)
266
- return PKCertificate.new(model.fetch(:signer))
267
- else
268
- # Invoke command with plain text output (to support PKI Express < 1.3)
269
- result = invoke_plain(Commands::SIGN_PADES, args)
270
- end
271
-
272
- end
273
-
274
- end
1
+ module PkiExpress
2
+
3
+ class PadesSigner < Signer
4
+ attr_accessor :suppress_default_visual_representation, :overwrite_original_file
5
+ attr_accessor :custom_signature_field_name, :certification_level, :reason
6
+
7
+ def initialize(config=PkiExpressConfig.new)
8
+ super(config)
9
+ @pdf_to_sign_path = nil
10
+ @vr_json_path = nil
11
+ @overwrite_original_file = false
12
+ @version_manager = VersionManager.new
13
+ @custom_signature_field_name = nil
14
+ @certification_level = nil
15
+ @reason = nil
16
+ @suppress_default_visual_representation = false
17
+ end
18
+
19
+ # region set_visual_representation
20
+
21
+ def visual_representation_content_raw
22
+ _get_visual_representation_content_raw
23
+ end
24
+
25
+ def _get_visual_representation_content_raw
26
+ unless @vr_json_path
27
+ return nil
28
+ end
29
+
30
+ File.read(@vr_json_path)
31
+ end
32
+ private :_get_visual_representation_content_raw
33
+
34
+ def visual_representation_content_raw=(content_raw)
35
+ _set_visual_representation_content_raw(content_raw)
36
+ end
37
+
38
+ def _set_visual_representation_content_raw(content_raw)
39
+ unless content_raw
40
+ raise 'The provided "visual_representation" is not valid'
41
+ end
42
+
43
+ temp_file_path = self.create_temp_file
44
+ File.open(temp_file_path, 'wb') do |f|
45
+ f.write(content_raw)
46
+ end
47
+ @vr_json_path = temp_file_path
48
+ end
49
+ private :_set_visual_representation_content_raw
50
+
51
+ def visual_representation_path
52
+ _get_visual_representation_path
53
+ end
54
+
55
+ def _get_visual_representation_path
56
+ @vr_json_path
57
+ end
58
+ private :_get_visual_representation_path
59
+
60
+ def visual_representation_path=(path)
61
+ _set_visual_representation_path(path)
62
+ end
63
+
64
+ def _set_visual_representation_path(path)
65
+ unless path
66
+ raise 'The provided "visual_representation_path" is not valid'
67
+ end
68
+ unless File.exists?(path)
69
+ raise 'The provided "visual_representation_path" does not exist'
70
+ end
71
+ @vr_json_path = path
72
+ end
73
+ private :_set_visual_representation_path
74
+
75
+ def visual_representation
76
+ _get_visual_representation
77
+ end
78
+
79
+ def _get_visual_representation
80
+ unless @vr_json_path
81
+ return nil
82
+ end
83
+
84
+ content = File.read(@vr_json_path)
85
+ JSON.parse(content)
86
+ end
87
+ private :_get_visual_representation
88
+
89
+
90
+ def visual_representation=(vr)
91
+ _set_visual_representation(vr)
92
+ end
93
+
94
+ def _set_visual_representation(vr)
95
+ temp_file_path = self.create_temp_file
96
+ json = JSON.pretty_generate(vr.to_model)
97
+ File.open(temp_file_path, 'w') do |f|
98
+ f.write(json)
99
+ end
100
+ @vr_json_path = temp_file_path
101
+ end
102
+ private :_set_visual_representation
103
+
104
+ # endregion
105
+
106
+ # region The "pdf_to_sign" accessors
107
+
108
+ def pdf_to_sign
109
+ _get_pdf_to_sign
110
+ end
111
+
112
+ def _get_pdf_to_sign
113
+ unless @pdf_to_sign_path
114
+ return nil
115
+ end
116
+
117
+ File.read(@pdf_to_sign_path)
118
+ end
119
+ private :_get_pdf_to_sign
120
+
121
+ def pdf_to_sign=(content_raw)
122
+ _set_pdf_to_sign(content_raw)
123
+ end
124
+
125
+ def _set_pdf_to_sign(content_raw)
126
+ unless content_raw
127
+ raise 'The provided "pdf_to_sign" is not valid'
128
+ end
129
+
130
+ temp_file_path = self.create_temp_file
131
+ File.open(temp_file_path, 'wb') do |f|
132
+ f.write(content_raw)
133
+ end
134
+ @pdf_to_sign_path = temp_file_path
135
+ end
136
+ private :_set_pdf_to_sign
137
+
138
+ def pdf_to_sign_base64
139
+ _get_pdf_to_sign_base64
140
+ end
141
+
142
+ def _get_pdf_to_sign_base64
143
+ unless @pdf_to_sign_path
144
+ return nil
145
+ end
146
+
147
+ content = File.read(@pdf_to_sign_path)
148
+ Base64.encode64(content)
149
+ end
150
+ private :_get_pdf_to_sign_base64
151
+
152
+ def pdf_to_sign_base64=(content_base64)
153
+ _set_pdf_to_sign_base64(content_base64)
154
+ end
155
+
156
+ def _set_pdf_to_sign_base64(content_base64)
157
+ unless content_base64
158
+ raise 'The provided "pdf_to_sign_base64" is not valid'
159
+ end
160
+
161
+ begin
162
+ content_raw = Base64.decode64(content_base64)
163
+ rescue Error
164
+ raise 'The provided "pdf_to_sign_base64" is not Base64-encoded'
165
+ end
166
+
167
+ _set_pdf_to_sign(content_raw)
168
+ end
169
+ private :_set_pdf_to_sign_base64
170
+
171
+ def pdf_to_sign_path
172
+ _get_pdf_to_sign_path
173
+ end
174
+
175
+ def _get_pdf_to_sign_path
176
+ @pdf_to_sign_path
177
+ end
178
+ private :_get_pdf_to_sign_path
179
+
180
+ def pdf_to_sign_path=(path)
181
+ _set_pdf_to_sign_path(path)
182
+ end
183
+
184
+ def _set_pdf_to_sign_path(path)
185
+ unless path
186
+ raise 'The provided "pdf_to_sign_path" is not valid'
187
+ end
188
+ unless File.exists?(path)
189
+ raise 'The provided "pdf_to_sign_path" does not exist'
190
+ end
191
+ @pdf_to_sign_path = path
192
+ end
193
+ private :_set_pdf_to_sign_path
194
+
195
+ # endregion
196
+
197
+ def sign(get_cert=false)
198
+ unless @pdf_to_sign_path
199
+ raise 'The PDF to be signed was not set'
200
+ end
201
+
202
+ unless @overwrite_original_file || @output_file_path
203
+ raise 'The output destination was not set'
204
+ end
205
+
206
+ args = [
207
+ @pdf_to_sign_path,
208
+ ]
209
+
210
+ # Logic to overwrite original file or use the output file
211
+ if @overwrite_original_file
212
+ args.append('--overwrite')
213
+ else
214
+ args.append(@output_file_path)
215
+ end
216
+
217
+ # Verify and add common options between signers.
218
+ verify_and_add_common_options(args)
219
+
220
+ if @vr_json_path
221
+ args.append('--visual-rep')
222
+ args.append(@vr_json_path)
223
+ end
224
+
225
+ if @custom_signature_field_name
226
+ args.append('--custom-signature-field-name')
227
+ args.append(@custom_signature_field_name)
228
+ # This option can only be used on versions greater than 1.15.0 of the
229
+ # PKI Express.
230
+ @version_manager.require_version('1.15')
231
+ end
232
+
233
+ if @certification_level
234
+ args.append('--certification-level')
235
+ args.append(@certification_level)
236
+ # This option can only be used on versions greater than 1.16.0 of the
237
+ # PKI Express.
238
+ @version_manager.require_version('1.16')
239
+ end
240
+
241
+ if @suppress_default_visual_representation
242
+ args.append('--suppress-default-visual-rep')
243
+ # This option can only be used on versions greater than 1.13.1 of the
244
+ # PKI Express.
245
+ @version_manager.require_version('1.13.1')
246
+ end
247
+
248
+ if @reason
249
+ args.append('--reason')
250
+ args.append(@reason)
251
+ # This option can only be used on versions greater than 1.13 of the
252
+ # PKI Express.
253
+ @version_manager.require_version('1.13')
254
+ end
255
+
256
+ if get_cert
257
+ # This option can only be used on versions greater than 1.8.0 of the
258
+ # PKI Express.
259
+ @version_manager.require_version('1.8')
260
+
261
+ # Invoke command.
262
+ result = invoke(Commands::SIGN_PADES, args)
263
+
264
+ # Parse output and return result.
265
+ model = parse_output(result)
266
+ return PKCertificate.new(model.fetch(:signer))
267
+ else
268
+ # Invoke command with plain text output (to support PKI Express < 1.3)
269
+ result = invoke_plain(Commands::SIGN_PADES, args)
270
+ end
271
+
272
+ end
273
+
274
+ end
275
275
  end
@@ -1,10 +1,10 @@
1
- module PkiExpress
2
- class PadesSignerInfo < CadesSignerInfo
3
- attr_accessor :is_document_timestamp, :signature_file_name
4
- def initialize(model)
5
- super(model)
6
- @is_document_timestamp = model.fetch(:isDocumentTimestamp)
7
- @signature_field_name = model.fetch(:signatureFieldName)
8
- end
9
- end
1
+ module PkiExpress
2
+ class PadesSignerInfo < CadesSignerInfo
3
+ attr_accessor :is_document_timestamp, :signature_file_name
4
+ def initialize(model)
5
+ super(model)
6
+ @is_document_timestamp = model.fetch(:isDocumentTimestamp)
7
+ @signature_field_name = model.fetch(:signatureFieldName)
8
+ end
9
+ end
10
10
  end
@@ -1,17 +1,17 @@
1
- module PkiExpress
2
- class PadesSize
3
- attr_accessor :width, :height
4
-
5
- def initialize(width, height)
6
- @width = width
7
- @height = height
8
- end
9
-
10
- def to_model
11
- {
12
- width: @width,
13
- height: @height,
14
- }
15
- end
16
- end
17
- end
1
+ module PkiExpress
2
+ class PadesSize
3
+ attr_accessor :width, :height
4
+
5
+ def initialize(width, height)
6
+ @width = width
7
+ @height = height
8
+ end
9
+
10
+ def to_model
11
+ {
12
+ width: @width,
13
+ height: @height,
14
+ }
15
+ end
16
+ end
17
+ end
@@ -1,8 +1,8 @@
1
- module PkiExpress
2
- class PadesTextHorizontalAlign < Enum
3
- LEFT = 'Left'
4
- RIGHT = 'Right'
5
-
6
- VALUES = [ LEFT, RIGHT ]
7
- end
8
- end
1
+ module PkiExpress
2
+ class PadesTextHorizontalAlign < Enum
3
+ LEFT = 'Left'
4
+ RIGHT = 'Right'
5
+
6
+ VALUES = [ LEFT, RIGHT ]
7
+ end
8
+ end
@@ -1,9 +1,9 @@
1
- module PkiExpress
2
- class PadesVerticalAlign < Enum
3
- TOP = 'Top'
4
- CENTER = 'Center'
5
- BOTTOM = 'Bottom'
6
-
7
- VALUES = [ TOP, CENTER, BOTTOM ]
8
- end
9
- end
1
+ module PkiExpress
2
+ class PadesVerticalAlign < Enum
3
+ TOP = 'Top'
4
+ CENTER = 'Center'
5
+ BOTTOM = 'Bottom'
6
+
7
+ VALUES = [ TOP, CENTER, BOTTOM ]
8
+ end
9
+ end
@@ -1,22 +1,22 @@
1
- module PkiExpress
2
- class PadesVisualAutoPositioning < PadesVisualPositioning
3
- attr_accessor :container, :signature_rectangle_size, :row_spacing
4
-
5
- def initialize(page_number=nil, measurement_units=nil, container=nil, signature_rectangle_size=nil, row_spacing=nil)
6
- super(page_number, measurement_units)
7
- @container = container
8
- @signature_rectangle_size = signature_rectangle_size
9
- @row_spacing = row_spacing
10
- end
11
-
12
- def to_model
13
- model = super
14
- model['auto'] = {
15
- 'container': @container&.to_model,
16
- 'signatureRectangleSize': @signature_rectangle_size&.to_model,
17
- 'rowSpacing': @row_spacing,
18
- }
19
- model
20
- end
21
- end
1
+ module PkiExpress
2
+ class PadesVisualAutoPositioning < PadesVisualPositioning
3
+ attr_accessor :container, :signature_rectangle_size, :row_spacing
4
+
5
+ def initialize(page_number=nil, measurement_units=nil, container=nil, signature_rectangle_size=nil, row_spacing=nil)
6
+ super(page_number, measurement_units)
7
+ @container = container
8
+ @signature_rectangle_size = signature_rectangle_size
9
+ @row_spacing = row_spacing
10
+ end
11
+
12
+ def to_model
13
+ model = super
14
+ model['auto'] = {
15
+ 'container': @container&.to_model,
16
+ 'signatureRectangleSize': @signature_rectangle_size&.to_model,
17
+ 'rowSpacing': @row_spacing,
18
+ }
19
+ model
20
+ end
21
+ end
22
22
  end