rucades 0.3.0 → 0.4.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.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/ext/rucades/cplib/Blob.h +205 -163
  3. data/ext/rucades/cplib/CPPEnrollEnumerations.h +603 -0
  4. data/ext/rucades/cplib/DateTime.h +506 -455
  5. data/ext/rucades/cplib/StringProxy.h +229 -187
  6. data/ext/rucades/cplib/cpstldll.h +225 -0
  7. data/ext/rucades/extconf.rb +28 -12
  8. data/ext/rucades/rucades_about.cpp +3 -3
  9. data/ext/rucades/rucades_about.h +1 -1
  10. data/ext/rucades/rucades_algorithm.cpp +2 -2
  11. data/ext/rucades/rucades_algorithm.h +2 -2
  12. data/ext/rucades/rucades_attribute.cpp +3 -3
  13. data/ext/rucades/rucades_attribute.h +2 -2
  14. data/ext/rucades/rucades_attributes.cpp +2 -2
  15. data/ext/rucades/rucades_attributes.h +2 -2
  16. data/ext/rucades/rucades_basic_constraints.cpp +3 -3
  17. data/ext/rucades/rucades_basic_constraints.h +2 -2
  18. data/ext/rucades/rucades_blobs.cpp +3 -3
  19. data/ext/rucades/rucades_blobs.h +2 -2
  20. data/ext/rucades/rucades_certificate.cpp +3 -3
  21. data/ext/rucades/rucades_certificate.h +2 -2
  22. data/ext/rucades/rucades_certificate_status.cpp +2 -2
  23. data/ext/rucades/rucades_certificate_status.h +2 -2
  24. data/ext/rucades/rucades_certificates.cpp +8 -8
  25. data/ext/rucades/rucades_certificates.h +2 -2
  26. data/ext/rucades/rucades_crl.cpp +1 -1
  27. data/ext/rucades/rucades_crl.h +1 -1
  28. data/ext/rucades/rucades_eku.cpp +2 -2
  29. data/ext/rucades/rucades_eku.h +2 -2
  30. data/ext/rucades/rucades_ekus.cpp +3 -3
  31. data/ext/rucades/rucades_ekus.h +2 -2
  32. data/ext/rucades/rucades_encoded_data.cpp +1 -1
  33. data/ext/rucades/rucades_encoded_data.h +1 -1
  34. data/ext/rucades/rucades_enveloped_data.cpp +1 -1
  35. data/ext/rucades/rucades_enveloped_data.h +1 -1
  36. data/ext/rucades/rucades_extended_key_usage.cpp +2 -2
  37. data/ext/rucades/rucades_extended_key_usage.h +2 -2
  38. data/ext/rucades/rucades_hashed_data.cpp +1 -1
  39. data/ext/rucades/rucades_hashed_data.h +1 -1
  40. data/ext/rucades/rucades_key_usage.cpp +3 -3
  41. data/ext/rucades/rucades_key_usage.h +2 -2
  42. data/ext/rucades/rucades_oid.cpp +3 -3
  43. data/ext/rucades/rucades_oid.h +2 -2
  44. data/ext/rucades/rucades_private_key.cpp +3 -3
  45. data/ext/rucades/rucades_private_key.h +2 -2
  46. data/ext/rucades/rucades_public_key.cpp +2 -2
  47. data/ext/rucades/rucades_public_key.h +2 -2
  48. data/ext/rucades/rucades_raw_signature.cpp +2 -2
  49. data/ext/rucades/rucades_raw_signature.h +2 -2
  50. data/ext/rucades/rucades_recipients.cpp +2 -2
  51. data/ext/rucades/rucades_recipients.h +2 -2
  52. data/ext/rucades/rucades_signature_status.cpp +2 -2
  53. data/ext/rucades/rucades_signature_status.h +2 -2
  54. data/ext/rucades/rucades_signed_data.cpp +7 -7
  55. data/ext/rucades/rucades_signed_data.h +1 -1
  56. data/ext/rucades/rucades_signed_xml.cpp +2 -2
  57. data/ext/rucades/rucades_signed_xml.h +1 -1
  58. data/ext/rucades/rucades_signer.cpp +8 -8
  59. data/ext/rucades/rucades_signer.h +2 -2
  60. data/ext/rucades/rucades_signers.cpp +2 -2
  61. data/ext/rucades/rucades_signers.h +2 -2
  62. data/ext/rucades/rucades_store.cpp +2 -2
  63. data/ext/rucades/rucades_store.h +1 -1
  64. data/ext/rucades/rucades_symmetric_algorithm.cpp +3 -3
  65. data/ext/rucades/rucades_symmetric_algorithm.h +2 -2
  66. data/ext/rucades/rucades_version.cpp +2 -2
  67. data/ext/rucades/rucades_version.h +2 -2
  68. data/ext/rucades/stdafx.h +207 -121
  69. data/lib/rucades/version.rb +1 -1
  70. data/samples/encrypt_decrypt.rb +17 -14
  71. data/samples/sign_verify.rb +14 -17
  72. data/sig/rucades.rbs +850 -1
  73. metadata +3 -4
  74. data/ext/rucades/cpstldll.h +0 -183
  75. data/ext/rucades/errormsg.cpp +0 -561
  76. data/ext/rucades/errormsg.h +0 -31
data/sig/rucades.rbs CHANGED
@@ -1,4 +1,853 @@
1
1
  module Rucades
2
2
  VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
3
+
4
+ # Padding
5
+ ANSI_X923_PADDING: Integer
6
+ ISO10126_PADDING: Integer
7
+ ISO_IEC_7816_4_PADDING: Integer
8
+ PKCS5_PADDING: Integer
9
+ RANDOM_PADDING: Integer
10
+ TLS_1_0_PADDING: Integer
11
+ ZERO_PADDING: Integer
12
+
13
+ # Key specs
14
+ AT_KEYEXCHANGE: Integer
15
+ AT_SIGNATURE: Integer
16
+
17
+ # CADESCOM attribute types
18
+ CADESCOM_ATTRIBUTE_OTHER: Integer
19
+ CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION: Integer
20
+ CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME: Integer
21
+ CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME: Integer
22
+ CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION: Integer
23
+ CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME: Integer
24
+ CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME: Integer
25
+
26
+ # CADESCOM flags
27
+ CADESCOM_AllowNoOutstandingRequest: Integer
28
+ CADESCOM_AllowNone: Integer
29
+ CADESCOM_AllowUntrustedCertificate: Integer
30
+ CADESCOM_AllowUntrustedRoot: Integer
31
+ CADESCOM_SkipInstallToStore: Integer
32
+
33
+ # CADESCOM encoding
34
+ CADESCOM_BASE64_TO_BINARY: Integer
35
+ CADESCOM_ENCODE_ANY: Integer
36
+ CADESCOM_ENCODE_BASE64: Integer
37
+ CADESCOM_ENCODE_BINARY: Integer
38
+ CAPICOM_ENCODE_ANY: Integer
39
+ CAPICOM_ENCODE_BASE64: Integer
40
+ CAPICOM_ENCODE_BINARY: Integer
41
+
42
+ # CADESCOM CAdES types
43
+ CADESCOM_CADES_A: Integer
44
+ CADESCOM_CADES_BES: Integer
45
+ CADESCOM_CADES_DEFAULT: Integer
46
+ CADESCOM_CADES_T: Integer
47
+ CADESCOM_CADES_X_LONG_TYPE_1: Integer
48
+ CADESCOM_PKCS7_TYPE: Integer
49
+
50
+ # CADESCOM XAdES types
51
+ CADESCOM_XADES_A: Integer
52
+ CADESCOM_XADES_BES: Integer
53
+ CADESCOM_XADES_DEFAULT: Integer
54
+ CADESCOM_XADES_T: Integer
55
+ CADESCOM_XADES_X_LONG_TYPE_1: Integer
56
+ CADESCOM_XMLDSIG_TYPE: Integer
57
+ CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED: Integer
58
+ CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING: Integer
59
+ CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE: Integer
60
+
61
+ # CADESCOM store types
62
+ CADESCOM_CONTAINER_STORE: Integer
63
+ CADESCOM_CURRENT_USER_STORE: Integer
64
+ CADESCOM_LOCAL_MACHINE_STORE: Integer
65
+ CADESCOM_MEMORY_STORE: Integer
66
+ CAPICOM_CURRENT_USER_STORE: Integer
67
+ CAPICOM_LOCAL_MACHINE_STORE: Integer
68
+
69
+ # CAPICOM store names
70
+ CAPICOM_CA_STORE: String
71
+ CAPICOM_MY_STORE: String
72
+ CAPICOM_OTHER_STORE: String
73
+ CAPICOM_ROOT_STORE: String
74
+
75
+ # CAPICOM store open mode
76
+ CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED: Integer
77
+
78
+ # CADESCOM display data
79
+ CADESCOM_DISPLAY_DATA_ATTRIBUTE: Integer
80
+ CADESCOM_DISPLAY_DATA_CONTENT: Integer
81
+ CADESCOM_DISPLAY_DATA_NONE: Integer
82
+ CADESCOM_STRING_TO_UCS2LE: Integer
83
+
84
+ # CADESCOM encryption algorithms
85
+ CADESCOM_ENCRYPTION_ALGORITHM_3DES: Integer
86
+ CADESCOM_ENCRYPTION_ALGORITHM_AES: Integer
87
+ CADESCOM_ENCRYPTION_ALGORITHM_DES: Integer
88
+ CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89: Integer
89
+ CADESCOM_ENCRYPTION_ALGORITHM_RC2: Integer
90
+ CADESCOM_ENCRYPTION_ALGORITHM_RC4: Integer
91
+
92
+ # CADESCOM hash algorithms
93
+ CADESCOM_HASH_ALGORITHM_CP_GOST_3411: Integer
94
+ CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256: Integer
95
+ CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC: Integer
96
+ CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512: Integer
97
+ CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC: Integer
98
+ CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC: Integer
99
+ CADESCOM_HASH_ALGORITHM_MD2: Integer
100
+ CADESCOM_HASH_ALGORITHM_MD4: Integer
101
+ CADESCOM_HASH_ALGORITHM_MD5: Integer
102
+ CADESCOM_HASH_ALGORITHM_SHA1: Integer
103
+ CADESCOM_HASH_ALGORITHM_SHA_256: Integer
104
+ CADESCOM_HASH_ALGORITHM_SHA_384: Integer
105
+ CADESCOM_HASH_ALGORITHM_SHA_512: Integer
106
+
107
+ # CAPICOM certificate find types
108
+ CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY: Integer
109
+ CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY: Integer
110
+ CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY: Integer
111
+ CAPICOM_CERTIFICATE_FIND_EXTENSION: Integer
112
+ CAPICOM_CERTIFICATE_FIND_ISSUER_NAME: Integer
113
+ CAPICOM_CERTIFICATE_FIND_KEY_USAGE: Integer
114
+ CAPICOM_CERTIFICATE_FIND_ROOT_NAME: Integer
115
+ CAPICOM_CERTIFICATE_FIND_SHA1_HASH: Integer
116
+ CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME: Integer
117
+ CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME: Integer
118
+ CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED: Integer
119
+ CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID: Integer
120
+ CAPICOM_CERTIFICATE_FIND_TIME_VALID: Integer
121
+
122
+ # CAPICOM certificate include
123
+ CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT: Integer
124
+ CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY: Integer
125
+ CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN: Integer
126
+
127
+ # CAPICOM cert info types
128
+ CAPICOM_CERT_INFO_ISSUER_DNS_NAME: Integer
129
+ CAPICOM_CERT_INFO_ISSUER_EMAIL_NAME: Integer
130
+ CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME: Integer
131
+ CAPICOM_CERT_INFO_ISSUER_UPN: Integer
132
+ CAPICOM_CERT_INFO_SUBJECT_DNS_NAME: Integer
133
+ CAPICOM_CERT_INFO_SUBJECT_EMAIL_NAME: Integer
134
+ CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME: Integer
135
+ CAPICOM_CERT_INFO_SUBJECT_UPN: Integer
136
+
137
+ # CAPICOM key usage
138
+ CAPICOM_DATA_ENCIPHERMENT_KEY_USAGE: Integer
139
+ CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE: Integer
140
+ CAPICOM_OID_KEY_USAGE_EXTENSION: Integer
141
+
142
+ # CAPICOM EKU
143
+ CAPICOM_EKU_CLIENT_AUTH: Integer
144
+ CAPICOM_EKU_CODE_SIGNING: Integer
145
+ CAPICOM_EKU_EMAIL_PROTECTION: Integer
146
+ CAPICOM_EKU_ENCRYPTING_FILE_SYSTEM: Integer
147
+ CAPICOM_EKU_OTHER: Integer
148
+ CAPICOM_EKU_SERVER_AUTH: Integer
149
+ CAPICOM_EKU_SMARTCARD_LOGON: Integer
150
+
151
+ # CAPICOM OID
152
+ CAPICOM_OID_BASIC_CONSTRAINTS2_EXTENSION: Integer
153
+ CAPICOM_OID_OTHER: Integer
154
+
155
+ # CAPICOM encryption key lengths
156
+ CAPICOM_ENCRYPTION_KEY_LENGTH_128_BITS: Integer
157
+ CAPICOM_ENCRYPTION_KEY_LENGTH_192_BITS: Integer
158
+ CAPICOM_ENCRYPTION_KEY_LENGTH_256_BITS: Integer
159
+ CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS: Integer
160
+ CAPICOM_ENCRYPTION_KEY_LENGTH_56_BITS: Integer
161
+ CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM: Integer
162
+
163
+ # CRYPT modes
164
+ CRYPT_MODE_CBCRFC4357: Integer
165
+ CRYPT_MODE_CBCSTRICT: Integer
166
+ CRYPT_MODE_CNT: Integer
167
+ CRYPT_MODE_CTR: Integer
168
+ CRYPT_MODE_GCM: Integer
169
+ CRYPT_MODE_MGM: Integer
170
+ CRYPT_MODE_OMAC_CTR: Integer
171
+ CRYPT_MODE_WRAP: Integer
172
+ CRYPT_MODE_WRAP_PAD: Integer
173
+
174
+ # Carrier/media types
175
+ DISABLE_EVERY_CARRIER_OPERATION: Integer
176
+ ENABLE_ANY_CARRIER_TYPE: Integer
177
+ ENABLE_ANY_OPERATION: Integer
178
+ ENABLE_CARRIER_CREATE: Integer
179
+ ENABLE_CARRIER_OPEN_ENUM: Integer
180
+ ENABLE_CARRIER_TYPE_CSP: Integer
181
+ ENABLE_CARRIER_TYPE_FKC_NO_SM: Integer
182
+ ENABLE_CARRIER_TYPE_FKC_SM: Integer
183
+ MEDIA_TYPE_CLOUD: Integer
184
+ MEDIA_TYPE_HDIMAGE: Integer
185
+ MEDIA_TYPE_REGISTRY: Integer
186
+ MEDIA_TYPE_SCARD: Integer
187
+
188
+ # Misc
189
+ XCN_CRYPT_STRING_BASE64HEADER: Integer
190
+
191
+ # XML signature algorithm URLs
192
+ XmlDsigGost3410Url: String
193
+ XmlDsigGost3410Url2012256: String
194
+ XmlDsigGost3410Url2012512: String
195
+ XmlDsigGost3410UrlObsolete: String
196
+ XmlDsigGost3411Url: String
197
+ XmlDsigGost3411Url2012256: String
198
+ XmlDsigGost3411Url2012512: String
199
+ XmlDsigGost3411UrlObsolete: String
200
+
201
+ # CAdESCOM.About
202
+ # Версия библиотеки.
203
+ class About
204
+ def initialize: () -> void
205
+
206
+ # Возвращает строковое представление версии.
207
+ def version: () -> String
208
+
209
+ # Возвращает старший компонент версии.
210
+ def major_version: () -> Integer
211
+
212
+ # Возвращает младший компонент версии.
213
+ def minor_version: () -> Integer
214
+
215
+ # Возвращает номер сборки.
216
+ def build_version: () -> Integer
217
+
218
+ # Возвращает объект Version c версией плагина.
219
+ def plugin_version: () -> Version
220
+
221
+ # Возвращает объект Version c версией криптопровайдера (CSP) производства компании Крипто-Про.
222
+ def csp_version: (?String prov_name, ?Integer prov_type) -> Version
223
+ end
224
+
225
+ # CAdESCOM.Version
226
+ # Описывает версию.
227
+ class Version
228
+ # Возвращает старший компонент версии.
229
+ def major_version: () -> Integer
230
+
231
+ # Возвращает младший компонент версии.
232
+ def minor_version: () -> Integer
233
+
234
+ # Возвращает номер сборки.
235
+ def build_version: () -> Integer
236
+
237
+ # Возвращает строковое представление версии.
238
+ def to_s: () -> String
239
+ end
240
+
241
+ class OID
242
+ # Возвращает или задаёт понятное имя идентификатора объекта.
243
+ def friendly_name: () -> String
244
+ def friendly_name=: (String) -> String
245
+
246
+ # Возвращает или задаёт числовой идентификатор OID.
247
+ def name: () -> Integer
248
+ def name=: (Integer) -> Integer
249
+
250
+ # Возвращает или задаёт строковое значение OID.
251
+ def value: () -> String
252
+ def value=: (String) -> String
253
+ end
254
+
255
+ # CAdESCOM.CPAttribute
256
+ # Атрибут усовершенствованной подписи (подписанный или неподписанный).
257
+ class Attribute
258
+ def initialize: () -> void
259
+
260
+ # Возвращает объектный идентификатор (OID) атрибута.
261
+ def oid: () -> OID
262
+
263
+ # Имя атрибута. Аналогично свойству Name объекта CAPICOM.Attribute.
264
+ def name: () -> Integer
265
+ def name=: (Integer) -> Integer
266
+
267
+ # Возвращает закодированное значение атрибута.
268
+ def value: (?Integer encoding) -> String
269
+ def value=: (String) -> String
270
+
271
+ # Способ кодирования значения атрибута.
272
+ def value_type: () -> Integer
273
+ def value_type=: (Integer) -> Integer
274
+ end
275
+
276
+ class Attributes
277
+ # Возвращает количество атрибутов в коллекции.
278
+ def count: () -> Integer
279
+
280
+ # Возвращает атрибут с заданным индексом.
281
+ def []: (Integer index) -> Attribute
282
+
283
+ # Добавляет атрибут в коллекцию.
284
+ def add: (Attribute attribute) -> void
285
+ def <<: (Attribute attribute) -> void
286
+
287
+ # Удаляет атрибут из коллекции.
288
+ def remove: (Integer index) -> void
289
+
290
+ # Очищает коллекцию.
291
+ def clear: () -> void
292
+ end
293
+
294
+ # CAdESCOM.CRL
295
+ # Объект для работы со списком отозванных сертификатов.
296
+ class CRL
297
+ def initialize: () -> void
298
+
299
+ # Возвращает информацию об идентификаторе ключа УЦ, издавшего список отозванных сертификатов.
300
+ def auth_key_id: () -> String
301
+
302
+ # Возвращает информацию об издателе списка отозванных сертификатов.
303
+ def issuer_name: () -> String
304
+
305
+ # Возвращает информацию о дате следующего обновления списка отозванных сертификатов.
306
+ def next_update: () -> String
307
+
308
+ # Возвращает информацию о дате выпуска списка отозванных сертификатов.
309
+ def this_update: () -> String
310
+
311
+ # Возвращает информацию об отпечатке списка отозванных сертификатов.
312
+ def thumbprint: () -> String
313
+
314
+ # Экспортирует список отозванных сертификатов в заданной кодировке (CAPICOM_ENCODING_TYPE).
315
+ def export: (Integer encoding_type) -> String
316
+
317
+ # Инициализирует список отозванных сертификатов.
318
+ def import: (String blob_crl) -> void
319
+ end
320
+
321
+ class BasicConstraints
322
+ # Является ли сертификат центром сертификации.
323
+ def certificate_authority?: () -> bool
324
+
325
+ # Является ли расширение критическим.
326
+ def critical?: () -> bool
327
+
328
+ # Присутствует ли ограничение длины пути.
329
+ def pathlen_constraint_present?: () -> bool
330
+
331
+ # Присутствует ли расширение в сертификате.
332
+ def present?: () -> bool
333
+
334
+ # Максимальная длина цепочки сертификатов.
335
+ def path_len_constraint: () -> Integer
336
+ end
337
+
338
+ class EKU
339
+ # Имя расширенного использования ключа (CAPICOM_EKU).
340
+ def name: () -> Integer
341
+ def name=: (Integer) -> Integer
342
+
343
+ # OID расширенного использования ключа.
344
+ def oid: () -> String
345
+ def oid=: (String) -> String
346
+ end
347
+
348
+ class EKUs
349
+ # Возвращает количество записей в коллекции.
350
+ def count: () -> Integer
351
+
352
+ # Возвращает запись с заданным индексом.
353
+ def []: (Integer index) -> EKU
354
+ end
355
+
356
+ class KeyUsage
357
+ # Установлен ли бит CRLSign.
358
+ def crl_sign_enabled?: () -> bool
359
+
360
+ # Установлен ли бит dataEncipherment.
361
+ def data_encipherment_enabled?: () -> bool
362
+
363
+ # Установлен ли бит decipherOnly.
364
+ def decipher_only_enabled?: () -> bool
365
+
366
+ # Установлен ли бит digitalSignature.
367
+ def digital_signature_enabled?: () -> bool
368
+
369
+ # Установлен ли бит encipherOnly.
370
+ def encipher_only_enabled?: () -> bool
371
+
372
+ # Установлен ли бит keyAgreement.
373
+ def key_agreement_enabled?: () -> bool
374
+
375
+ # Установлен ли бит keyCertSign.
376
+ def key_cert_sign_enabled?: () -> bool
377
+
378
+ # Установлен ли бит keyEncipherment.
379
+ def key_encipherment_enabled?: () -> bool
380
+
381
+ # Установлен ли бит nonRepudiation.
382
+ def non_repudiation_enabled?: () -> bool
383
+
384
+ # Присутствует ли расширение в сертификате.
385
+ def present?: () -> bool
386
+
387
+ # Является ли расширение критическим.
388
+ def critical?: () -> bool
389
+ end
390
+
391
+ class ExtendedKeyUsage
392
+ # Коллекция расширенных использований ключа.
393
+ def ekus: () -> EKUs
394
+
395
+ # Присутствует ли расширение в сертификате.
396
+ def present?: () -> bool
397
+
398
+ # Является ли расширение критическим.
399
+ def critical?: () -> bool
400
+ end
401
+
402
+ # CAdESCOM.PublicKey
403
+ # Описывает открытый ключ сертификата.
404
+ class PublicKey
405
+ # Возвращает OID алгоритма открытого ключа.
406
+ def algorithm: () -> OID
407
+
408
+ # Возвращает значение открытого ключа.
409
+ def encoded_key: () -> EncodedData
410
+
411
+ # Возвращает параметры алгоритма открытого ключа.
412
+ def encoded_parameters: () -> EncodedData
413
+
414
+ # Возвращает длину открытого ключа в битах.
415
+ def length: () -> Integer
416
+ end
417
+
418
+ class PrivateKey
419
+ # Имя контейнера закрытого ключа.
420
+ def container_name: () -> String
421
+
422
+ # Тип ключа (AT_KEYEXCHANGE или AT_SIGNATURE).
423
+ def key_spec: () -> Integer
424
+
425
+ # Имя криптопровайдера.
426
+ def provider_name: () -> String
427
+
428
+ # Тип криптопровайдера.
429
+ def provider_type: () -> Integer
430
+
431
+ # Уникальное имя контейнера.
432
+ def unique_container_name: () -> String
433
+
434
+ # Устанавливает PIN-код кэша.
435
+ def cache_pin=: (String) -> String
436
+
437
+ # Устанавливает PIN-код контейнера закрытого ключа.
438
+ def key_pin=: (String) -> String
439
+
440
+ # Изменяет PIN-код контейнера.
441
+ def change_pin: () -> void
442
+ end
443
+
444
+ class EncodedData
445
+ def initialize: () -> void
446
+
447
+ # Возвращает строковое представление формата.
448
+ def format: (?bool multiline) -> String
449
+
450
+ # Возвращает закодированное значение (CAPICOM_ENCODING_TYPE).
451
+ def value: (?Integer encoding) -> String
452
+ end
453
+
454
+ # CAdESCOM.CPCertificate
455
+ # Описывает сертификат открытого ключа.
456
+ class Certificate
457
+ def initialize: () -> void
458
+
459
+ # Издатель сертификата.
460
+ def issuer_name: () -> String
461
+
462
+ # Закрытый ключ.
463
+ def private_key: () -> PrivateKey
464
+
465
+ # Серийный номер.
466
+ def serial_number: () -> String
467
+
468
+ # Имя субъекта.
469
+ def subject_name: () -> String
470
+
471
+ # Отпечаток.
472
+ def thumbprint: () -> String
473
+
474
+ # Дата, с которой сертификат действителен.
475
+ def valid_from_date: () -> String
476
+
477
+ # Дата, до которой сертификат действителен.
478
+ def valid_to_date: () -> String
479
+
480
+ # Версия сертификата.
481
+ def version: () -> Integer
482
+
483
+ # Передать в объект дополнительное хранилище для проверки статуса сертификата.
484
+ def additional_store: (Store store) -> void
485
+
486
+ # Возвращает объект BasicConstraints для данного сертификата.
487
+ def basic_constraints: () -> BasicConstraints
488
+
489
+ # Экспортирует сертификат в заданной кодировке (CAPICOM_ENCODING_TYPE).
490
+ def export: (Integer encoding_type) -> String
491
+
492
+ # Возвращает объект ExtendedKeyUsage для данного сертификата.
493
+ def extended_key_usage: () -> ExtendedKeyUsage
494
+
495
+ # Имеется ли закрытый ключ для сертификата.
496
+ def has_private_key?: () -> bool
497
+
498
+ # Импортирует сертификат из закодированной строки.
499
+ def import: (String encoded_data) -> void
500
+
501
+ # Является ли сертификат валидным (возвращает статус сертификата)
502
+ def certificate_status: () -> CertificateStatus
503
+
504
+ # Возвращает объект KeyUsage для данного сертификата.
505
+ def key_usage: () -> KeyUsage
506
+
507
+ # Возвращает объект PublicKey для данного сертификата.
508
+ def public_key: () -> PublicKey
509
+
510
+ # NOT IMPLEMENTED in C++:
511
+ # def find_private_key: () -> void
512
+ # def get_info: (Integer info_type) -> String
513
+ end
514
+
515
+ # CAdESCOM.Certificates
516
+ # Описывает коллекцию сертификатов.
517
+ # Реализованы методы find, [], count.
518
+ class Certificates
519
+ # Возвращает количество объектов в коллекции сертификатов.
520
+ def count: () -> Integer
521
+
522
+ # Возвращает сертификат с заданным индексом из коллекции.
523
+ def []: (Integer index) -> Certificate
524
+
525
+ # Возвращает коллекцию сертификатов, удовлетворяющих заданному критерию.
526
+ # find_type — CAPICOM_CERTIFICATE_FIND_TYPE
527
+ # criteria — данные для поиска; время передаётся в виде "YYYYMMDDhhmmss.ddddddZ"
528
+ # valid_only — возвращать только валидные сертификаты
529
+ def find: (Integer find_type, ?Integer | String criteria, ?Integer valid_only) -> Certificates
530
+ end
531
+
532
+ # CAdESCOM.CertificateStatus
533
+ # Описывает статус сертификата открытого ключа.
534
+ class CertificateStatus
535
+ # Является ли сертификат валидным.
536
+ def result?: () -> bool
537
+
538
+ # NOT IMPLEMENTED in C++:
539
+ # def validation_certificates: () -> untyped
540
+ # def error_status: () -> untyped
541
+ end
542
+
543
+ class Algorithm
544
+ def initialize: () -> void
545
+
546
+ # Имя алгоритма.
547
+ def name: () -> Integer
548
+ def name=: (Integer) -> Integer
549
+
550
+ # Длина ключа (CAPICOM_ENCRYPTION_KEY_LENGTH).
551
+ def key_length: () -> Integer
552
+ def key_length=: (Integer) -> Integer
553
+ end
554
+
555
+ # Описывает статус подписи.
556
+ class SignatureStatus
557
+ # Является ли подпись валидной.
558
+ def valid?: () -> bool
559
+
560
+ # NOT IMPLEMENTED in C++:
561
+ # def validity_period_validity: () -> Integer
562
+ # def issuer_validity: () -> Integer
563
+ # def revocation_validity: () -> Integer
564
+ # def chain_build_validity: () -> Integer
565
+ # def chain_validity: () -> Integer
566
+ # def certificate_validity: () -> Integer
567
+ # def reference_validity: () -> Integer
568
+ # def signature_validity: () -> Integer
569
+ # def codesigning_validity: () -> Integer
570
+ # def timestamp_validity: () -> Integer
571
+ end
572
+
573
+ class Signer
574
+ def initialize: () -> void
575
+
576
+ # Подписанные атрибуты подписанта.
577
+ def authenticated_attributes: () -> Attributes
578
+ def authenticated_attributes=: (Attributes) -> Attributes
579
+
580
+ # Сертификат подписанта.
581
+ def certificate: () -> Certificate
582
+ def certificate=: (Certificate) -> Certificate
583
+
584
+ # Проверять ли сертификат при подписи.
585
+ def check_certificate: () -> bool
586
+ def check_certificate=: (bool) -> bool
587
+
588
+ # Списки отозванных сертификатов.
589
+ def crls: () -> untyped
590
+
591
+ # Устанавливает PIN-код контейнера закрытого ключа.
592
+ def key_pin=: (String) -> String
593
+
594
+ # OCSP-ответы.
595
+ def ocsp_responses: () -> untyped
596
+
597
+ # Параметры подписи.
598
+ def options: () -> Integer
599
+ def options=: (Integer) -> Integer
600
+
601
+ # Время метки подписи.
602
+ def signature_time_stamp_time: () -> String
603
+
604
+ # Время подписи.
605
+ def signing_time: () -> String
606
+
607
+ # Адрес службы TSA.
608
+ def tsa_address: () -> String
609
+ def tsa_address=: (String) -> String
610
+
611
+ # Неподписанные атрибуты подписанта.
612
+ def unauthenticated_attributes: () -> Attributes
613
+ def unauthenticated_attributes=: (Attributes) -> Attributes
614
+
615
+ # NOT IMPLEMENTED in C++:
616
+ # def key_pin: () -> String
617
+ # def signature_status: () -> SignatureStatus
618
+ end
619
+
620
+ class Signers
621
+ # Возвращает количество подписантов.
622
+ def count: () -> Integer
623
+
624
+ # Возвращает подписанта с заданным индексом.
625
+ def []: (Integer index) -> Signer
626
+ end
627
+
628
+ class SignedData
629
+ def initialize: () -> void
630
+
631
+ # Сертификаты, включённые в подписанное сообщение.
632
+ def certificates: () -> Certificates
633
+
634
+ # Подписываемые данные.
635
+ def content: () -> String
636
+ def content=: (String) -> String
637
+
638
+ # Кодировка содержимого.
639
+ def content_encoding: () -> Integer
640
+ def content_encoding=: (Integer) -> Integer
641
+
642
+ # Подписанты.
643
+ def signers: () -> Signers
644
+
645
+ # Передать дополнительное хранилище для проверки статуса сертификата.
646
+ def additional_store: (Store store) -> void
647
+
648
+ # Добавить подпись (соподписание) в существующее сообщение.
649
+ def cosign: (?Signer signer, ?Integer cades_type) -> String
650
+ def cosign_cades: (?Signer signer, ?Integer cades_type, ?bool detached) -> String
651
+ def cosign_hash: (HashedData hashed_data, ?Signer signer, ?Integer cades_type) -> String
652
+
653
+ # Улучшить подпись CAdES-BES до CAdES-T или CAdES-X Long Type 1.
654
+ def enhance_cades: (String signed_message, String tsa_address, ?Integer cades_type) -> String
655
+
656
+ # Подписать данные.
657
+ def sign: (?Signer signer, ?bool detached, ?Integer encoding_type) -> String
658
+ def sign_cades: (?Signer signer, ?Integer cades_type, ?bool detached, ?Integer encoding_type) -> String
659
+ def sign_hash: (HashedData hashed_data, ?Signer signer, ?Integer cades_type) -> String
660
+
661
+ # Проверить подпись.
662
+ def verify: (String signed_message, ?bool detached, ?Integer verify_flag) -> void
663
+ def verify_cades: (String signed_message, ?Integer cades_type, ?bool detached) -> void
664
+ def verify_hash: (HashedData hashed_data, String signed_message, ?Integer cades_type) -> void
665
+ end
666
+
667
+ class SignedXML
668
+ def initialize: () -> void
669
+
670
+ # Подписываемый XML.
671
+ def content: () -> String
672
+ def content=: (String) -> String
673
+
674
+ # Метод хэширования (только запись).
675
+ def digest_method=: (String) -> String
676
+
677
+ # Метод подписи (только запись).
678
+ def signature_method=: (String) -> String
679
+
680
+ # Тип XML-подписи (только запись, CADESCOM_XML_SIGNATURE_TYPE).
681
+ def signature_type=: (Integer) -> Integer
682
+
683
+ # Подписанты.
684
+ def signers: () -> Signers
685
+
686
+ # Подписать XML.
687
+ def sign: (?Signer signer) -> String
688
+
689
+ # Проверить XML-подпись.
690
+ def verify: (String signed_xml) -> void
691
+
692
+ # NOT IMPLEMENTED in C++ (write-only properties):
693
+ # def digest_method: () -> String
694
+ # def signature_method: () -> String
695
+ # def signature_type: () -> Integer
696
+ end
697
+
698
+ class HashedData
699
+ def initialize: () -> void
700
+
701
+ # Алгоритм хэширования (CADESCOM_HASH_ALGORITHM).
702
+ def algorithm: () -> Integer
703
+ def algorithm=: (Integer) -> Integer
704
+
705
+ # Кодировка входных данных.
706
+ def data_encoding: () -> Integer
707
+ def data_encoding=: (Integer) -> Integer
708
+
709
+ # Ключ для HMAC.
710
+ def key: () -> String
711
+ def key=: (String) -> String
712
+
713
+ # Значение хэша.
714
+ def value: () -> String
715
+
716
+ # Хэшировать данные.
717
+ def hash: (String data) -> void
718
+
719
+ # Установить значение хэша напрямую.
720
+ def hash_value=: (String hash_value) -> void
721
+ end
722
+
723
+ class RawSignature
724
+ def initialize: () -> void
725
+
726
+ # Подписать хэш.
727
+ def sign_hash: (HashedData hashed_data, Certificate certificate) -> String
728
+
729
+ # Проверить подпись хэша.
730
+ def verify_hash: (HashedData hashed_data, String signature, Certificate certificate) -> void
731
+ end
732
+
733
+ class EnvelopedData
734
+ def initialize: () -> void
735
+
736
+ # Алгоритм шифрования.
737
+ def algorithm: () -> Algorithm
738
+
739
+ # Шифруемые данные.
740
+ def content: () -> String
741
+ def content=: (String) -> String
742
+
743
+ # Кодировка содержимого.
744
+ def content_encoding: () -> Integer
745
+ def content_encoding=: (Integer) -> Integer
746
+
747
+ # Получатели зашифрованного сообщения.
748
+ def recipients: () -> Recipients
749
+
750
+ # Расшифровать сообщение.
751
+ def decrypt: (String encoded_message) -> void
752
+
753
+ # Зашифровать данные.
754
+ def encrypt: (?Integer encoding_type) -> String
755
+
756
+ def stream_decrypt: (String encoded_message) -> void
757
+ def stream_encrypt: (?Integer encoding_type) -> String
758
+ end
759
+
760
+ # Коллекция получателей зашифрованного сообщения.
761
+ class Recipients
762
+ # Возвращает количество получателей.
763
+ def count: () -> Integer
764
+
765
+ # Возвращает получателя с заданным индексом.
766
+ def []: (Integer index) -> Certificate
767
+
768
+ # Добавляет сертификат получателя.
769
+ def add: (Certificate certificate) -> void
770
+ def <<: (Certificate certificate) -> void
771
+
772
+ # Удаляет получателя из коллекции.
773
+ def remove: (Integer index) -> void
774
+
775
+ # Очищает коллекцию.
776
+ def clear: () -> void
777
+ end
778
+
779
+ # Коллекция бинарных блобов.
780
+ class Blobs
781
+ def count: () -> Integer
782
+ def []: (Integer index) -> untyped
783
+ end
784
+
785
+ # CAdESCOM.Store
786
+ # Хранилище сертификатов.
787
+ class Store
788
+ def initialize: () -> void
789
+
790
+ # Сертификаты в хранилище.
791
+ def certificates: () -> Certificates
792
+
793
+ # Расположение хранилища.
794
+ def location: () -> Integer
795
+
796
+ # Имя хранилища.
797
+ def name: () -> String
798
+
799
+ # Добавить сертификат в хранилище.
800
+ def add: (Certificate certificate) -> void
801
+
802
+ # Добавить CRL в хранилище.
803
+ def add_crl: (CRL crl) -> void
804
+
805
+ # Закрыть хранилище.
806
+ def close: () -> void
807
+
808
+ # Открыть хранилище.
809
+ # location — CADESCOM_STORE_LOCATION или CAPICOM_STORE_LOCATION
810
+ # name — имя хранилища (CAPICOM_MY_STORE и т.д.)
811
+ # mode — режим открытия (CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED и т.д.)
812
+ def open: (Integer location, String | Integer name, Integer mode) -> void
813
+ end
814
+
815
+ class SymmetricAlgorithm
816
+ def initialize: () -> void
817
+
818
+ # Данные для диверсификации ключа.
819
+ def divers_data: () -> String
820
+ def divers_data=: (String) -> String
821
+
822
+ # Вектор инициализации.
823
+ def iv: () -> String
824
+ def iv=: (String) -> String
825
+
826
+ # Расшифровать данные.
827
+ def decrypt: (String encoded_message, ?bool final) -> String
828
+
829
+ # Диверсифицировать ключ.
830
+ def diversify_key: (String divers_data) -> void
831
+
832
+ # Зашифровать данные.
833
+ def encrypt: (String data, ?bool final) -> String
834
+
835
+ # Экспортировать ключ.
836
+ def export_key: (?Integer encoding_type) -> String
837
+
838
+ # Сгенерировать ключ.
839
+ def generate_key: (Integer algorithm_oid, Integer key_length, ?Integer export_flags) -> void
840
+
841
+ # Импортировать ключ.
842
+ def import_key: (String encoded_key, ?String password) -> void
843
+
844
+ # NOT IMPLEMENTED in C++:
845
+ # def legacy_plugin_symmetric_export: () -> bool
846
+ # def legacy_plugin_symmetric_export=: (bool) -> bool
847
+ # def set_mode: (Integer mode) -> void
848
+ # def set_padding: (Integer padding) -> void
849
+ end
850
+
851
+ # Возвращает версию модуля rucades.
852
+ def self.module_version: () -> String
4
853
  end