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,281 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright(C) 2004 ������ ���
|
|
3
|
+
*
|
|
4
|
+
* ���� ���� �������� ����������, ����������
|
|
5
|
+
* �������������� �������� ������ ���.
|
|
6
|
+
*
|
|
7
|
+
* ����� ����� ����� ����� �� ����� ���� �����������,
|
|
8
|
+
* ����������, ���������� �� ������ �����,
|
|
9
|
+
* ������������ ��� �������������� ����� ��������,
|
|
10
|
+
* ���������������, �������� �� ���� � ��� ��
|
|
11
|
+
* ����� ������������ ������� ��� ����������������
|
|
12
|
+
* ���������� ���������� � ��������� ������ ���.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/*!
|
|
16
|
+
* \file $RCSfile$
|
|
17
|
+
* \version $Revision$
|
|
18
|
+
* \date $Date:: $
|
|
19
|
+
* \author $Author$
|
|
20
|
+
*
|
|
21
|
+
* \brief ������-������� ��� �����
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#ifndef _STRINGPROXY_H_INCLUDED
|
|
25
|
+
#define _STRINGPROXY_H_INCLUDED
|
|
26
|
+
|
|
27
|
+
#if !defined CPLIB_DLL_DEFINES
|
|
28
|
+
# define CPLIB_DLL_DEFINES
|
|
29
|
+
# if defined _WIN32 && !defined CRYPTCP && !defined CPLIB_STATIC
|
|
30
|
+
# if defined CPLIB_DLL
|
|
31
|
+
# define CPLIB_CLASS __declspec(dllexport)
|
|
32
|
+
# define CPLIB_API __declspec(dllexport)
|
|
33
|
+
# define CPLIB_DATA __declspec(dllexport)
|
|
34
|
+
# define CPLIB_EXTERN_TEMPLATE
|
|
35
|
+
# else // defined CPLIB_DLL
|
|
36
|
+
# define CPLIB_CLASS __declspec(dllimport)
|
|
37
|
+
# define CPLIB_API __declspec(dllimport)
|
|
38
|
+
# define CPLIB_DATA __declspec(dllimport)
|
|
39
|
+
# define CPLIB_EXTERN_TEMPLATE extern
|
|
40
|
+
# ifndef CP_IGNORE_PRAGMA_MANIFEST
|
|
41
|
+
# include "cplib_assembly.h"
|
|
42
|
+
# ifdef _WIN64
|
|
43
|
+
# pragma comment(linker,"/manifestdependency:\"type='win32' " \
|
|
44
|
+
"name='" CPLIB_ASSEMBLY_NAME_X64 "' " \
|
|
45
|
+
"version='" CPLIB_ASSEMBLY_VERSION_X64 "' " \
|
|
46
|
+
"processorArchitecture='amd64' " \
|
|
47
|
+
"language='*' " \
|
|
48
|
+
"publicKeyToken='" CPLIB_ASSEMBLY_PUBLICKEYTOKEN_X64 "'\"")
|
|
49
|
+
# else
|
|
50
|
+
# pragma comment(linker,"/manifestdependency:\"type='win32' " \
|
|
51
|
+
"name='" CPLIB_ASSEMBLY_NAME_X86 "' " \
|
|
52
|
+
"version='" CPLIB_ASSEMBLY_VERSION_X86 "' " \
|
|
53
|
+
"processorArchitecture='x86' " \
|
|
54
|
+
"language='*' " \
|
|
55
|
+
"publicKeyToken='" CPLIB_ASSEMBLY_PUBLICKEYTOKEN_X86 "'\"")
|
|
56
|
+
# endif
|
|
57
|
+
# endif
|
|
58
|
+
# endif // !defined CPLIB_DLL
|
|
59
|
+
# else // defined _WIN32 && !defined CRYPTCP && !defined CPLIB_STATIC
|
|
60
|
+
# define CPLIB_CLASS
|
|
61
|
+
# define CPLIB_API
|
|
62
|
+
# define CPLIB_DATA
|
|
63
|
+
# define CPLIB_EXTERN_TEMPLATE
|
|
64
|
+
# define NO_EXPIMP_CDLLLIST_ITERATORS
|
|
65
|
+
# endif // !defined _WIN32 || defined CRYPTCP || defined CPLIB_STATIC
|
|
66
|
+
#endif // !defined CPLIB_DLL_DEFINES
|
|
67
|
+
|
|
68
|
+
#include <string>
|
|
69
|
+
#ifndef wstring
|
|
70
|
+
namespace std {
|
|
71
|
+
typedef basic_string<wchar_t> wstring;
|
|
72
|
+
}
|
|
73
|
+
#endif //wstring
|
|
74
|
+
|
|
75
|
+
#include <cpstldll.h>
|
|
76
|
+
|
|
77
|
+
namespace CryptoPro {
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* \class CStringProxy StringProxy.h <cplib/StringProxy.h>
|
|
81
|
+
* \brief ������-��������� ��� �����.
|
|
82
|
+
*
|
|
83
|
+
* � �������� ����� ������ ������� �������� � ������������
|
|
84
|
+
* ���� CryptoPro ���������� ANSI ������. ���� ����� ������ - ����������
|
|
85
|
+
* ��������� ������������ ������, ���������� ��� ������ (������ ��������� ������
|
|
86
|
+
* ������������ ����������, � ������������� ������ ��� ��).
|
|
87
|
+
*
|
|
88
|
+
* ��� ������� ������������� ������� �� ������������ ���� CryptoPro
|
|
89
|
+
* ��� ������������� ��������������� ������������ ���� �����. � ������
|
|
90
|
+
* ������������� ������� \link CryptoPro::CStringProxy::c_str c_str() \endlink,
|
|
91
|
+
* ������������ ��������� �� c-������ ( �� �������� � std::string ).
|
|
92
|
+
* ������ ����������� ������������� �������, ������������ ������
|
|
93
|
+
* ������ CStringProxy:
|
|
94
|
+
*
|
|
95
|
+
* \code
|
|
96
|
+
*
|
|
97
|
+
* CStringProxy f();
|
|
98
|
+
*
|
|
99
|
+
* std::string s = f().c_str();
|
|
100
|
+
* CString atls = f().c_str();
|
|
101
|
+
*
|
|
102
|
+
* \endcode
|
|
103
|
+
*
|
|
104
|
+
* ����������� ������������ ���� ����� ��������� �������:
|
|
105
|
+
*
|
|
106
|
+
* \code
|
|
107
|
+
* const char* s = f().c_str();
|
|
108
|
+
* \endcode
|
|
109
|
+
*
|
|
110
|
+
* ���������� ������ �� ������� ��������� s ����� ������������, ���������
|
|
111
|
+
* f() ���������� ��������� ������, ������� ������������ ����� �������� ��
|
|
112
|
+
* �������. ��������� ��� ���������:
|
|
113
|
+
*
|
|
114
|
+
* \code
|
|
115
|
+
*
|
|
116
|
+
* // ��������� �����
|
|
117
|
+
* size_t len = strlen(f());
|
|
118
|
+
*
|
|
119
|
+
* // ��������� ������ ��� ������
|
|
120
|
+
* const char* s = (char*)malloc(len+1);
|
|
121
|
+
* if(!s)
|
|
122
|
+
* error("not enough memory");
|
|
123
|
+
*
|
|
124
|
+
* // ��������� ������ � ����������� � ���������� ������
|
|
125
|
+
* strncpy(s,f(),len+1);
|
|
126
|
+
*
|
|
127
|
+
* \endcode
|
|
128
|
+
*
|
|
129
|
+
* \sa CWStringProxy
|
|
130
|
+
*/
|
|
131
|
+
class CPLIB_CLASS
|
|
132
|
+
CStringProxy
|
|
133
|
+
{
|
|
134
|
+
public:
|
|
135
|
+
/**
|
|
136
|
+
* \brief ������� � �������������� ������
|
|
137
|
+
*
|
|
138
|
+
* \param str [in] ��������� �� ������ ��������
|
|
139
|
+
*/
|
|
140
|
+
CStringProxy( const char* str = "");
|
|
141
|
+
/**
|
|
142
|
+
* \brief ������� ����� ��������� �������.
|
|
143
|
+
*
|
|
144
|
+
* \param src [in] ������, ����� �������� ���������
|
|
145
|
+
*/
|
|
146
|
+
CStringProxy( const CStringProxy& src);
|
|
147
|
+
/**
|
|
148
|
+
* \brief �������� �������� ������ � �������.
|
|
149
|
+
*
|
|
150
|
+
* \param src [in] ������, ������� ���������� � �������
|
|
151
|
+
* \return ������ �� ������� ������.
|
|
152
|
+
*/
|
|
153
|
+
CStringProxy& operator=( const CStringProxy& src);
|
|
154
|
+
/// ���������� ������.
|
|
155
|
+
~CStringProxy();
|
|
156
|
+
|
|
157
|
+
/// �������� ������ � ���� const char*
|
|
158
|
+
const char* c_str() const;
|
|
159
|
+
private:
|
|
160
|
+
#ifndef UNIX
|
|
161
|
+
#pragma warning(push)
|
|
162
|
+
#pragma warning(disable: 4251)
|
|
163
|
+
#endif
|
|
164
|
+
std::string *m_pValue;
|
|
165
|
+
#ifndef UNIX
|
|
166
|
+
#pragma warning(pop)
|
|
167
|
+
#endif
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* \class CWStringProxy StringProxy.h <cplib/StringProxy.h>
|
|
172
|
+
* \brief ������-��������� ��� �����.
|
|
173
|
+
*
|
|
174
|
+
* � �������� ����� ������ ������� �������� � ������������
|
|
175
|
+
* ���� CryptoPro ���������� UNICODE ������. ���� ����� ������ - ����������
|
|
176
|
+
* ��������� ������������ ������, ���������� ��� ������ (������ ��������� ������
|
|
177
|
+
* ������������ ����������, � ������������� ������ ��� ��).
|
|
178
|
+
*
|
|
179
|
+
* ��� ������� ������������� ������� �� ������������ ���� CryptoPro
|
|
180
|
+
* ��� ������������� ��������������� ������������ ���� �����. � ������
|
|
181
|
+
* ������������� ������� \link CryptoPro::CStringProxy::c_str c_str() \endlink,
|
|
182
|
+
* ������������ ��������� �� c-������ ( �� �������� � std::wstring ).
|
|
183
|
+
* ������ ����������� ������������� �������, ������������ ������
|
|
184
|
+
* ������ CWStringProxy:
|
|
185
|
+
*
|
|
186
|
+
* \code
|
|
187
|
+
*
|
|
188
|
+
* CWStringProxy f();
|
|
189
|
+
*
|
|
190
|
+
* std::wstring s = f().c_str();
|
|
191
|
+
* CString atls = f().c_str();
|
|
192
|
+
*
|
|
193
|
+
* \endcode
|
|
194
|
+
*
|
|
195
|
+
* ����������� ������������ ���� ����� ��������� �������:
|
|
196
|
+
*
|
|
197
|
+
* \code
|
|
198
|
+
* const wchar_t* s = f().c_str();
|
|
199
|
+
* \endcode
|
|
200
|
+
*
|
|
201
|
+
* ���������� ������ �� ������� ��������� s ����� ������������, ���������
|
|
202
|
+
* f() ���������� ��������� ������, ������� ������������ ����� �������� ��
|
|
203
|
+
* �������. ��������� ��� ���������:
|
|
204
|
+
*
|
|
205
|
+
* \code
|
|
206
|
+
*
|
|
207
|
+
* // ��������� �����
|
|
208
|
+
* size_t len = wcslen(f());
|
|
209
|
+
*
|
|
210
|
+
* // ��������� ������ ��� ������
|
|
211
|
+
* const char* s = (char*)malloc((len+1)*sizeof(wchar_t));
|
|
212
|
+
* if(!s)
|
|
213
|
+
* error("not enough memory");
|
|
214
|
+
*
|
|
215
|
+
* // ��������� ������ � ����������� � ���������� ������
|
|
216
|
+
* wcsncpy(s,f(),len+1);
|
|
217
|
+
*
|
|
218
|
+
* \endcode
|
|
219
|
+
*
|
|
220
|
+
* \sa CStringProxy
|
|
221
|
+
*/
|
|
222
|
+
class CPLIB_CLASS
|
|
223
|
+
CWStringProxy
|
|
224
|
+
{
|
|
225
|
+
public:
|
|
226
|
+
/**
|
|
227
|
+
* \brief ������� � �������������� ������
|
|
228
|
+
*
|
|
229
|
+
* \param str [in] ��������� �� ������ ��������
|
|
230
|
+
*/
|
|
231
|
+
CWStringProxy( const wchar_t* str = L"");
|
|
232
|
+
/**
|
|
233
|
+
* \brief ������� ����� ��������� �������.
|
|
234
|
+
*
|
|
235
|
+
* \param src [in] ������, ����� �������� ���������
|
|
236
|
+
*/
|
|
237
|
+
CWStringProxy( const CWStringProxy& src);
|
|
238
|
+
/**
|
|
239
|
+
* \brief �������� �������� ������ � �������.
|
|
240
|
+
*
|
|
241
|
+
* \param src [in] ������, ������� ���������� � �������
|
|
242
|
+
* \return ������ �� ������� ������.
|
|
243
|
+
*/
|
|
244
|
+
CWStringProxy& operator=( const CWStringProxy& src);
|
|
245
|
+
/// ���������� ������.
|
|
246
|
+
~CWStringProxy();
|
|
247
|
+
|
|
248
|
+
/// �������� ������ � ���� const wchar_t*
|
|
249
|
+
const wchar_t* c_str() const;
|
|
250
|
+
private:
|
|
251
|
+
#ifndef UNIX
|
|
252
|
+
#pragma warning(push)
|
|
253
|
+
#pragma warning(disable: 4251)
|
|
254
|
+
#endif
|
|
255
|
+
std::wstring *m_pValue;
|
|
256
|
+
#ifndef UNIX
|
|
257
|
+
#pragma warning(pop)
|
|
258
|
+
#endif
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
// VS2008 bug/feature: ������� ���������������� �������� ��������� �������
|
|
262
|
+
// (����� - ����������) ������ ���������� ������� ����������������� �������
|
|
263
|
+
// �������� ������ (����� - CDllList<>), ����� �� DLL �� ����� ��������������
|
|
264
|
+
// ������ ��������� �������.
|
|
265
|
+
EXPIMP_CDLLLIST_ITERATORS(CStringProxy, CPLIB_EXTERN_TEMPLATE, CPLIB_CLASS);
|
|
266
|
+
|
|
267
|
+
/// ������ �������� CStringProxy
|
|
268
|
+
class CPLIB_CLASS CStringList: public CDllList<CStringProxy> {};
|
|
269
|
+
|
|
270
|
+
// VS2008 bug/feature: ������� ���������������� �������� ��������� �������
|
|
271
|
+
// (����� - ����������) ������ ���������� ������� ����������������� �������
|
|
272
|
+
// �������� ������ (����� - CDllList<>), ����� �� DLL �� ����� ��������������
|
|
273
|
+
// ������ ��������� �������.
|
|
274
|
+
EXPIMP_CDLLLIST_ITERATORS(CWStringProxy, CPLIB_EXTERN_TEMPLATE, CPLIB_CLASS);
|
|
275
|
+
|
|
276
|
+
/// ������ �������� CWStringProxy
|
|
277
|
+
class CPLIB_CLASS CWStringList: public CDllList<CWStringProxy> {};
|
|
278
|
+
|
|
279
|
+
} // namespace CryptoPro
|
|
280
|
+
|
|
281
|
+
#endif // _STRINGPROXY_H_INCLUDED
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright(C) 2004 ������ ���
|
|
3
|
+
*
|
|
4
|
+
* ���� ���� �������� ����������, ����������
|
|
5
|
+
* �������������� �������� ������ ���.
|
|
6
|
+
*
|
|
7
|
+
* ����� ����� ����� ����� �� ����� ���� �����������,
|
|
8
|
+
* ����������, ���������� �� ������ �����,
|
|
9
|
+
* ������������ ��� �������������� ����� ��������,
|
|
10
|
+
* ���������������, �������� �� ���� � ��� ��
|
|
11
|
+
* ����� ������������ ������� ��� ����������������
|
|
12
|
+
* ���������� ���������� � ��������� ������ ���.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/*!
|
|
16
|
+
* \file $RCSfile$
|
|
17
|
+
* \version $Revision$
|
|
18
|
+
* \date $Date:: $
|
|
19
|
+
* \author $Author$
|
|
20
|
+
*
|
|
21
|
+
* \brief ������� ��� stl �������, ����������� �� �������������� � dll.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
#ifndef _CPSTLDLL_H_INCLUDED
|
|
25
|
+
#define _CPSTLDLL_H_INCLUDED
|
|
26
|
+
|
|
27
|
+
#include <list>
|
|
28
|
+
|
|
29
|
+
#if defined UNIX
|
|
30
|
+
# define CDllList std::list
|
|
31
|
+
# define EXPIMP_CDLLLIST_ITERATORS(...)
|
|
32
|
+
#else // !defined UNIX
|
|
33
|
+
|
|
34
|
+
#ifdef NO_EXPIMP_CDLLLIST_ITERATORS
|
|
35
|
+
# define EXPIMP_CDLLLIST_ITERATORS(...)
|
|
36
|
+
#else
|
|
37
|
+
# define EXPIMP_CDLLLIST_ITERATORS(Type, Extern, Declspec) \
|
|
38
|
+
__pragma(warning(push)); \
|
|
39
|
+
__pragma(warning(disable: 4231)); \
|
|
40
|
+
Extern template class Declspec CDllList<Type>::_Const_iterator; \
|
|
41
|
+
Extern template class Declspec CDllList<Type>::_Iterator; \
|
|
42
|
+
__pragma(warning(pop));
|
|
43
|
+
#endif
|
|
44
|
+
|
|
45
|
+
namespace CryptoPro {
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* \class CDllList cpstldll.h <cpstldll.h>
|
|
49
|
+
* \brief ����� ������ ����������� �� ���������� ������ std::list �� ����������
|
|
50
|
+
* ����������� ��������.
|
|
51
|
+
*/
|
|
52
|
+
template<class _Ty>
|
|
53
|
+
class CDllList
|
|
54
|
+
{
|
|
55
|
+
typedef typename std::list<_Ty> stlContainer;
|
|
56
|
+
typedef CDllList<_Ty> _Myt;
|
|
57
|
+
typedef typename stlContainer::pointer _Tptr;
|
|
58
|
+
typedef typename stlContainer::reference _Reft;
|
|
59
|
+
#ifdef _STL70_
|
|
60
|
+
typedef typename stlContainer::iterator cont_const_iterator;
|
|
61
|
+
#else
|
|
62
|
+
typedef typename stlContainer::const_iterator cont_const_iterator;
|
|
63
|
+
#endif
|
|
64
|
+
typedef typename stlContainer::iterator cont_iterator;
|
|
65
|
+
public:
|
|
66
|
+
typedef typename stlContainer::allocator_type allocator_type;
|
|
67
|
+
typedef typename stlContainer::size_type size_type;
|
|
68
|
+
typedef typename stlContainer::difference_type difference_type;
|
|
69
|
+
typedef typename stlContainer::pointer pointer;
|
|
70
|
+
typedef typename stlContainer::const_pointer const_pointer;
|
|
71
|
+
typedef typename stlContainer::reference reference;
|
|
72
|
+
typedef typename stlContainer::const_reference const_reference;
|
|
73
|
+
typedef typename stlContainer::value_type value_type;
|
|
74
|
+
typedef typename stlContainer::const_reverse_iterator const_reverse_iterator;
|
|
75
|
+
typedef typename stlContainer::reverse_iterator reverse_iterator;
|
|
76
|
+
|
|
77
|
+
class _Const_iterator
|
|
78
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_MSC_VER < 1600) && !defined ( _STL70_ )
|
|
79
|
+
// ����� VS2008 ������� �������� �� checked
|
|
80
|
+
: public std::_Iterator_base_universal
|
|
81
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1500) && (_MSC_VER < 1700)
|
|
82
|
+
{
|
|
83
|
+
friend CDllList;
|
|
84
|
+
|
|
85
|
+
cont_const_iterator *pImpl_;
|
|
86
|
+
|
|
87
|
+
_Const_iterator(const cont_const_iterator it);
|
|
88
|
+
|
|
89
|
+
public:
|
|
90
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (_MSC_VER < 1600)
|
|
91
|
+
typedef std::_Range_checked_iterator_tag _Checked_iterator_category;
|
|
92
|
+
#endif //defined(_MSC_VER) && (_MSC_VER >= 1500) && (_MSC_VER < 1700)
|
|
93
|
+
|
|
94
|
+
typedef std::bidirectional_iterator_tag iterator_category;
|
|
95
|
+
typedef _Ty value_type;
|
|
96
|
+
typedef typename stlContainer::difference_type difference_type;
|
|
97
|
+
typedef typename stlContainer::const_pointer pointer;
|
|
98
|
+
typedef typename stlContainer::const_reference reference;
|
|
99
|
+
|
|
100
|
+
_Const_iterator();
|
|
101
|
+
~_Const_iterator();
|
|
102
|
+
|
|
103
|
+
_Const_iterator(const _Const_iterator& _Right);
|
|
104
|
+
_Const_iterator& operator=(const _Const_iterator& _Right);
|
|
105
|
+
|
|
106
|
+
const_reference operator*() const;
|
|
107
|
+
const_pointer operator->() const;
|
|
108
|
+
_Const_iterator& operator++();
|
|
109
|
+
_Const_iterator operator++(int);
|
|
110
|
+
_Const_iterator& operator--();
|
|
111
|
+
_Const_iterator operator--(int);
|
|
112
|
+
bool operator==(const _Const_iterator& _Right) const;
|
|
113
|
+
bool operator!=(const _Const_iterator& _Right) const;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
class _Iterator : public _Const_iterator
|
|
117
|
+
{
|
|
118
|
+
friend CDllList;
|
|
119
|
+
|
|
120
|
+
_Iterator(const cont_iterator it);
|
|
121
|
+
|
|
122
|
+
public:
|
|
123
|
+
_Iterator();
|
|
124
|
+
|
|
125
|
+
_Reft operator*() const;
|
|
126
|
+
_Tptr operator->() const;
|
|
127
|
+
_Iterator& operator++();
|
|
128
|
+
_Iterator operator++(int);
|
|
129
|
+
_Iterator& operator--();
|
|
130
|
+
_Iterator operator--(int);
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
typedef _Const_iterator const_iterator;
|
|
134
|
+
typedef _Iterator iterator;
|
|
135
|
+
|
|
136
|
+
CDllList();
|
|
137
|
+
CDllList( const _Myt& _Right);
|
|
138
|
+
~CDllList();
|
|
139
|
+
|
|
140
|
+
const_iterator begin() const;
|
|
141
|
+
const_iterator end() const;
|
|
142
|
+
iterator begin();
|
|
143
|
+
iterator end();
|
|
144
|
+
const_reverse_iterator rbegin() const;
|
|
145
|
+
const_reverse_iterator rend() const;
|
|
146
|
+
reverse_iterator rbegin();
|
|
147
|
+
reverse_iterator rend();
|
|
148
|
+
_Myt& operator=(const _Myt& _Right);
|
|
149
|
+
void resize(size_type _Newsize);
|
|
150
|
+
void resize(size_type _Newsize, _Ty _Val);
|
|
151
|
+
size_type size() const;
|
|
152
|
+
size_type max_size() const;
|
|
153
|
+
bool empty() const;
|
|
154
|
+
reference front();
|
|
155
|
+
const_reference front() const;
|
|
156
|
+
reference back();
|
|
157
|
+
const_reference back() const;
|
|
158
|
+
void push_front(const _Ty& _Val);
|
|
159
|
+
void push_back(const _Ty& _Val);
|
|
160
|
+
void pop_front();
|
|
161
|
+
void pop_back();
|
|
162
|
+
void assign(size_type _Count, const _Ty& _Val);
|
|
163
|
+
iterator insert(iterator _Where, const _Ty& _Val);
|
|
164
|
+
void insert(iterator _Where, iterator _First, iterator _Last);
|
|
165
|
+
void insert(iterator _Where, size_type _Count, const _Ty& _Val);
|
|
166
|
+
iterator erase(iterator _Where);
|
|
167
|
+
iterator erase(iterator _First, iterator _Last);
|
|
168
|
+
void clear();
|
|
169
|
+
void swap(_Myt& _Right);
|
|
170
|
+
// void sort();
|
|
171
|
+
// void reverse();
|
|
172
|
+
protected:
|
|
173
|
+
void* impl();
|
|
174
|
+
const void* impl() const;
|
|
175
|
+
private:
|
|
176
|
+
void* pImpl_;
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
} // namespace CryptoPro
|
|
180
|
+
|
|
181
|
+
#endif // !defined UNIX
|
|
182
|
+
|
|
183
|
+
#endif // _CPSTLDLL_H_INCLUDED
|