Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 7892 - СБиС++ ЭО: проблема с установкой сертификатов   Make a simular bug
Summary: СБиС++ ЭО: проблема с установкой сертификатов
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Шифрование / ЭЦП (show other bugs)
Version: 2.0
Hardware: PC All
: P1 critical
Target Milestone: ---
Assignee: Александр Морозов
QA Contact: Andrey Vusik
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 502
  Show dependency treegraph
 
In work:
Reported: 2011-11-23 20:02 MSK by Александр Морозов
Modified: 2011-12-14 15:01 MSK (History)
2 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Александр Морозов 2011-11-23 20:02:30 MSK
СБиС++ ЭО 2.4.42
WINE@Etersoft SQL 2.0.0-eter0.3/1

После установки СБиС++ ЭО в Wine надо вручную устанавливать сертификат TENSORCA1. При установке в консоли выводятся такие сообщения:
Error: Failed to save to the destination store
Error: Failed to save to the destination store
CertMgr Failed
Error: Failed to save to the destination store
Error: Failed to save to the destination store
CertMgr Failed
Error: Failed to save to the destination store
Error: Failed to save to the destination store
CertMgr Failed
Error: Failed to save to the destination store
Error: Failed to save to the destination store
CertMgr Failed
Error: Failed to save to the destination store
Error: Failed to save to the destination store
CertMgr Failed
Comment 1 Александр Морозов 2011-11-23 20:17:17 MSK
Ошибка выводится утилитой certmgr, расположенной в поддиректории RootCerts директории СБиС++.

$ wine certmgr.exe -add -all CASimpleTest_RootNew.cer -s Root -r localMachine
Error: Failed to save to the destination store
Error: Failed to save to the destination store
CertMgr Failed
Comment 2 Александр Морозов 2011-11-23 20:55:39 MSK
Ошибка вызвана вызовом данной функции:

static BOOL WINAPI CRYPT_RootWriteCert(HCERTSTORE hCertStore,
 PCCERT_CONTEXT cert, DWORD dwFlags)
{
    /* The root store can't have certs added */
    return FALSE;
}
Comment 3 Александр Морозов 2011-11-23 21:35:17 MSK
Если запускать утилиту без параметра -r localMachine, то сертификат добавляется успешно.
Comment 4 Александр Морозов 2011-11-24 21:25:13 MSK
Разбирался, как устроены хранилища сертификатов в Wine
Comment 5 Александр Морозов 2011-11-25 21:46:37 MSK
Добавил поддержку сохранения сертификатов в корневое хранилище в HKLM.

Теперь при открытии корневого хранилища локальной машины, предоставляемого провайдером CERT_STORE_PROV_SYSTEM_REGISTRY, создаётся хранилище с новым типом StoreTypeRoot. Это хранилище содержит в себе collection-хранилище, в которое добавлены корневое хранилище в HKLM и старое корневое хранилище, формируемое из сертификатов, установленных в Linux-системе, и доступное только для чтения. Новый тип для хранилища установлен для того, чтобы для него не рабтали функции, предназначенные для collection-хранилища.
Comment 6 Александр Морозов 2011-11-25 21:51:20 MSK
Флаг CERT_STORE_DELETE_FLAG в CRYPT_RootRegOpenStore специально не обрабатывается, т.к. при его наличии CRYPT_RegOpenStore должна вернуть NULL, и CRYPT_RootRegOpenStore просто не будет вызвана.
Comment 7 Andrey Vusik 2011-12-13 19:42:26 MSK
принято