Подскажите пожалуйста, есть ли в КриптоПРО.NET поддержка CAdES-T
если ДА, то где посмотреть алгоритм для C#
Можно ли сформировать подпись -T без ответа от TSA сервиса?
взял пример реализации CAdES COM на васике и переложил на C#
http://cpdn.cryptopro.ru..._i_c_p_signed_data2.htmlполучилось как-то так:
Код: X509Certificate2 cert = GetCertificate("СЕРТИФИКАТ");
FileStream fs = new FileStream(@"C:\EncryptTest\SIG\УведомлениеЛицензиата Две подписи.zip.sig",FileMode.Open, FileAccess.Read);
MemoryStream ms = new MemoryStream();
fs.CopyTo(ms);
byte[] buf = ms.ToArray();
CAPICOM.ISigner oSigner = new CAdESCOM.CPSigner();
var sn = cert.SerialNumber;
var oStore = new CAdESCOM.CPStore();
oStore.Open(CAPICOM.CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE);
foreach (CAPICOM.ICertificate oCert in oStore.Certificates)
{
oSigner.Certificate = oCert;
if (oSigner.Certificate != null)
{
var oSignedData = new CAdESCOM.CadesSignedData();
oSignedData.Content = "wetrgwtrgwtgwtgwtrgetrgetrgйукайцкуацкацкуацкуакуц";
сбоит здесь
[b] string sc = oSignedData.SignCades(oSigner, CAdESCOM.CADESCOM_CADES_TYPE.CADESCOM_CADES_T, false, CAdESCOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_ANY);[/b]
}
break;
}
//int fmt = SBX509.TElX509Certificate.DetectCertFileFormat(ms);
//CAdES_T(buf, cert);
}
System.Runtime.InteropServices.COMException (0x8007064A): Данные настройки для этого продукта повреждены. Обратитесь в службу поддержки.
в CAdESCOM.ICPSignedData5.SignCades(Object Signer, CADESCOM_CADES_TYPE CadesType, Boolean bDetached, CAPICOM_ENCODING_TYPE EncodingType)
в TestCAdES.Program.Main(String[] args) в C:\Users\astarkov\Documents\Visual Studio 2015\Projects\TestEncryptГОСТ\TestCAdES\Program.cs:строка 44
в System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart()}
Отредактировано пользователем 25 мая 2017 г. 16:32:52(UTC)
| Причина: Не указана