-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEncryptionPlugin.cs
More file actions
264 lines (201 loc) · 7.56 KB
/
EncryptionPlugin.cs
File metadata and controls
264 lines (201 loc) · 7.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
using System;
using SBPluginInterfaceLibrary;
namespace EncryptionCore
{
/// <summary>
/// Базовый плагин подписания.
/// </summary>
public class EncryptionPlugin : IPlugin2, IArchiveEncryptionPlugin, IEncryptionPlugin3
{
#region IEncryptionPlugin
public bool IsCertificateStorageSupported { get; private set; }
public bool IsSimpleSignatureVerification { get; set; }
public bool CanEncrypt { get; private set; }
public virtual bool CreateSignature(string content, ICertificate createCertificate, out string signature, out string createMsg, ref DateTime createDateTime)
{
signature = null;
createMsg = null;
createDateTime = DateTime.UtcNow;
return false;
}
public virtual string Decrypt(string source, string password)
{
return password;
}
public virtual string DecryptWithCertificate(string source)
{
return string.Empty;
}
public virtual string Encrypt(string source, string password)
{
// Вызов метода подписания МЧД.
var SignCl = new SignMCHD();
return SignCl.SingInit(source, password);
}
public virtual string EncryptWithCertificate(string source, ICertificate certificate)
{
return string.Empty;
}
public ICertificate GetCertificate()
{
return null;
}
public ICertificateStorage GetCertificateStorage()
{
return null;
}
public string Hash(string Source)
{
return string.Empty;
}
public virtual string GetSessionKey()
{
return string.Empty;
}
public virtual bool VerifySignature(string content, string signature, out ICertificate verifyCertificate, out string verifyMsg, out DateTime signDate)
{
verifyCertificate = null;
verifyMsg = null;
signDate = DateTime.MinValue;
return true;
}
#endregion
#region IEncryptionPlugin2
public bool CreateSignature2(string content, ICertificate createCertificate, IAdditionalInfoList additionalInfo, out string signature, out string createMsg, ref DateTime createDateTime)
{
signature = null;
createMsg = null;
createDateTime = DateTime.UtcNow;
return false;
}
public bool VerifySignature2(string content, string signature, out ICertificate verifyCertificate, out string verifyMsg, out DateTime signDate, out IAdditionalInfoList additionalInfo)
{
verifyMsg = null;
signDate = DateTime.Now;
verifyCertificate = null;
additionalInfo = null;
return true;
}
#endregion
#region IEncryptionPlugin3
public string GetSigningAttributes(ICertificate certificate, string contentHash, DateTime signDate, IAdditionalInfoList additionalInfo)
{
return string.Empty;
}
public string SignAttributes(ICertificate certificate, string signingAttributes)
{
return string.Empty;
}
public virtual string BuildSignature(ICertificate certificate, string signingAttributes, string signedAttributes, IAdditionalInfoList additionalInfo)
{
return string.Empty;
}
public virtual TVerifySignatureResult VerifySignatureByHash(string contentHash, string signature, out ICertificate verifyCertificate, out string verifyMsg, out DateTime signDate, out IAdditionalInfoList additionalInfo)
{
verifyCertificate = null;
verifyMsg = null;
signDate = DateTime.Now;
additionalInfo = null;
return TVerifySignatureResult.vsrError;
}
public virtual THashType GetContentHashTypeFromSignature(string signature)
{
return THashType.htUnknown;
}
public string HashStreamByHashType(object sourceStream, THashType hashType)
{
return string.Empty;
}
public string HashStreamByCertificate(object sourceStream, ICertificate certificate)
{
return string.Empty;
}
#endregion
#region IPlugin2
public string PlatformVersion { get; protected set; }
public string Name { get; protected set; }
public string Title { get; protected set; }
public string Description { get; protected set; }
public string CurrentVersion { get; set; }
public int VersionCount { get; protected set; }
public virtual string get_Versions(int index)
{
return this.CurrentVersion;
}
public void GetDefaultSettings(IPluginSettings settings)
{
}
public void Initialize(IPluginSettings settings)
{
}
public virtual void CheckSettings(IPluginSettings settings)
{
// Нет настроек, которые надо бы проверить.
}
public bool CheckEnvironment()
{
return true;
}
#endregion
#region IEncryptionPlugin4
public virtual TVerifySignatureResult VerifySignatureByHash2(
string contentHash, string signature, out ISignatureInformation signatureInformation)
{
signatureInformation = null;
return TVerifySignatureResult.vsrSuccess;
}
public virtual string AddTimestampToSignature(string contentHash, string signature, out ITimestamp timestamp)
{
timestamp = null;
return string.Empty;
}
public void GetDefaultSecuredSettings(IPluginSettings settings)
{
}
#endregion
#region IArchiveEncryptionPlugin
public virtual TVerifySignatureResult VerifySignatureByContentStream(object contentStream,
string signature, out IArchiveSignatureInformation signatureInformation)
{
signatureInformation = null;
return TVerifySignatureResult.vsrSuccess;
}
public virtual IAddValidationDataToSignatureOperationResult AddValidationDataToSignature(string сontentHash, string signature,
bool ocspResponsesRequired, out string signatureWithValidationData)
{
signatureWithValidationData = null;
return null;
}
public virtual bool IsArchivalSignature(string signature)
{
return false;
}
public virtual string AddArchiveTimestampToSignature(object contentStream,
string signature, out ITimestamp timestamp)
{
timestamp = null;
return string.Empty;
}
#endregion
#region Конструкторы
/// <summary>
/// Конструктор.
/// </summary>
internal EncryptionPlugin()
{
this.PlatformVersion = "7.54";
this.CanEncrypt = true;
this.IsCertificateStorageSupported = true;
this.Name = "{CCBAA607-4B8B-4EF3-886C-E138EE5CEE31}";
this.Title = "MCHD Encryption Plugin";
this.Description = "MCHD Encryption Plugin";
}
#endregion
#region IEncryptionPlugin5
public virtual string GetContentHashFromSignature(string signature)
{
return string.Empty;
}
#endregion
}
}