rucades 0.3.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.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +18 -0
- data/Gemfile +16 -0
- data/LICENSE.txt +21 -0
- data/README.md +132 -0
- data/Rakefile +21 -0
- data/ext/rucades/cplib/Blob.h +192 -0
- data/ext/rucades/cplib/DateTime.h +518 -0
- data/ext/rucades/cplib/StringProxy.h +281 -0
- data/ext/rucades/cpstldll.h +183 -0
- data/ext/rucades/errormsg.cpp +561 -0
- data/ext/rucades/errormsg.h +31 -0
- data/ext/rucades/extconf.rb +91 -0
- data/ext/rucades/rucades.cpp +90 -0
- data/ext/rucades/rucades.h +14 -0
- data/ext/rucades/rucades_about.cpp +75 -0
- data/ext/rucades/rucades_about.h +26 -0
- data/ext/rucades/rucades_algorithm.cpp +54 -0
- data/ext/rucades/rucades_algorithm.h +28 -0
- data/ext/rucades/rucades_attribute.cpp +112 -0
- data/ext/rucades/rucades_attribute.h +30 -0
- data/ext/rucades/rucades_attributes.cpp +62 -0
- data/ext/rucades/rucades_attributes.h +28 -0
- data/ext/rucades/rucades_basic_constraints.cpp +67 -0
- data/ext/rucades/rucades_basic_constraints.h +27 -0
- data/ext/rucades/rucades_blobs.cpp +46 -0
- data/ext/rucades/rucades_blobs.h +25 -0
- data/ext/rucades/rucades_certificate.cpp +182 -0
- data/ext/rucades/rucades_certificate.h +59 -0
- data/ext/rucades/rucades_certificate_status.cpp +36 -0
- data/ext/rucades/rucades_certificate_status.h +23 -0
- data/ext/rucades/rucades_certificates.cpp +140 -0
- data/ext/rucades/rucades_certificates.h +31 -0
- data/ext/rucades/rucades_const.cpp +241 -0
- data/ext/rucades/rucades_crl.cpp +84 -0
- data/ext/rucades/rucades_crl.h +29 -0
- data/ext/rucades/rucades_eku.cpp +55 -0
- data/ext/rucades/rucades_eku.h +26 -0
- data/ext/rucades/rucades_ekus.cpp +43 -0
- data/ext/rucades/rucades_ekus.h +27 -0
- data/ext/rucades/rucades_encoded_data.cpp +41 -0
- data/ext/rucades/rucades_encoded_data.h +23 -0
- data/ext/rucades/rucades_enveloped_data.cpp +122 -0
- data/ext/rucades/rucades_enveloped_data.h +33 -0
- data/ext/rucades/rucades_extended_key_usage.cpp +53 -0
- data/ext/rucades/rucades_extended_key_usage.h +27 -0
- data/ext/rucades/rucades_hashed_data.cpp +90 -0
- data/ext/rucades/rucades_hashed_data.h +31 -0
- data/ext/rucades/rucades_key_usage.cpp +116 -0
- data/ext/rucades/rucades_key_usage.h +33 -0
- data/ext/rucades/rucades_oid.cpp +70 -0
- data/ext/rucades/rucades_oid.h +30 -0
- data/ext/rucades/rucades_private_key.cpp +86 -0
- data/ext/rucades/rucades_private_key.h +31 -0
- data/ext/rucades/rucades_public_key.cpp +59 -0
- data/ext/rucades/rucades_public_key.h +28 -0
- data/ext/rucades/rucades_raw_signature.cpp +42 -0
- data/ext/rucades/rucades_raw_signature.h +26 -0
- data/ext/rucades/rucades_recipients.cpp +63 -0
- data/ext/rucades/rucades_recipients.h +28 -0
- data/ext/rucades/rucades_signature_status.cpp +35 -0
- data/ext/rucades/rucades_signature_status.h +23 -0
- data/ext/rucades/rucades_signed_data.cpp +253 -0
- data/ext/rucades/rucades_signed_data.h +41 -0
- data/ext/rucades/rucades_signed_xml.cpp +87 -0
- data/ext/rucades/rucades_signed_xml.h +29 -0
- data/ext/rucades/rucades_signer.cpp +157 -0
- data/ext/rucades/rucades_signer.h +45 -0
- data/ext/rucades/rucades_signers.cpp +43 -0
- data/ext/rucades/rucades_signers.h +27 -0
- data/ext/rucades/rucades_store.cpp +78 -0
- data/ext/rucades/rucades_store.h +34 -0
- data/ext/rucades/rucades_symmetric_algorithm.cpp +107 -0
- data/ext/rucades/rucades_symmetric_algorithm.h +30 -0
- data/ext/rucades/rucades_tools.cpp +18 -0
- data/ext/rucades/rucades_version.cpp +60 -0
- data/ext/rucades/rucades_version.h +24 -0
- data/ext/rucades/stdafx.h +190 -0
- data/lib/rucades/version.rb +9 -0
- data/lib/rucades.rb +36 -0
- data/samples/encrypt_decrypt.rb +25 -0
- data/samples/sign_verify.rb +28 -0
- data/samples/sign_verify_hash.rb +30 -0
- data/samples/sign_verify_xml.rb +44 -0
- data/sig/rucades.rbs +4 -0
- metadata +156 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#include "rucades.h"
|
|
6
|
+
|
|
7
|
+
namespace rucades {
|
|
8
|
+
void define_constants(VALUE module) {
|
|
9
|
+
// // ... pki/cppcades/cppcades.h: enum _CADESCOM_CONTENT_ENCODING_TYPE
|
|
10
|
+
rb_define_const(module, "CADESCOM_STRING_TO_UCS2LE", INT2NUM(CADESCOM_STRING_TO_UCS2LE));
|
|
11
|
+
rb_define_const(module, "CADESCOM_BASE64_TO_BINARY", INT2NUM(CADESCOM_BASE64_TO_BINARY));
|
|
12
|
+
rb_define_const(module, "CADESCOM_ENCODING_NONE", INT2NUM(CADESCOM_ENCODING_NONE));
|
|
13
|
+
// ... pki/cppcades/cppcades.h: enum _CADESCOM_STORE_LOCATION
|
|
14
|
+
rb_define_const(module, "CADESCOM_MEMORY_STORE", INT2NUM(CADESCOM_MEMORY_STORE));
|
|
15
|
+
rb_define_const(module, "CADESCOM_LOCAL_MACHINE_STORE", INT2NUM(CADESCOM_LOCAL_MACHINE_STORE));
|
|
16
|
+
rb_define_const(module, "CADESCOM_CURRENT_USER_STORE", INT2NUM(CADESCOM_CURRENT_USER_STORE));
|
|
17
|
+
rb_define_const(module, "CADESCOM_ACTIVE_DIRECTORY_USER_STORE", INT2NUM(CADESCOM_ACTIVE_DIRECTORY_USER_STORE));
|
|
18
|
+
rb_define_const(module, "CADESCOM_SMART_CARD_USER_STORE", INT2NUM(CADESCOM_SMART_CARD_USER_STORE));
|
|
19
|
+
rb_define_const(module, "CADESCOM_CONTAINER_STORE", INT2NUM(CADESCOM_CONTAINER_STORE));
|
|
20
|
+
// ...
|
|
21
|
+
rb_define_const(module, "CAPICOM_LOCAL_MACHINE_STORE", INT2NUM(1));
|
|
22
|
+
rb_define_const(module, "CAPICOM_CURRENT_USER_STORE", INT2NUM(2));
|
|
23
|
+
// ...
|
|
24
|
+
rb_define_const(module, "CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED", INT2NUM(CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED));
|
|
25
|
+
rb_define_const(module, "CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING", INT2NUM(CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING));
|
|
26
|
+
rb_define_const(module, "CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE", INT2NUM(CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE));
|
|
27
|
+
rb_define_const(module, "CADESCOM_CADES_DEFAULT", INT2NUM(CADESCOM_CADES_DEFAULT));
|
|
28
|
+
rb_define_const(module, "CADESCOM_CADES_BES", INT2NUM(CADESCOM_CADES_BES));
|
|
29
|
+
rb_define_const(module, "CADESCOM_CADES_T", INT2NUM(CADESCOM_CADES_T));
|
|
30
|
+
rb_define_const(module, "CADESCOM_CADES_X_LONG_TYPE_1", INT2NUM(CADESCOM_CADES_X_LONG_TYPE_1));
|
|
31
|
+
rb_define_const(module, "CADESCOM_PKCS7_TYPE", INT2NUM(CADESCOM_PKCS7_TYPE));
|
|
32
|
+
rb_define_const(module, "CADESCOM_ENCODE_BASE64", INT2NUM(0));
|
|
33
|
+
rb_define_const(module, "CADESCOM_ENCODE_BINARY", INT2NUM(1));
|
|
34
|
+
rb_define_const(module, "CADESCOM_XADES_DEFAULT", INT2NUM(0x00000010));
|
|
35
|
+
rb_define_const(module, "CADESCOM_XADES_BES", INT2NUM(0x00000020));
|
|
36
|
+
rb_define_const(module, "CADESCOM_XADES_T", INT2NUM(0x00000050));
|
|
37
|
+
rb_define_const(module, "CADESCOM_XADES_X_LONG_TYPE_1", INT2NUM(0x000005d0));
|
|
38
|
+
rb_define_const(module, "CADESCOM_XADES_A", INT2NUM(0x000007d0));
|
|
39
|
+
rb_define_const(module, "CADESCOM_XMLDSIG_TYPE", INT2NUM(0));
|
|
40
|
+
rb_define_const(module, "CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED", INT2NUM(2));
|
|
41
|
+
// ... pki/cppcades/cppcades.h: enum _CAPICOM_CERTIFICATE_INCLUDE_OPTION
|
|
42
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN", INT2NUM(CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));
|
|
43
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY", INT2NUM(CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY));
|
|
44
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT", INT2NUM(CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT));
|
|
45
|
+
// ... pki/cppcades/cppcades.h: enum _CAPICOM_CERTIFICATE_FIND_TYPE
|
|
46
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_SHA1_HASH", INT2NUM(CAPICOM_CERTIFICATE_FIND_SHA1_HASH));
|
|
47
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME", INT2NUM(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME));
|
|
48
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_ISSUER_NAME", INT2NUM(CAPICOM_CERTIFICATE_FIND_ISSUER_NAME));
|
|
49
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_ROOT_NAME", INT2NUM(CAPICOM_CERTIFICATE_FIND_ROOT_NAME));
|
|
50
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME", INT2NUM(CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME));
|
|
51
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_EXTENSION", INT2NUM(CAPICOM_CERTIFICATE_FIND_EXTENSION));
|
|
52
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY", INT2NUM(CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY));
|
|
53
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY", INT2NUM(CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY));
|
|
54
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY", INT2NUM(CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY));
|
|
55
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_TIME_VALID", INT2NUM(CAPICOM_CERTIFICATE_FIND_TIME_VALID));
|
|
56
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID", INT2NUM(CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID));
|
|
57
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED", INT2NUM(CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED));
|
|
58
|
+
rb_define_const(module, "CAPICOM_CERTIFICATE_FIND_KEY_USAGE", INT2NUM(CAPICOM_CERTIFICATE_FIND_KEY_USAGE));
|
|
59
|
+
// ... pki/cppcades/cppcades.h: enum _CAPICOM_PROPID
|
|
60
|
+
rb_define_const(module, "CAPICOM_PROPID_ENHKEY_USAGE", INT2NUM(CAPICOM_PROPID_ENHKEY_USAGE));
|
|
61
|
+
rb_define_const(module, "CAPICOM_PROPID_KEY_PROV_INFO", INT2NUM(CAPICOM_PROPID_KEY_PROV_INFO));
|
|
62
|
+
// ... pki/cppcades/cppcades.h: enum _CAPICOM_SIGNED_DATA_VERIFY_FLAG
|
|
63
|
+
rb_define_const(module, "CAPICOM_VERIFY_SIGNATURE_ONLY", INT2NUM(CAPICOM_VERIFY_SIGNATURE_ONLY));
|
|
64
|
+
rb_define_const(module, "CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE", INT2NUM(CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE));
|
|
65
|
+
// ... pki/cppcades/cppcades.h: enum _CAPICOM_CERT_INFO_TYPE
|
|
66
|
+
rb_define_const(module, "CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME", INT2NUM(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME));
|
|
67
|
+
rb_define_const(module, "CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME", INT2NUM(CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME));
|
|
68
|
+
rb_define_const(module, "CAPICOM_CERT_INFO_SUBJECT_EMAIL_NAME", INT2NUM(CAPICOM_CERT_INFO_SUBJECT_EMAIL_NAME));
|
|
69
|
+
rb_define_const(module, "CAPICOM_CERT_INFO_ISSUER_EMAIL_NAME", INT2NUM(CAPICOM_CERT_INFO_ISSUER_EMAIL_NAME));
|
|
70
|
+
rb_define_const(module, "CAPICOM_CERT_INFO_SUBJECT_UPN", INT2NUM(CAPICOM_CERT_INFO_SUBJECT_UPN));
|
|
71
|
+
rb_define_const(module, "CAPICOM_CERT_INFO_ISSUER_UPN", INT2NUM(CAPICOM_CERT_INFO_ISSUER_UPN));
|
|
72
|
+
rb_define_const(module, "CAPICOM_CERT_INFO_SUBJECT_DNS_NAME", INT2NUM(CAPICOM_CERT_INFO_SUBJECT_DNS_NAME));
|
|
73
|
+
rb_define_const(module, "CAPICOM_CERT_INFO_ISSUER_DNS_NAME", INT2NUM(CAPICOM_CERT_INFO_ISSUER_DNS_NAME));
|
|
74
|
+
// ... pki/cppcades/cppcades.h: enum _CAPICOM_ENCODING_TYPE
|
|
75
|
+
rb_define_const(module, "CAPICOM_ENCODE_BASE64", INT2NUM(CAPICOM_ENCODE_BASE64));
|
|
76
|
+
rb_define_const(module, "CAPICOM_ENCODE_BINARY", INT2NUM(CAPICOM_ENCODE_BINARY));
|
|
77
|
+
rb_define_const(module, "CAPICOM_ENCODE_ANY", LONG2NUM(CAPICOM_ENCODE_ANY));
|
|
78
|
+
// ... pki/cppcades/cppcades.h: enum_CAPICOM_EKU
|
|
79
|
+
rb_define_const(module, "CAPICOM_EKU_OTHER", INT2NUM(CAPICOM_EKU_OTHER));
|
|
80
|
+
rb_define_const(module, "CAPICOM_EKU_SERVER_AUTH", INT2NUM(CAPICOM_EKU_SERVER_AUTH));
|
|
81
|
+
rb_define_const(module, "CAPICOM_EKU_CLIENT_AUTH", INT2NUM(CAPICOM_EKU_CLIENT_AUTH));
|
|
82
|
+
rb_define_const(module, "CAPICOM_EKU_CODE_SIGNING", INT2NUM(CAPICOM_EKU_CODE_SIGNING));
|
|
83
|
+
rb_define_const(module, "CAPICOM_EKU_EMAIL_PROTECTION", INT2NUM(CAPICOM_EKU_EMAIL_PROTECTION));
|
|
84
|
+
rb_define_const(module, "CAPICOM_EKU_SMARTCARD_LOGON", INT2NUM(CAPICOM_EKU_SMARTCARD_LOGON));
|
|
85
|
+
// ... pki/cppcades/cppcades.h: enum _CAPICOM_ATTRIBUTE
|
|
86
|
+
rb_define_const(module, "CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME", INT2NUM(CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));
|
|
87
|
+
rb_define_const(module, "CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME", INT2NUM(CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME));
|
|
88
|
+
rb_define_const(module, "CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION", INT2NUM(CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION));
|
|
89
|
+
// ... pki/cppcades/cppcades.h: enum _CADESCOM_ATTRIBUTE
|
|
90
|
+
rb_define_const(module, "CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME", INT2NUM(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));
|
|
91
|
+
rb_define_const(module, "CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME", INT2NUM(CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME));
|
|
92
|
+
rb_define_const(module, "CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION", INT2NUM(CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION));
|
|
93
|
+
rb_define_const(module, "CADESCOM_AUTHENTICATED_ATTRIBUTE_MACHINE_INFO", INT2NUM(CADESCOM_AUTHENTICATED_ATTRIBUTE_MACHINE_INFO));
|
|
94
|
+
rb_define_const(module, "CADESCOM_ATTRIBUTE_OTHER", INT2NUM(CADESCOM_ATTRIBUTE_OTHER));
|
|
95
|
+
//... pki/cppcades/cppcades.h: enum CADESCOM_DIPLAY_DATA;
|
|
96
|
+
rb_define_const(module, "CADESCOM_DISPLAY_DATA_NONE", INT2NUM(CADESCOM_DISPLAY_DATA_NONE));
|
|
97
|
+
rb_define_const(module, "CADESCOM_DISPLAY_DATA_CONTENT", INT2NUM(CADESCOM_DISPLAY_DATA_CONTENT));
|
|
98
|
+
rb_define_const(module, "CADESCOM_DISPLAY_DATA_ATTRIBUTE", INT2NUM(CADESCOM_DISPLAY_DATA_ATTRIBUTE));
|
|
99
|
+
// ... pki/cppcades/cppcades.h: enum _CADESCOM_ENCRYPTION_ALGORITHM
|
|
100
|
+
rb_define_const(module, "CADESCOM_ENCRYPTION_ALGORITHM_RC2", INT2NUM(CADESCOM_ENCRYPTION_ALGORITHM_RC2));
|
|
101
|
+
rb_define_const(module, "CADESCOM_ENCRYPTION_ALGORITHM_RC4", INT2NUM(CADESCOM_ENCRYPTION_ALGORITHM_RC4));
|
|
102
|
+
rb_define_const(module, "CADESCOM_ENCRYPTION_ALGORITHM_DES", INT2NUM(CADESCOM_ENCRYPTION_ALGORITHM_DES));
|
|
103
|
+
rb_define_const(module, "CADESCOM_ENCRYPTION_ALGORITHM_3DES", INT2NUM(CADESCOM_ENCRYPTION_ALGORITHM_3DES));
|
|
104
|
+
rb_define_const(module, "CADESCOM_ENCRYPTION_ALGORITHM_AES", INT2NUM(CADESCOM_ENCRYPTION_ALGORITHM_AES));
|
|
105
|
+
rb_define_const(module, "CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89", INT2NUM(CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89));
|
|
106
|
+
// ... pki/cppcades/cppcades.h: enum _CAPICOM_HASH_ALGORITHM
|
|
107
|
+
rb_define_const(module, "CAPICOM_HASH_ALGORITHM_SHA1", INT2NUM(CAPICOM_HASH_ALGORITHM_SHA1));
|
|
108
|
+
rb_define_const(module, "CAPICOM_HASH_ALGORITHM_MD2", INT2NUM(CAPICOM_HASH_ALGORITHM_MD2));
|
|
109
|
+
rb_define_const(module, "CAPICOM_HASH_ALGORITHM_MD4", INT2NUM(CAPICOM_HASH_ALGORITHM_MD4));
|
|
110
|
+
rb_define_const(module, "CAPICOM_HASH_ALGORITHM_MD5", INT2NUM(CAPICOM_HASH_ALGORITHM_MD5));
|
|
111
|
+
rb_define_const(module, "CAPICOM_HASH_ALGORITHM_SHA_256", INT2NUM(CAPICOM_HASH_ALGORITHM_SHA_256));
|
|
112
|
+
rb_define_const(module, "CAPICOM_HASH_ALGORITHM_SHA_384", INT2NUM(CAPICOM_HASH_ALGORITHM_SHA_384));
|
|
113
|
+
rb_define_const(module, "CAPICOM_HASH_ALGORITHM_SHA_512", INT2NUM(CAPICOM_HASH_ALGORITHM_SHA_512));
|
|
114
|
+
rb_define_const(module, "CADESCOM_HASH_ALGORITHM_CP_GOST_3411", INT2NUM(CADESCOM_HASH_ALGORITHM_CP_GOST_3411));
|
|
115
|
+
rb_define_const(module, "CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256", INT2NUM(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256));
|
|
116
|
+
rb_define_const(module, "CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512", INT2NUM(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512));
|
|
117
|
+
rb_define_const(module, "CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC", INT2NUM(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC));
|
|
118
|
+
rb_define_const(module, "CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC", INT2NUM(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC));
|
|
119
|
+
rb_define_const(module, "CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC", INT2NUM(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC));
|
|
120
|
+
// ... enum _CAPICOM_ENCRYPTION_KEY_LENGTH
|
|
121
|
+
rb_define_const(module, "CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM", INT2NUM(CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM));
|
|
122
|
+
rb_define_const(module, "CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS", INT2NUM(CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS));
|
|
123
|
+
rb_define_const(module, "CAPICOM_ENCRYPTION_KEY_LENGTH_56_BITS", INT2NUM(CAPICOM_ENCRYPTION_KEY_LENGTH_56_BITS));
|
|
124
|
+
rb_define_const(module, "CAPICOM_ENCRYPTION_KEY_LENGTH_128_BITS", INT2NUM(CAPICOM_ENCRYPTION_KEY_LENGTH_128_BITS));
|
|
125
|
+
rb_define_const(module, "CAPICOM_ENCRYPTION_KEY_LENGTH_192_BITS", INT2NUM(CAPICOM_ENCRYPTION_KEY_LENGTH_192_BITS));
|
|
126
|
+
rb_define_const(module, "CAPICOM_ENCRYPTION_KEY_LENGTH_256_BITS", INT2NUM(CAPICOM_ENCRYPTION_KEY_LENGTH_256_BITS));
|
|
127
|
+
// ... enum _CAPICOM_OID
|
|
128
|
+
rb_define_const(module, "CAPICOM_OID_OTHER", INT2NUM(CAPICOM_OID_OTHER));
|
|
129
|
+
rb_define_const(module, "CAPICOM_OID_AUTHORITY_KEY_IDENTIFIER_EXTENSION", INT2NUM(CAPICOM_OID_AUTHORITY_KEY_IDENTIFIER_EXTENSION));
|
|
130
|
+
rb_define_const(module, "CAPICOM_OID_KEY_ATTRIBUTES_EXTENSION", INT2NUM(CAPICOM_OID_KEY_ATTRIBUTES_EXTENSION));
|
|
131
|
+
rb_define_const(module, "CAPICOM_OID_CERT_POLICIES_95_EXTENSION", INT2NUM(CAPICOM_OID_CERT_POLICIES_95_EXTENSION));
|
|
132
|
+
rb_define_const(module, "CAPICOM_OID_KEY_USAGE_RESTRICTION_EXTENSION", INT2NUM(CAPICOM_OID_KEY_USAGE_RESTRICTION_EXTENSION));
|
|
133
|
+
rb_define_const(module, "CAPICOM_OID_LEGACY_POLICY_MAPPINGS_EXTENSION", INT2NUM(CAPICOM_OID_LEGACY_POLICY_MAPPINGS_EXTENSION));
|
|
134
|
+
rb_define_const(module, "CAPICOM_OID_SUBJECT_ALT_NAME_EXTENSION", INT2NUM(CAPICOM_OID_SUBJECT_ALT_NAME_EXTENSION));
|
|
135
|
+
rb_define_const(module, "CAPICOM_OID_ISSUER_ALT_NAME_EXTENSION", INT2NUM(CAPICOM_OID_ISSUER_ALT_NAME_EXTENSION));
|
|
136
|
+
rb_define_const(module, "CAPICOM_OID_BASIC_CONSTRAINTS_EXTENSION", INT2NUM(CAPICOM_OID_BASIC_CONSTRAINTS_EXTENSION));
|
|
137
|
+
rb_define_const(module, "CAPICOM_OID_SUBJECT_KEY_IDENTIFIER_EXTENSION", INT2NUM(CAPICOM_OID_SUBJECT_KEY_IDENTIFIER_EXTENSION));
|
|
138
|
+
rb_define_const(module, "CAPICOM_OID_KEY_USAGE_EXTENSION", INT2NUM(CAPICOM_OID_KEY_USAGE_EXTENSION));
|
|
139
|
+
rb_define_const(module, "CAPICOM_OID_PRIVATEKEY_USAGE_PERIOD_EXTENSION", INT2NUM(CAPICOM_OID_PRIVATEKEY_USAGE_PERIOD_EXTENSION));
|
|
140
|
+
rb_define_const(module, "CAPICOM_OID_SUBJECT_ALT_NAME2_EXTENSION", INT2NUM(CAPICOM_OID_SUBJECT_ALT_NAME2_EXTENSION));
|
|
141
|
+
rb_define_const(module, "CAPICOM_OID_ISSUER_ALT_NAME2_EXTENSION", INT2NUM(CAPICOM_OID_ISSUER_ALT_NAME2_EXTENSION));
|
|
142
|
+
rb_define_const(module, "CAPICOM_OID_BASIC_CONSTRAINTS2_EXTENSION", INT2NUM(CAPICOM_OID_BASIC_CONSTRAINTS2_EXTENSION));
|
|
143
|
+
rb_define_const(module, "CAPICOM_OID_NAME_CONSTRAINTS_EXTENSION", INT2NUM(CAPICOM_OID_NAME_CONSTRAINTS_EXTENSION));
|
|
144
|
+
rb_define_const(module, "CAPICOM_OID_CRL_DIST_POINTS_EXTENSION", INT2NUM(CAPICOM_OID_CRL_DIST_POINTS_EXTENSION));
|
|
145
|
+
rb_define_const(module, "CAPICOM_OID_CERT_POLICIES_EXTENSION", INT2NUM(CAPICOM_OID_CERT_POLICIES_EXTENSION));
|
|
146
|
+
rb_define_const(module, "CAPICOM_OID_POLICY_MAPPINGS_EXTENSION", INT2NUM(CAPICOM_OID_POLICY_MAPPINGS_EXTENSION));
|
|
147
|
+
rb_define_const(module, "CAPICOM_OID_AUTHORITY_KEY_IDENTIFIER2_EXTENSION", INT2NUM(CAPICOM_OID_AUTHORITY_KEY_IDENTIFIER2_EXTENSION));
|
|
148
|
+
rb_define_const(module, "CAPICOM_OID_POLICY_CONSTRAINTS_EXTENSION", INT2NUM(CAPICOM_OID_POLICY_CONSTRAINTS_EXTENSION));
|
|
149
|
+
rb_define_const(module, "CAPICOM_OID_ENHANCED_KEY_USAGE_EXTENSION", INT2NUM(CAPICOM_OID_ENHANCED_KEY_USAGE_EXTENSION));
|
|
150
|
+
rb_define_const(module, "CAPICOM_OID_CERTIFICATE_TEMPLATE_EXTENSION", INT2NUM(CAPICOM_OID_CERTIFICATE_TEMPLATE_EXTENSION));
|
|
151
|
+
rb_define_const(module, "CAPICOM_OID_APPLICATION_CERT_POLICIES_EXTENSION", INT2NUM(CAPICOM_OID_APPLICATION_CERT_POLICIES_EXTENSION));
|
|
152
|
+
rb_define_const(module, "CAPICOM_OID_APPLICATION_POLICY_MAPPINGS_EXTENSION", INT2NUM(CAPICOM_OID_APPLICATION_POLICY_MAPPINGS_EXTENSION));
|
|
153
|
+
rb_define_const(module, "CAPICOM_OID_APPLICATION_POLICY_CONSTRAINTS_EXTENSION", INT2NUM(CAPICOM_OID_APPLICATION_POLICY_CONSTRAINTS_EXTENSION));
|
|
154
|
+
rb_define_const(module, "CAPICOM_OID_AUTHORITY_INFO_ACCESS_EXTENSION", INT2NUM(CAPICOM_OID_AUTHORITY_INFO_ACCESS_EXTENSION));
|
|
155
|
+
rb_define_const(module, "CAPICOM_OID_SERVER_AUTH_EKU", INT2NUM(CAPICOM_OID_SERVER_AUTH_EKU));
|
|
156
|
+
rb_define_const(module, "CAPICOM_OID_CLIENT_AUTH_EKU", INT2NUM(CAPICOM_OID_CLIENT_AUTH_EKU));
|
|
157
|
+
rb_define_const(module, "CAPICOM_OID_CODE_SIGNING_EKU", INT2NUM(CAPICOM_OID_CODE_SIGNING_EKU));
|
|
158
|
+
rb_define_const(module, "CAPICOM_OID_EMAIL_PROTECTION_EKU", INT2NUM(CAPICOM_OID_EMAIL_PROTECTION_EKU));
|
|
159
|
+
rb_define_const(module, "CAPICOM_OID_IPSEC_END_SYSTEM_EKU", INT2NUM(CAPICOM_OID_IPSEC_END_SYSTEM_EKU));
|
|
160
|
+
rb_define_const(module, "CAPICOM_OID_IPSEC_TUNNEL_EKU", INT2NUM(CAPICOM_OID_IPSEC_TUNNEL_EKU));
|
|
161
|
+
rb_define_const(module, "CAPICOM_OID_IPSEC_USER_EKU", INT2NUM(CAPICOM_OID_IPSEC_USER_EKU));
|
|
162
|
+
rb_define_const(module, "CAPICOM_OID_TIME_STAMPING_EKU", INT2NUM(CAPICOM_OID_TIME_STAMPING_EKU));
|
|
163
|
+
rb_define_const(module, "CAPICOM_OID_CTL_USAGE_SIGNING_EKU", INT2NUM(CAPICOM_OID_CTL_USAGE_SIGNING_EKU));
|
|
164
|
+
rb_define_const(module, "CAPICOM_OID_TIME_STAMP_SIGNING_EKU", INT2NUM(CAPICOM_OID_TIME_STAMP_SIGNING_EKU));
|
|
165
|
+
rb_define_const(module, "CAPICOM_OID_SERVER_GATED_CRYPTO_EKU", INT2NUM(CAPICOM_OID_SERVER_GATED_CRYPTO_EKU));
|
|
166
|
+
rb_define_const(module, "CAPICOM_OID_ENCRYPTING_FILE_SYSTEM_EKU", INT2NUM(CAPICOM_OID_ENCRYPTING_FILE_SYSTEM_EKU));
|
|
167
|
+
rb_define_const(module, "CAPICOM_OID_EFS_RECOVERY_EKU", INT2NUM(CAPICOM_OID_EFS_RECOVERY_EKU));
|
|
168
|
+
rb_define_const(module, "CAPICOM_OID_WHQL_CRYPTO_EKU", INT2NUM(CAPICOM_OID_WHQL_CRYPTO_EKU));
|
|
169
|
+
rb_define_const(module, "CAPICOM_OID_NT5_CRYPTO_EKU", INT2NUM(CAPICOM_OID_NT5_CRYPTO_EKU));
|
|
170
|
+
rb_define_const(module, "CAPICOM_OID_OEM_WHQL_CRYPTO_EKU", INT2NUM(CAPICOM_OID_OEM_WHQL_CRYPTO_EKU));
|
|
171
|
+
rb_define_const(module, "CAPICOM_OID_EMBEDED_NT_CRYPTO_EKU", INT2NUM(CAPICOM_OID_EMBEDED_NT_CRYPTO_EKU));
|
|
172
|
+
rb_define_const(module, "CAPICOM_OID_ROOT_LIST_SIGNER_EKU", INT2NUM(CAPICOM_OID_ROOT_LIST_SIGNER_EKU));
|
|
173
|
+
rb_define_const(module, "CAPICOM_OID_QUALIFIED_SUBORDINATION_EKU", INT2NUM(CAPICOM_OID_QUALIFIED_SUBORDINATION_EKU));
|
|
174
|
+
rb_define_const(module, "CAPICOM_OID_KEY_RECOVERY_EKU", INT2NUM(CAPICOM_OID_KEY_RECOVERY_EKU));
|
|
175
|
+
rb_define_const(module, "CAPICOM_OID_DIGITAL_RIGHTS_EKU", INT2NUM(CAPICOM_OID_DIGITAL_RIGHTS_EKU));
|
|
176
|
+
rb_define_const(module, "CAPICOM_OID_LICENSES_EKU", INT2NUM(CAPICOM_OID_LICENSES_EKU));
|
|
177
|
+
rb_define_const(module, "CAPICOM_OID_LICENSE_SERVER_EKU", INT2NUM(CAPICOM_OID_LICENSE_SERVER_EKU));
|
|
178
|
+
rb_define_const(module, "CAPICOM_OID_SMART_CARD_LOGON_EKU", INT2NUM(CAPICOM_OID_SMART_CARD_LOGON_EKU));
|
|
179
|
+
rb_define_const(module, "CAPICOM_OID_PKIX_POLICY_QUALIFIER_CPS", INT2NUM(CAPICOM_OID_PKIX_POLICY_QUALIFIER_CPS));
|
|
180
|
+
rb_define_const(module, "CAPICOM_OID_PKIX_POLICY_QUALIFIER_USERNOTICE", INT2NUM(CAPICOM_OID_PKIX_POLICY_QUALIFIER_USERNOTICE));
|
|
181
|
+
// ... enum _CAPICOM_PROV_TYPE
|
|
182
|
+
rb_define_const(module, "CAPICOM_PROV_RSA_FULL", INT2NUM(CAPICOM_PROV_RSA_FULL));
|
|
183
|
+
rb_define_const(module, "CAPICOM_PROV_RSA_SIG", INT2NUM(CAPICOM_PROV_RSA_SIG));
|
|
184
|
+
rb_define_const(module, "CAPICOM_PROV_DSS", INT2NUM(CAPICOM_PROV_DSS));
|
|
185
|
+
rb_define_const(module, "CAPICOM_PROV_FORTEZZA", INT2NUM(CAPICOM_PROV_FORTEZZA));
|
|
186
|
+
rb_define_const(module, "CAPICOM_PROV_MS_EXCHANGE", INT2NUM(CAPICOM_PROV_MS_EXCHANGE));
|
|
187
|
+
rb_define_const(module, "CAPICOM_PROV_SSL", INT2NUM(CAPICOM_PROV_SSL));
|
|
188
|
+
rb_define_const(module, "CAPICOM_PROV_RSA_SCHANNEL", INT2NUM(CAPICOM_PROV_RSA_SCHANNEL));
|
|
189
|
+
rb_define_const(module, "CAPICOM_PROV_DSS_DH", INT2NUM(CAPICOM_PROV_DSS_DH));
|
|
190
|
+
rb_define_const(module, "CAPICOM_PROV_EC_ECDSA_SIG", INT2NUM(CAPICOM_PROV_EC_ECDSA_SIG));
|
|
191
|
+
rb_define_const(module, "CAPICOM_PROV_EC_ECNRA_SIG", INT2NUM(CAPICOM_PROV_EC_ECNRA_SIG));
|
|
192
|
+
rb_define_const(module, "CAPICOM_PROV_EC_ECDSA_FULL", INT2NUM(CAPICOM_PROV_EC_ECDSA_FULL));
|
|
193
|
+
rb_define_const(module, "CAPICOM_PROV_EC_ECNRA_FULL", INT2NUM(CAPICOM_PROV_EC_ECNRA_FULL));
|
|
194
|
+
rb_define_const(module, "CAPICOM_PROV_DH_SCHANNEL", INT2NUM(CAPICOM_PROV_DH_SCHANNEL));
|
|
195
|
+
rb_define_const(module, "CAPICOM_PROV_SPYRUS_LYNKS", INT2NUM(CAPICOM_PROV_SPYRUS_LYNKS));
|
|
196
|
+
rb_define_const(module, "CAPICOM_PROV_RNG", INT2NUM(CAPICOM_PROV_RNG));
|
|
197
|
+
rb_define_const(module, "CAPICOM_PROV_INTEL_SEC", INT2NUM(CAPICOM_PROV_INTEL_SEC));
|
|
198
|
+
rb_define_const(module, "CAPICOM_PROV_REPLACE_OWF", INT2NUM(CAPICOM_PROV_REPLACE_OWF));
|
|
199
|
+
rb_define_const(module, "CAPICOM_PROV_RSA_AES", INT2NUM(CAPICOM_PROV_RSA_AES));
|
|
200
|
+
// ... enum _CAPICOM_KEY_SPEC
|
|
201
|
+
rb_define_const(module, "CAPICOM_KEY_SPEC_KEYEXCHANGE", INT2NUM(CAPICOM_KEY_SPEC_KEYEXCHANGE));
|
|
202
|
+
rb_define_const(module, "CAPICOM_KEY_SPEC_SIGNATURE", INT2NUM(CAPICOM_KEY_SPEC_SIGNATURE));
|
|
203
|
+
// ...
|
|
204
|
+
rb_define_const(module, "CADESCOM_AllowNone", INT2NUM(0x00));
|
|
205
|
+
rb_define_const(module, "CADESCOM_AllowNoOutstandingRequest", INT2NUM(0x01));
|
|
206
|
+
rb_define_const(module, "CADESCOM_AllowUntrustedCertificate", INT2NUM(0x02));
|
|
207
|
+
rb_define_const(module, "CADESCOM_AllowUntrustedRoot", INT2NUM(0x04));
|
|
208
|
+
rb_define_const(module, "CADESCOM_SkipInstallToStore", INT2NUM(0x10000000));
|
|
209
|
+
rb_define_const(module, "ENABLE_CARRIER_TYPE_CSP", INT2NUM(0x01));
|
|
210
|
+
rb_define_const(module, "ENABLE_CARRIER_TYPE_FKC_NO_SM", INT2NUM(0x02));
|
|
211
|
+
rb_define_const(module, "ENABLE_CARRIER_TYPE_FKC_SM", INT2NUM(0x04));
|
|
212
|
+
rb_define_const(module, "ENABLE_ANY_CARRIER_TYPE", INT2NUM(0x07));
|
|
213
|
+
rb_define_const(module, "DISABLE_EVERY_CARRIER_OPERATION", INT2NUM(0x00));
|
|
214
|
+
rb_define_const(module, "ENABLE_CARRIER_OPEN_ENUM", INT2NUM(0x01));
|
|
215
|
+
rb_define_const(module, "ENABLE_CARRIER_CREATE", INT2NUM(0x02));
|
|
216
|
+
rb_define_const(module, "ENABLE_ANY_OPERATION", INT2NUM(0x03));
|
|
217
|
+
rb_define_const(module, "MEDIA_TYPE_REGISTRY", INT2NUM(0x00000001));
|
|
218
|
+
rb_define_const(module, "MEDIA_TYPE_HDIMAGE", INT2NUM(0x00000002));
|
|
219
|
+
rb_define_const(module, "MEDIA_TYPE_CLOUD", INT2NUM(0x00000004));
|
|
220
|
+
rb_define_const(module, "MEDIA_TYPE_SCARD", INT2NUM(0x00000008));
|
|
221
|
+
rb_define_const(module, "XCN_CRYPT_STRING_BASE64HEADER", INT2NUM(0));
|
|
222
|
+
rb_define_const(module, "AT_KEYEXCHANGE", INT2NUM(1));
|
|
223
|
+
rb_define_const(module, "AT_SIGNATURE", INT2NUM(2));
|
|
224
|
+
rb_define_const(module, "CADESCOM_ENCODE_ANY", INT2NUM(-1));
|
|
225
|
+
rb_define_const(module, "CAPICOM_EKU_ENCRYPTING_FILE_SYSTEM", INT2NUM(6));
|
|
226
|
+
rb_define_const(module, "CAPICOM_DATA_ENCIPHERMENT_KEY_USAGE", INT2NUM(16));
|
|
227
|
+
rb_define_const(module, "CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE", INT2NUM(128));
|
|
228
|
+
rb_define_const(module, "CAPICOM_MY_STORE", rb_str_new2("My"));
|
|
229
|
+
rb_define_const(module, "CAPICOM_CA_STORE", rb_str_new2("CA"));
|
|
230
|
+
rb_define_const(module, "CAPICOM_ROOT_STORE", rb_str_new2("Root"));
|
|
231
|
+
rb_define_const(module, "CAPICOM_OTHER_STORE", rb_str_new2("AddressBook"));
|
|
232
|
+
rb_define_const(module, "XmlDsigGost3410UrlObsolete", rb_str_new2("http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"));
|
|
233
|
+
rb_define_const(module, "XmlDsigGost3411UrlObsolete", rb_str_new2("http://www.w3.org/2001/04/xmldsig-more#gostr3411"));
|
|
234
|
+
rb_define_const(module, "XmlDsigGost3410Url", rb_str_new2("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411"));
|
|
235
|
+
rb_define_const(module, "XmlDsigGost3411Url", rb_str_new2("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411"));
|
|
236
|
+
rb_define_const(module, "XmlDsigGost3410Url2012256", rb_str_new2("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"));
|
|
237
|
+
rb_define_const(module, "XmlDsigGost3411Url2012256", rb_str_new2("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"));
|
|
238
|
+
rb_define_const(module, "XmlDsigGost3410Url2012512", rb_str_new2("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512"));
|
|
239
|
+
rb_define_const(module, "XmlDsigGost3411Url2012512", rb_str_new2("urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512"));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#include <rice/rice.hpp>
|
|
6
|
+
#include <rice/stl.hpp>
|
|
7
|
+
|
|
8
|
+
#include "rucades.h"
|
|
9
|
+
#include "rucades_crl.h"
|
|
10
|
+
|
|
11
|
+
using namespace Rice;
|
|
12
|
+
using namespace CryptoPro::PKI::CAdES;
|
|
13
|
+
|
|
14
|
+
namespace rucades {
|
|
15
|
+
|
|
16
|
+
pre_rb_CRL::pre_rb_CRL(void):
|
|
17
|
+
m_pCppCadesImpl(boost::shared_ptr<CPPCadesCPCRLObject>(new CPPCadesCPCRLObject())) { }
|
|
18
|
+
|
|
19
|
+
std::string pre_rb_CRL::get_auth_key_id(void)
|
|
20
|
+
{
|
|
21
|
+
CAtlString sKeyID;
|
|
22
|
+
hr_method_check(m_pCppCadesImpl->get_AuthKeyID(sKeyID));
|
|
23
|
+
return std::string(sKeyID.GetString());
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
std::string pre_rb_CRL::get_issuer_name(void)
|
|
27
|
+
{
|
|
28
|
+
CAtlString sIssuerName;
|
|
29
|
+
hr_method_check(m_pCppCadesImpl->get_IssuerName(sIssuerName));
|
|
30
|
+
return std::string(sIssuerName.GetString());
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
std::string pre_rb_CRL::get_next_update(void)
|
|
34
|
+
{
|
|
35
|
+
CryptoPro::CDateTime nextUpdate;
|
|
36
|
+
hr_method_check(m_pCppCadesImpl->get_NextUpdate(nextUpdate));
|
|
37
|
+
return nextUpdate.tostring().c_str();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
std::string pre_rb_CRL::get_this_update(void)
|
|
41
|
+
{
|
|
42
|
+
CryptoPro::CDateTime thisUpdate;
|
|
43
|
+
hr_method_check(m_pCppCadesImpl->get_ThisUpdate(thisUpdate));
|
|
44
|
+
return thisUpdate.tostring().c_str();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
std::string pre_rb_CRL::get_thumbprint(void)
|
|
48
|
+
{
|
|
49
|
+
CAtlString sThumbprint;
|
|
50
|
+
hr_method_check(m_pCppCadesImpl->get_Thumbprint(sThumbprint));
|
|
51
|
+
return std::string(sThumbprint.GetString());
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
void pre_rb_CRL::crl_import(std::string& crl)
|
|
55
|
+
{
|
|
56
|
+
CryptoPro::CBlob blobCRL;
|
|
57
|
+
blobCRL.assign(reinterpret_cast<const BYTE *>(crl.c_str()), crl.length());
|
|
58
|
+
hr_method_check(m_pCppCadesImpl->Import(blobCRL));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
std::string pre_rb_CRL::crl_export(long type)
|
|
62
|
+
{
|
|
63
|
+
CAPICOM_ENCODING_TYPE Type = static_cast<CAPICOM_ENCODING_TYPE>(type);
|
|
64
|
+
CryptoPro::CBlob blobCRL;
|
|
65
|
+
hr_method_check(m_pCppCadesImpl->Export(Type, blobCRL));
|
|
66
|
+
return type == CAPICOM_ENCODE_BINARY ?
|
|
67
|
+
std::string(reinterpret_cast<const char *>(blobCRL.pbData()),blobCRL.cbData()) :
|
|
68
|
+
std::string(reinterpret_cast<const char *>(blobCRL.pbData()));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
void pre_rb_CRL::define_ruby_class(VALUE module)
|
|
72
|
+
{
|
|
73
|
+
Data_Type<pre_rb_CRL> rb_cCRL =
|
|
74
|
+
define_class_under<pre_rb_CRL>(module, "CRL")
|
|
75
|
+
.define_constructor(Constructor<pre_rb_CRL>())
|
|
76
|
+
.define_method("auth_key_id", &pre_rb_CRL::get_auth_key_id)
|
|
77
|
+
.define_method("issuer_name", &pre_rb_CRL::get_issuer_name)
|
|
78
|
+
.define_method("next_update", &pre_rb_CRL::get_next_update)
|
|
79
|
+
.define_method("this_update", &pre_rb_CRL::get_this_update)
|
|
80
|
+
.define_method("thumbprint", &pre_rb_CRL::get_thumbprint)
|
|
81
|
+
.define_method("export", &pre_rb_CRL::crl_export)
|
|
82
|
+
.define_method("import", &pre_rb_CRL::crl_import);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "rucades.h"
|
|
8
|
+
#include "CPPCadesCPCRL.h"
|
|
9
|
+
|
|
10
|
+
namespace rucades {
|
|
11
|
+
|
|
12
|
+
class pre_rb_CRL {
|
|
13
|
+
protected:
|
|
14
|
+
boost::shared_ptr<CryptoPro::PKI::CAdES::CPPCadesCPCRLObject> m_pCppCadesImpl;
|
|
15
|
+
public:
|
|
16
|
+
pre_rb_CRL(void);
|
|
17
|
+
std::string get_auth_key_id(void);
|
|
18
|
+
std::string get_issuer_name(void);
|
|
19
|
+
std::string get_next_update(void);
|
|
20
|
+
std::string get_this_update(void);
|
|
21
|
+
std::string get_thumbprint(void);
|
|
22
|
+
void crl_import(std::string& crl);
|
|
23
|
+
std::string crl_export(long type);
|
|
24
|
+
|
|
25
|
+
static void define_ruby_class(VALUE module);
|
|
26
|
+
|
|
27
|
+
friend class pre_rb_Store;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#include <rice/rice.hpp>
|
|
6
|
+
#include <rice/stl.hpp>
|
|
7
|
+
|
|
8
|
+
#include "rucades.h"
|
|
9
|
+
#include "rucades_eku.h"
|
|
10
|
+
|
|
11
|
+
using namespace Rice;
|
|
12
|
+
using namespace CryptoPro::PKI::CAdES;
|
|
13
|
+
|
|
14
|
+
namespace rucades {
|
|
15
|
+
|
|
16
|
+
pre_rb_EKU::pre_rb_EKU(void):
|
|
17
|
+
m_pCppCadesImpl(boost::shared_ptr<CPPCadesCPEKUObject>(new CPPCadesCPEKUObject())) { }
|
|
18
|
+
|
|
19
|
+
pre_rb_EKU::pre_rb_EKU(boost::shared_ptr<CryptoPro::PKI::CAdES::CPPCadesCPEKUObject> other):
|
|
20
|
+
m_pCppCadesImpl(other) { }
|
|
21
|
+
|
|
22
|
+
long pre_rb_EKU::get_name(void)
|
|
23
|
+
{
|
|
24
|
+
CAPICOM_EKU name;
|
|
25
|
+
hr_method_check(m_pCppCadesImpl->get_Name(&name));
|
|
26
|
+
return static_cast<long>(name);
|
|
27
|
+
}
|
|
28
|
+
void pre_rb_EKU::set_name (long name)
|
|
29
|
+
{
|
|
30
|
+
hr_method_check(m_pCppCadesImpl->put_Name(static_cast<CAPICOM_EKU>(name)));
|
|
31
|
+
}
|
|
32
|
+
std::string pre_rb_EKU::get_oid(void)
|
|
33
|
+
{
|
|
34
|
+
CAtlStringA OID;
|
|
35
|
+
hr_method_check(m_pCppCadesImpl->get_OID(OID));
|
|
36
|
+
return std::string(OID.GetString());
|
|
37
|
+
}
|
|
38
|
+
void pre_rb_EKU::set_oid(std::string& oid)
|
|
39
|
+
{
|
|
40
|
+
CAtlStringA sOID = CAtlString(oid.c_str());
|
|
41
|
+
hr_method_check(m_pCppCadesImpl->put_OID(sOID));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
void pre_rb_EKU::define_ruby_class(VALUE module)
|
|
45
|
+
{
|
|
46
|
+
Data_Type<pre_rb_EKU> rb_cEKU =
|
|
47
|
+
define_class_under<pre_rb_EKU>(module, "EKU")
|
|
48
|
+
.define_constructor(Constructor<pre_rb_EKU>())
|
|
49
|
+
.define_method("name", &pre_rb_EKU::get_name)
|
|
50
|
+
.define_method("name=", &pre_rb_EKU::set_name)
|
|
51
|
+
.define_method("oid", &pre_rb_EKU::get_oid)
|
|
52
|
+
.define_method("oid=", &pre_rb_EKU::set_oid);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "rucades.h"
|
|
8
|
+
#include "CPPCadesCPEKU.h"
|
|
9
|
+
|
|
10
|
+
namespace rucades {
|
|
11
|
+
class pre_rb_EKU {
|
|
12
|
+
protected:
|
|
13
|
+
boost::shared_ptr<CryptoPro::PKI::CAdES::CPPCadesCPEKUObject> m_pCppCadesImpl;
|
|
14
|
+
public:
|
|
15
|
+
pre_rb_EKU(void);
|
|
16
|
+
pre_rb_EKU(boost::shared_ptr<CryptoPro::PKI::CAdES::CPPCadesCPEKUObject> pCppCadesEKU);
|
|
17
|
+
long get_name(void);
|
|
18
|
+
void set_name (long name);
|
|
19
|
+
std::string get_oid(void);
|
|
20
|
+
void set_oid(std::string& sFriendlyName);
|
|
21
|
+
|
|
22
|
+
static void define_ruby_class(VALUE module);
|
|
23
|
+
|
|
24
|
+
friend class pre_rb_EKUs;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#include <rice/rice.hpp>
|
|
6
|
+
#include <rice/stl.hpp>
|
|
7
|
+
|
|
8
|
+
#include "rucades.h"
|
|
9
|
+
#include "rucades_ekus.h"
|
|
10
|
+
|
|
11
|
+
using namespace Rice;
|
|
12
|
+
using namespace CryptoPro::PKI::CAdES;
|
|
13
|
+
|
|
14
|
+
namespace rucades {
|
|
15
|
+
pre_rb_EKUs::pre_rb_EKUs(void):
|
|
16
|
+
m_pCppCadesImpl(boost::shared_ptr<CPPCadesCPEKUsObject>(new CPPCadesCPEKUsObject())) { }
|
|
17
|
+
|
|
18
|
+
pre_rb_EKUs::pre_rb_EKUs(boost::shared_ptr<CPPCadesCPEKUsObject> other):
|
|
19
|
+
m_pCppCadesImpl(other) { }
|
|
20
|
+
|
|
21
|
+
long pre_rb_EKUs::get_count(void)
|
|
22
|
+
{
|
|
23
|
+
unsigned int count = 0;
|
|
24
|
+
hr_method_check(m_pCppCadesImpl->get_Count(&count));
|
|
25
|
+
return count;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
pre_rb_EKU pre_rb_EKUs::get_item(long index)
|
|
29
|
+
{
|
|
30
|
+
boost::shared_ptr<CPPCadesCPEKUObject> pCppCadesEKU = boost::shared_ptr<CPPCadesCPEKUObject>(new CPPCadesCPEKUObject());
|
|
31
|
+
hr_method_check(m_pCppCadesImpl->get_Item(index, pCppCadesEKU));
|
|
32
|
+
return pre_rb_EKU(pCppCadesEKU);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
void pre_rb_EKUs::define_ruby_class(VALUE module)
|
|
36
|
+
{
|
|
37
|
+
Data_Type<pre_rb_EKUs> rb_cEKUs =
|
|
38
|
+
define_class_under<pre_rb_EKUs>(module, "EKUs")
|
|
39
|
+
.define_constructor(Constructor<pre_rb_EKUs>())
|
|
40
|
+
.define_method("count", &pre_rb_EKUs::get_count)
|
|
41
|
+
.define_method("[]", &pre_rb_EKUs::get_item);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "rucades.h"
|
|
8
|
+
#include "rucades_eku.h"
|
|
9
|
+
|
|
10
|
+
#include "CPPCadesCollections.h"
|
|
11
|
+
#include "CPPCadesCPEKU.h"
|
|
12
|
+
|
|
13
|
+
namespace rucades {
|
|
14
|
+
class pre_rb_EKUs {
|
|
15
|
+
protected:
|
|
16
|
+
boost::shared_ptr<CryptoPro::PKI::CAdES::CPPCadesCPEKUsObject> m_pCppCadesImpl;
|
|
17
|
+
public:
|
|
18
|
+
pre_rb_EKUs(void);
|
|
19
|
+
pre_rb_EKUs(boost::shared_ptr<CryptoPro::PKI::CAdES::CPPCadesCPEKUsObject> pCppCadesEKUs);
|
|
20
|
+
long get_count(void);
|
|
21
|
+
pre_rb_EKU get_item(long index);
|
|
22
|
+
|
|
23
|
+
static void define_ruby_class(VALUE module);
|
|
24
|
+
|
|
25
|
+
friend class pre_rb_ExtendedKeyUsage;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#include <rice/rice.hpp>
|
|
6
|
+
#include <rice/stl.hpp>
|
|
7
|
+
|
|
8
|
+
#include "rucades.h"
|
|
9
|
+
#include "rucades_encoded_data.h"
|
|
10
|
+
|
|
11
|
+
using namespace Rice;
|
|
12
|
+
using namespace CryptoPro::PKI::CAdES;
|
|
13
|
+
|
|
14
|
+
namespace rucades {
|
|
15
|
+
pre_rb_EncodedData::pre_rb_EncodedData(void):
|
|
16
|
+
m_pCppCadesImpl(boost::shared_ptr<CPPCadesCPEncodedDataObject>(new CPPCadesCPEncodedDataObject())) { }
|
|
17
|
+
|
|
18
|
+
std::string pre_rb_EncodedData::value(long type)
|
|
19
|
+
{
|
|
20
|
+
CAPICOM_ENCODING_TYPE Type = static_cast<CAPICOM_ENCODING_TYPE>(type);
|
|
21
|
+
CryptoPro::CBlob data;
|
|
22
|
+
hr_method_check(m_pCppCadesImpl->get_Value(Type, data));
|
|
23
|
+
return std::string((const char *)data.pbData(), data.cbData());
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
std::string pre_rb_EncodedData::format(bool multiline)
|
|
27
|
+
{
|
|
28
|
+
CAtlStringW sValue;
|
|
29
|
+
hr_method_check(m_pCppCadesImpl->Format(multiline ? TRUE : FALSE, sValue));
|
|
30
|
+
return std::string(CW2A(sValue.GetString(), CP_UTF8));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
void pre_rb_EncodedData::define_ruby_class(VALUE module)
|
|
34
|
+
{
|
|
35
|
+
Data_Type<pre_rb_EncodedData> rb_cEncodedData =
|
|
36
|
+
define_class_under<pre_rb_EncodedData>(module, "EncodedData")
|
|
37
|
+
.define_constructor(Constructor<pre_rb_EncodedData>())
|
|
38
|
+
.define_method("format", &pre_rb_EncodedData::format, Arg("multiline") = false)
|
|
39
|
+
.define_method("value", &pre_rb_EncodedData::value, Arg("type") = static_cast<long>(CAPICOM_ENCODE_BASE64));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright (c) 2023 Maxim [maxirmx] Samsonov (https://sw.consulting)
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
// This file is a part of rucades
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
#include "rucades.h"
|
|
8
|
+
#include "CPPCadesCPEncodedData.h"
|
|
9
|
+
|
|
10
|
+
namespace rucades {
|
|
11
|
+
class pre_rb_EncodedData {
|
|
12
|
+
protected:
|
|
13
|
+
boost::shared_ptr<CryptoPro::PKI::CAdES::CPPCadesCPEncodedDataObject> m_pCppCadesImpl;
|
|
14
|
+
public:
|
|
15
|
+
pre_rb_EncodedData(void);
|
|
16
|
+
std::string value(long format);
|
|
17
|
+
std::string format(bool multiline);
|
|
18
|
+
|
|
19
|
+
static void define_ruby_class(VALUE module);
|
|
20
|
+
|
|
21
|
+
friend class pre_rb_PublicKey;
|
|
22
|
+
};
|
|
23
|
+
}
|