C#, ЭЦП по формату подписи получаемой в VipNet CryptoFile
Формулировка задачи:
Доброго времени суток!)
Тема письма несколько не выражает то что мне необходимо. подпись я уже создала. однако мне необходимо создать файл .sig аналогичный получаемому из программы VipNet CryptoFile при подписывании файла. как я поняла этот файл содержит не только подпись. получилось распарсить этот файл по ASN1. читала статьи про данное кодирование ASN.1 простыми словами искала какие либо реалитзации для C# но ничего не нашла. не знаю получится ли создать что то с помощью чего можно было бы создать аналогичный файл. Помогите пожалуйста может кто встречал все же библиотеки работы с ASN1. Или сталкивался с необходимостью создания такого файла. или подскажите пожалуйста с чего начинать писать кодер на ASN1. Буду очень признательна за любую помощь.
Решение задачи: «C#, ЭЦП по формату подписи получаемой в VipNet CryptoFile»
textual
Листинг программы
- CRYPT_SIGN_MESSAGE_PARA SigParams;
- SigParams.cbSize = sizeof(SigParams);
- SigParams.dwMsgEncodingType = PKCS_7_ASN_ENCODING | X509_ASN_ENCODING;
- SigParams.pSigningCert = pCert;
- SigParams.HashAlgorithm.pszObjId = "1.2.643.2.2.9";
- SigParams.HashAlgorithm.Parameters.cbData = NULL;
- SigParams.cMsgCert = 1;
- SigParams.rgpMsgCert = &pCert;
- SigParams.cAuthAttr = 0;
- SigParams.dwInnerContentType = 0;
- SigParams.cMsgCrl = 0;
- SigParams.cUnauthAttr = 0;
- SigParams.dwFlags = 0;
- SigParams.pvHashAuxInfo = NULL;
- SigParams.rgAuthAttr = NULL;
- cbSignedMessageBlob = 0;
- if (!(CryptSignMessage(&SigParams,
- FALSE,
- 1,
- &pbBuffer,
- &dwBufferLen,
- NULL,
- &cbSignedMessageBlob)))
- {
- HandleError("Error during CryptSignMessage.");
- }
- if (!(pbSignedMessageBlob = (BYTE*)malloc(cbSignedMessageBlob))) {
- HandleError("Error during CryptSignMessage.");
- }
- if (!(CryptSignMessage(&SigParams,
- FALSE,
- 1,
- &pbBuffer,
- &dwBufferLen,
- pbSignedMessageBlob,
- &cbSignedMessageBlob)))
- {
- HandleError("Error during CryptSignMessage.");
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д