Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2011(UTC) Сообщений: 65
Сказал(а) «Спасибо»: 3 раз
|
Всем привет! Исходя из документации CAPICOM мы имеем следующую картину: 1. Объект CAPICOM.Store реализует интерфейс Store2. Одно из свойств объекта CAPICOM.Store это объект CAPICOM.Store.Certificates3. Объект CAPICOM.Store.Certificates реализует интерфейс Certificates4. У объекта Certificates есть метод Item который возвращает объект Certificate реализующий интерфейс Certificate5. Объект Certificate имеет свойство PrivateKey, в котором находиться объект PrivateKey который реализует интерфейс... ...в общем неважно что он там реализует, потому что объекта PrivateKey нет в свойстве объекта Certificate, которое, как заверяет документация, реализует интерфейс который обладает таким свойством! Я чего то не понимаю? Проблемы нет только в IE. Где искать это свойство? ЗЫ: Вообще задача стоит такая: проверить наличие флешки в пк, но именно той, сертификат которой был выбран на сайте. Может есть другой способ это проверить?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Volk358 написал:Всем привет! Исходя из документации CAPICOM мы имеем следующую картину: 1. Объект CAPICOM.Store реализует интерфейс Store2. Одно из свойств объекта CAPICOM.Store это объект CAPICOM.Store.Certificates3. Объект CAPICOM.Store.Certificates реализует интерфейс Certificates4. У объекта Certificates есть метод Item который возвращает объект Certificate реализующий интерфейс Certificate5. Объект Certificate имеет свойство PrivateKey, в котором находиться объект PrivateKey который реализует интерфейс... ...в общем неважно что он там реализует, потому что объекта PrivateKey нет в свойстве объекта Certificate, которое, как заверяет документация, реализует интерфейс который обладает таким свойством! Я чего то не понимаю? Проблемы нет только в IE. Где искать это свойство? ЗЫ: Вообще задача стоит такая: проверить наличие флешки в пк, но именно той, сертификат которой был выбран на сайте. Может есть другой способ это проверить? в интерфейсе ICertificate2 - есть PrivateKey |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2011(UTC) Сообщений: 65
Сказал(а) «Спасибо»: 3 раз
|
Ссылочку, будьте добры! :)
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
|
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Цитата:...в общем неважно что он там реализует, потому что объекта PrivateKey нет в свойстве объекта Certificate, которое, как заверяет документация, реализует интерфейс который обладает таким свойством! кстати, как это удалось проверить? где пример? или PrivateKey - не возвращается? :) ... а привязка то есть сертификата к нему? (или я не о том.. "с утра в понедельник")... Отредактировано пользователем 5 марта 2012 г. 14:47:36(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Цитата:Проблемы нет только в IE ... огласите весь список ... где нашлась проблема :) Или есть попытка использовать Capicom не в IE, а другом браузере ? Отредактировано пользователем 5 марта 2012 г. 14:49:47(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 24.12.2011(UTC) Сообщений: 65
Сказал(а) «Спасибо»: 3 раз
|
Какой объект реализует "ICertificate2"? просто я работаю с сертификатами так: Создаю объект CAPICOM.Store, затем открываю CAPICOM.Store.Open..., выбираю сертификат и пытаюсь получить это свойство CAPICOM.Store.Certificates.Item(1).PrivateKey. (Это вкратце) Как докопаться до это объекта - PrivateKey? В каком объекте сертификата есть свойство PrivateKey? Вы сказали что оно есть в объекте реализующем интерфейс ICertificate2. А как найти этот объект (реализующий интерфейс ICertificate2)?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Volk358 написал:Какой объект реализует "ICertificate2"? просто я работаю с сертификатами так: Создаю объект CAPICOM.Store, затем открываю CAPICOM.Store.Open..., выбираю сертификат и пытаюсь получить это свойство CAPICOM.Store.Certificates.Item(1).PrivateKey. (Это вкратце) Как докопаться до это объекта - PrivateKey? В каком объекте сертификата есть свойство PrivateKey? Вы сказали что оно есть в объекте реализующем интерфейс ICertificate2. А как найти этот объект (реализующий интерфейс ICertificate2)? так.. а в SDK что... нет упоминаний про privatekey ? и нет примеров? (того же.. удаления закрытого ключа) :) |
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
vbs Из SDK Код:
If Certificate.HasPrivateKey Then
Wscript.Stdout.Writeline "Private Key:"
Wscript.Stdout.Writeline " Container name = " & Certificate.PrivateKey.ContainerName
' Don't display unique container name for hardware token because it may cause UI to be displayed.
If StoreLocation = CAPICOM_SMART_CARD_USER_STORE OR Not Certificate.PrivateKey.IsHardwareDevice Then
Wscript.Stdout.Writeline " Unique name = " & Certificate.PrivateKey.UniqueContainerName
End If
Wscript.Stdout.Writeline " Provider name = " & Certificate.PrivateKey.ProviderName
Wscript.StdOut.Write " Provider type = "
If Certificate.PrivateKey.ProviderType > UBound(ProviderTypes) Then
Wscript.Stdout.Writeline ProviderTypes(0) & " (" & CStr(Certificate.PrivateKey.ProviderType) & ")"
Else
Wscript.Stdout.Writeline ProviderTypes(Certificate.PrivateKey.ProviderType) & " (" & CStr(Certificate.PrivateKey.ProviderType) & ")"
End If
Wscript.StdOut.Write " Key spec = "
If Certificate.PrivateKey.KeySpec > UBound(KeySpecStrings) Then
Wscript.Stdout.Writeline KeySpecStrings(0) & " (" & CStr(Certificate.PrivateKey.KeySpec) & ")"
Else
Wscript.Stdout.Writeline KeySpecStrings(Certificate.PrivateKey.KeySpec) & " (" & CStr(Certificate.PrivateKey.KeySpec) & ")"
End If
Wscript.Stdout.Writeline " Accessible = " & Certificate.PrivateKey.IsAccessible
Wscript.Stdout.Writeline " Protected = " & Certificate.PrivateKey.IsProtected
Wscript.Stdout.Writeline " Exportable = " & Certificate.PrivateKey.IsExportable
Wscript.Stdout.Writeline " Removable = " & Certificate.PrivateKey.IsRemovable
Wscript.Stdout.Writeline " Machine keyset = " & Certificate.PrivateKey.IsMachineKeyset
Wscript.Stdout.Writeline " Hardware storage = " & Certificate.PrivateKey.IsHardwareDevice
Else
Wscript.Stdout.Writeline "Private Key: Not found."
End If
Wscript.Stdout.Writeline
|
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Код:==== client-side ====
<input id="clientCert" name="clientCert" type="hidden" />
<script type="text/javascript">
CurrentUserStore = new ActiveXObject('CAPICOM.Store');
CurrentUserStore.Open(CAPICOM_CURRENT_USER_STORE);
certs = CurrentUserStore.Certificates.Select();
cert = certs.Item(1);
privateKey = certs.Item(1).PrivateKey; //
document.getElementById("clientCert").value = cert.Export();
</script>
типа этого и не работает? |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close