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."); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д