powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получение электронной подписи из подписанного файла
39 сообщений из 39, показаны все 2 страниц
Получение электронной подписи из подписанного файла
    #38800918
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Подскажите, как можно получить электронную подпись из подписанного файла? Например, у меня есть файл, который я подписал созданным мной сертификатом. После этого я отправляю его клиенту и хочу проверить его подпись. У клиента сертификат установлен.
Мне кажется, что нужно пользоваться методом VerifyData экземпляра RSACryptoServiceProvider, но как из подписанного файла извлечь подпись (signature - третий параметр в функции) до меня не доходит.

Спасибо.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38800963
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceron,

читайте здесь: 16687942
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801069
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но в примерах из приведенного поста человек работал с отделенной цифровой подписью. Я работаю с присоединенной и как отделить ее, а потом проверить пока еще не дошло...
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801075
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronСпасибо, но в примерах из приведенного поста человек работал с отделенной цифровой подписью. Я работаю с присоединенной и как отделить ее, а потом проверить пока еще не дошло...
Точно читали? http://msdn.microsoft.com/ru-ru/library/aedbc064(v=vs.110).aspx
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801077
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А может быть я путая терминологию... может быть это ЭЦП внутри данных. Визуально я вижу в свойствах программы новую вкладку "Цифровые подписи"
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801423
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronА может быть я путая терминологию... может быть это ЭЦП внутри данных. Визуально я вижу в свойствах программы новую вкладку "Цифровые подписи"

Т.е речь о цифровых подписях в исполняемых файлах ...
А на о CMS - присоединенная подпись...
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801426
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceron,

Тогда WinVerifyTrust в помощь...
и с ней же:
CryptCATAdminCalcHashFromFileHandle
CryptCATAdminEnumCatalogFromHash
CryptCATAdminReleaseCatalogContext
CryptCATAdminReleaseContext
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801694
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012, да, мой вопрос как раз о цифровых подписях в исполняемых файлах.

Простите, не понял, что значит "А на о CMS - присоединенная подпись..."?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801745
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronsql2012, да, мой вопрос как раз о цифровых подписях в исполняемых файлах.

Простите, не понял, что значит "А на о CMS - присоединенная подпись..."?

Читать как: "А не о CMS"

CMS - Cryptographic Message Syntax .
Т.е подписывается произвольный файл...

Или было не понятно что такое "присоединенная подпись..."?

shtuceronСпасибо, но в примерах из приведенного поста человек работал с отделенной цифровой подписью. Я работаю с присоединенной и как отделить ее, а потом проверить пока еще не дошло...
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801815
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я нашел кусочек кода. Он компилируется, но результат от входного параметра (файла) не меняется. У меня есть три файла. 1. Не подписанный 2. Подписанный мной (создал сертификат и подписал) 3. Подписанный сторонней компанией (взял AcroRd32.exe).

Каждый файл не подписан...

Код: plaintext
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.
BOOLEAN IsFileDigitallySigned(PWCHAR FilePath)
{
    //Author: AD, 2009
    PVOID Context;
    HANDLE FileHandle;
    DWORD HashSize = 0;
    PBYTE Buffer;
    PVOID CatalogContext;
    CATALOG_INFO InfoStruct;
    WINTRUST_DATA WintrustStructure;
    WINTRUST_CATALOG_INFO WintrustCatalogStructure;
    WINTRUST_FILE_INFO WintrustFileStructure;
    PWCHAR MemberTag;
    BOOLEAN ReturnFlag = FALSE;
    ULONG ReturnVal;
    GUID ActionGuid = WINTRUST_ACTION_GENERIC_VERIFY_V2;

    //Zero our structures.
    memset(&InfoStruct, 0, sizeof(CATALOG_INFO));
    InfoStruct.cbStruct = sizeof(CATALOG_INFO);
    memset(&WintrustCatalogStructure, 0, sizeof(WINTRUST_CATALOG_INFO));
    WintrustCatalogStructure.cbStruct = sizeof(WINTRUST_CATALOG_INFO);
    memset(&WintrustFileStructure, 0, sizeof(WINTRUST_FILE_INFO));
    WintrustFileStructure.cbStruct = sizeof(WINTRUST_FILE_INFO);

    //Get a context for signature verification.
    if( !CryptCATAdminAcquireContext(&Context, NULL, 0) )
    {
        return FALSE;
    }

    //Open file.
    FileHandle = CreateFileW(FilePath, GENERIC_READ, 7, NULL, OPEN_EXISTING, 0, NULL);
    if( INVALID_HANDLE_VALUE == FileHandle )
    {
        CryptCATAdminReleaseContext(Context, 0);
        return FALSE;
    }

    //Get the size we need for our hash.
    CryptCATAdminCalcHashFromFileHandle(FileHandle, &HashSize, NULL, 0);
    if( HashSize == 0 )
    {
        //0-sized has means error!
        CryptCATAdminReleaseContext(Context, 0);
        CloseHandle(FileHandle);
        return FALSE;
    }

    //Allocate memory.
    Buffer = (PBYTE)calloc(HashSize, 1);

    //Actually calculate the hash
    if( !CryptCATAdminCalcHashFromFileHandle(FileHandle, &HashSize, Buffer, 0) )
    {
        CryptCATAdminReleaseContext(Context, 0);
        free(Buffer);
        CloseHandle(FileHandle);
        return FALSE;
    }

    //Convert the hash to a string.
    MemberTag = (PWCHAR)calloc((HashSize * 2) + 1, sizeof(WCHAR));
    for( unsigned int i = 0; i < HashSize; i++ )
    {
        swprintf(&MemberTag[i * 2], L"%02X", Buffer[i ]);
    }

    //Get catalog for our context.
    CatalogContext = CryptCATAdminEnumCatalogFromHash(Context, Buffer, HashSize, 0, NULL);
    if ( CatalogContext )
    {
        //If we couldn't get information
        if ( !CryptCATCatalogInfoFromContext(CatalogContext, &InfoStruct, 0) )
        {
            //Release the context and set the context to null so it gets picked up below.
            CryptCATAdminReleaseCatalogContext(Context, CatalogContext, 0);
            CatalogContext = NULL;
        }
    }
        
    //If we have a valid context, we got our info.  
    //Otherwise, we attempt to verify the internal signature.
    if( !CatalogContext )
    {
        WintrustFileStructure.cbStruct = sizeof(WINTRUST_FILE_INFO);
        WintrustFileStructure.pcwszFilePath = FilePath;
        WintrustFileStructure.hFile = NULL;
        WintrustFileStructure.pgKnownSubject = NULL;

        WintrustStructure.cbStruct = sizeof(WINTRUST_DATA);
        WintrustStructure.dwUnionChoice = WTD_CHOICE_FILE;
        WintrustStructure.pFile = &WintrustFileStructure;
        WintrustStructure.dwUIChoice = WTD_UI_NONE;
        WintrustStructure.fdwRevocationChecks = WTD_REVOKE_NONE;
        WintrustStructure.dwStateAction = WTD_STATEACTION_IGNORE;
        WintrustStructure.dwProvFlags = WTD_SAFER_FLAG;
        WintrustStructure.hWVTStateData = NULL;
        WintrustStructure.pwszURLReference = NULL;
    } else
    {
        //If we get here, we have catalog info!  Verify it.
        WintrustStructure.cbStruct = sizeof(WINTRUST_DATA);
        WintrustStructure.pPolicyCallbackData = 0;
        WintrustStructure.pSIPClientData = 0;
        WintrustStructure.dwUIChoice = WTD_UI_NONE;
        WintrustStructure.fdwRevocationChecks = WTD_REVOKE_NONE;
        WintrustStructure.dwUnionChoice = WTD_CHOICE_CATALOG;
        WintrustStructure.pCatalog = &WintrustCatalogStructure;
        WintrustStructure.dwStateAction = WTD_STATEACTION_VERIFY;
        WintrustStructure.hWVTStateData = NULL;
        WintrustStructure.pwszURLReference = NULL;
        WintrustStructure.dwProvFlags = 0;
        WintrustStructure.dwUIContext = WTD_UICONTEXT_EXECUTE;

        //Fill in catalog info structure.
        WintrustCatalogStructure.cbStruct = sizeof(WINTRUST_CATALOG_INFO);
        WintrustCatalogStructure.dwCatalogVersion = 0;
        WintrustCatalogStructure.pcwszCatalogFilePath = InfoStruct.wszCatalogFile;
        WintrustCatalogStructure.pcwszMemberTag = MemberTag;
        WintrustCatalogStructure.pcwszMemberFilePath = FilePath;
        WintrustCatalogStructure.hMemberFile = NULL;
    }

    //Call our verification function.
    ReturnVal = WinVerifyTrust(0, &ActionGuid, &WintrustStructure);

    //Check return.
    ReturnFlag = SUCCEEDED(ReturnVal);

    //Free context.
    if( CatalogContext )
        CryptCATAdminReleaseCatalogContext(Context, CatalogContext, 0);

    //If we successfully verified, we need to free.
    if( ReturnFlag )
    {
        WintrustStructure.dwStateAction = WTD_STATEACTION_CLOSE;
        WinVerifyTrust(0, &ActionGuid, &WintrustStructure);
    }

    //Free memory.
    free(MemberTag);
    free(Buffer);
    CloseHandle(FileHandle);
    CryptCATAdminReleaseContext(Context, 0);

    return ReturnFlag;
}



Когда я читал о цифровых подписях и подписанных файлах у меня сложилось ощущение, что для того чтобы проверить подписанный файл необходимо

1. Вычислить контрольную сумму файла без цифровой подписи (т.е. отсоединить подпись от подписанного файла иначе контрольная сумма будет другой)
2. Прочитать открытый ключ и расшифровать контрольную сумму, которая содержится в цифровой подписи
3. Сравнить эти контрольные суммы и убедиться, что файл не изменялся.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801831
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceron,

И какая ошибка, где не проходит AcroRd32.exe по коду проверку?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801844
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
CatalogContext = CryptCATAdminEnumCatalogFromHash(Context, Buffer, HashSize, 0, NULL);



CatalogContext - не инициализируется (0x00000000)
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801846
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В идеале хотелось бы не только .exe проверять, .dll в перспективе тоже нужно.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801921
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronВ идеале хотелось бы не только .exe проверять, .dll в перспективе тоже нужно.

Нет разницы.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38801975
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012, спасибо

А с CatalogContext есть какие-нибудь предположения?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38802006
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще один вопрос, WinVerifyTrust проверяет только наличие подписи (подписан файл или нет)?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38802293
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попробовал вызвать функцию CryptCATAdminEnumCatalogFromHash для файла "C:\Windows\system32\kernel32.dll", CatalogContext != 0, но файл не подписан, так что результат такой же...

Может быть функция CryptCATAdminEnumCatalogFromHash работает не с каждым файлом?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38802342
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще, как выяснилось опытным путем. Файл может не иметь цифровой подписи, но проходить проверку функцией
Код: plaintext
1.
WinVerifyTrust

если он по каким-либо причинам "нравится" windows (доверяет). Но если файл взят со "стороны", то только наличие сертификата у файла позволяет функции
Код: plaintext
1.
WinVerifyTrust

завершаться с нулевым результатом.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38802731
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronИ еще, как выяснилось опытным путем. Файл может не иметь цифровой подписи, но проходить проверку функцией
Код: plaintext
1.
WinVerifyTrust

если он по каким-либо причинам "нравится" windows (доверяет). Но если файл взят со "стороны", то только наличие сертификата у файла позволяет функции
Код: plaintext
1.
WinVerifyTrust

завершаться с нулевым результатом.

Не верю... (с).

Без подписи - не проходит.
С испорченной - не проходит.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38802748
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceron,

проверь: http://rghost.ru/59013754
входной параметр командной строки - файл для проверки (можно перетащить на иконку программы).
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803091
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012shtuceron,

проверь: http://rghost.ru/59013754
входной параметр командной строки - файл для проверки (можно перетащить на иконку программы).

А вы сами проверьте. Возьмите файл d3dx10_34.dll или kernel32.dll например. В свойствах этих файлов нет вкладки "Цифровые подписи".
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803135
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronsql2012shtuceron,

проверь: http://rghost.ru/59013754
входной параметр командной строки - файл для проверки (можно перетащить на иконку программы).

А вы сами проверьте. Возьмите файл d3dx10_34.dll или kernel32.dll например. В свойствах этих файлов нет вкладки "Цифровые подписи".

Отсутствие вкладки не говорит об отсутствии подписи .

Signature verification Signed file, verified signature
Signing date 6:21 PM 3/4/2014
Signers
[+] Microsoft Windows
[+] Microsoft Windows Verification PCA
[+] Microsoft Root Certificate Authority
Counter signers
[+] Microsoft Time-Stamp Service
[+] Microsoft Time-Stamp PCA
[+] Microsoft Root Certificate Authority
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803145
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceron,

соответственно, если этот файл (kernel32.dll) будет изменен - подпись не пройдет проверку в WinVerifyTrust.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803235
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторОтсутствие вкладки не говорит об отсутствии подписи.

sql2012, спасибо, этого я не знал.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803300
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После того как мы узнаем, что программа подписано необходимо отсоединить данные от подписи, вычислить хеш данных и сравнить с хешем, который содержится в цифровой подписи.

Гугл подсказал, что реализуется это с помощью функций CryptMsgOpenToDecode, CryptMsgUpdate, CryptMsgGetParam . В первом случае CryptMsgOpenToDecode я создаю объект для сообщения с присоединенной подписью, потом заполняю данными выделенный буфер для сообщения CryptMsgUpdate и извлекаю из него подпись CryptMsgGetParam

Код: plaintext
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.
CMSG_STREAM_INFO StreamInfo;

       StreamInfo.cbContent = CMSG_INDEFINITE_LENGTH;
       StreamInfo.pfnStreamOutput = CmsgStreamOutputCallback;
       StreamInfo.pvArg = NULL;

	HCRYPTMSG hMsg = CryptMsgOpenToDecode(PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0, 0, NULL, NULL, &StreamInfo);

	BOOL isFinal = FALSE;
	HANDLE hFile= CreateFile(filePath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

	do
	{
		DWORD readed = 0;
		BYTE buf[BUFSIZE];

        if (!ReadFile(hFile, buf, BUFSIZE, &readed, NULL))
		{
			printf("Cannot read file 0x0%X\n", GetLastError());

            exit(1);
        }
		
		printf("Read %u\n", readed);

        if( readed == 0)
			isFinal = TRUE;

        if (!CryptMsgUpdate(hMsg, buf, readed, isFinal))
		{
			printf("Cannot update message 0x0%X\n", GetLastError());
			
			exit(1);
        }

        if (isFinal)
		{
			DWORD size = 0;

			CryptMsgGetParam(hMsg, CMSG_ENCRYPTED_DIGEST, 0, NULL, &size);
		}
	}
	while (!isFinal);

	CloseHandle(hFile);



Но в функции CryptMsgUpdate происходит ошибка 0х08009310B, как ее нужно обходить и как можно достучаться до цифровой подписи.

Спасибо.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803308
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceron,

Зачем так путаешь себя и тех, кто будет читать форум?
По ТЗ тебе нужно что? Проверять подпись под исполняемым кодом (exe\dll)

Зачем же использовать функции для проверки CMS (PKCS#7)?

Аналогия:
почему музыка не играет, когда я mp3 файл открываю в блокноте...
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803315
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0X8009310B - Неверный тег значение ASN1.
Т.к. функция ждет одного формата, а приходит совсем другое.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803328
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012,

в том то и дело, что наверное я не до конца понимаю как их проверять...

Я писал, что:
авторКогда я читал о цифровых подписях и подписанных файлах у меня сложилось ощущение, что для того чтобы проверить подписанный файл необходимо

1. Вычислить контрольную сумму файла без цифровой подписи (т.е. отсоединить подпись от подписанного файла иначе контрольная сумма будет другой)
2. Прочитать открытый ключ и расшифровать контрольную сумму, которая содержится в цифровой подписи
3. Сравнить эти контрольные суммы и убедиться, что файл не изменялся.

Потом начал разбираться с функцией WinVerifyTrust

Я писал:
авторИ еще один вопрос, WinVerifyTrust проверяет только наличие подписи (подписан файл или нет)?

Но изначально задача ставилась выполнить три пункта моих предположений. И мне показалось, что для их реализации сначала необходимо проверить существует ли цифровая подпись у файла или нет.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803333
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще, разве CMS не содержит в себе данные и данные о подписи и все это не образует подписанный файл?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803360
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronИ еще, разве CMS не содержит в себе данные и данные о подписи и все это не образует подписанный файл?

Содержит и не только это...
Все верно.

Формат файла с подписью: CMS и формат EXE\DLL с "подписанным участком файла" - разные.

Это уже понятно?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803468
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012, понятно, спасибо.

Но непонятно как работать с этим подписанным участком файла чтобы понимать, что сам файл не изменился или функция WinVerifyTrust как раз делает это? Просто я подписывал файл сертификатом и рассчитывал, что в коде программы мне необходимо извлекать открытый ключ, расшифровывать хеш,...
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803506
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronsql2012, понятно, спасибо.

Но непонятно как работать с этим подписанным участком файла чтобы понимать, что сам файл не изменился или функция WinVerifyTrust как раз делает это? Просто я подписывал файл сертификатом и рассчитывал, что в коде программы мне необходимо извлекать открытый ключ, расшифровывать хеш,...

Все необходимое делает WinVerifyTrust.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803564
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо, правда.

Можете еще в одном вопросе подсказать... Если встречается файл с CMS форматом подписи, функция WinVerifyTrust его заблокирует?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803592
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И в еще одном...

Если я тиражирую открытый ключ и хочу проверять приложение только по этому ключу (буду фильтровать по имени приложения), все остальные мне не нужны, как в этом случае осуществлять проверку?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803594
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceronОгромное спасибо, правда.

Можете еще в одном вопросе подсказать... Если встречается файл с CMS форматом подписи, функция WinVerifyTrust его заблокирует?

а разве этот вопрос не закрыт?
Там формат файла другой, она не сможет проверить.

И что значит "заблокирует"?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803607
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sql2012shtuceronОгромное спасибо, правда.

Можете еще в одном вопросе подсказать... Если встречается файл с CMS форматом подписи, функция WinVerifyTrust его заблокирует?

а разве этот вопрос не закрыт?
Там формат файла другой, она не сможет проверить.

И что значит "заблокирует"?

Закрыт, просто хотел услышать о другом формате файла...

Имел в виду не подтвердит.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803840
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А по этому вопросу есть какие-нибудь мысли?

авторИ в еще одном...

Если я тиражирую открытый ключ и хочу проверять приложение только по этому ключу (буду фильтровать по имени приложения), все остальные мне не нужны, как в этом случае осуществлять проверку?
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38803957
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shtuceron,

есть.
...
Рейтинг: 0 / 0
Получение электронной подписи из подписанного файла
    #38804359
shtuceron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можете поделиться знаниями или я уже надоел?)
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получение электронной подписи из подписанного файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]