powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / А как в .Net удалить сертификат из хранилища зная его sha1 hash?
2 сообщений из 2, страница 1 из 1
А как в .Net удалить сертификат из хранилища зная его sha1 hash?
    #39245250
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С установкой разобрался, теперь разбираюсь с удалением.

Ну т.е. через утилиту CertMgr.Exe это успешно делается так:

Код: vbnet
1.
2.
3.
4.
CertMgr.Exe -del -c -sha1 "1e8d46194a581633369e526ca4ba5343467cb181" -s -r localMachine trustedpublisher

'/sha1 sha1Hash Задает хэш SHA1 добавляемого, удаляемого или сохраняемого сертификата, CTL или CRL
 



Пытаюсь родить нечто такое:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Sub RemoveCertificate(ByVal hash As String, ByVal store_Name As StoreName, ByVal store_Location As StoreLocation)
    Dim certificate As X509Certificate2 = New X509Certificate2(hash)
    Dim store As X509Store = New X509Store(store_Name, store_Location)
    store.Open(OpenFlags.ReadWrite)
    store.Remove(certificate)
    store.Close()
  End Sub

  Private Sub ButtonUninstallCert_Click(sender As Object, e As EventArgs) Handles ButtonUninstallCert.Click
    RemoveCertificate("1e8d46194a581633369e526ca4ba5343467cb181", StoreName.TrustedPublisher, StoreLocation.LocalMachine)
  End Sub


Не работает. Дополнительные сведения: Не удается найти указанный файл.

Исходя из документации и приведенного там примера
X509Store.Remove - метод (X509Certificate2)
код мой будет работать если вместо sha1 hash подсунуть имя файла .cer с этим сертификатом.

Но у меня к примеру сертификат установлен уже в хранилище и точно знаю в какое, и знаю hash,
а файла .cer будем считать что нет.

Как его по hash-у удалить через .Net классы? (Как это делает CertMgr.Exe )
Как в New X509Certificate2 засунуть именно hash?
Просто надоело эту утилиту за прогой таскать (хотя она да, справляется).
...
Рейтинг: 0 / 0
А как в .Net удалить сертификат из хранилища зная его sha1 hash?
    #39245264
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде разобрался, заработало:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  Public Sub RemoveCertificateByHash(ByVal hash As String, ByVal store_Name As StoreName, ByVal store_Location As StoreLocation)
    Dim store As X509Store = New X509Store(store_Name, store_Location)
    store.Open(OpenFlags.ReadWrite)
    Dim col As X509Certificate2Collection = store.Certificates.Find(X509FindType.FindByThumbprint, hash, False)
    store.RemoveRange(col)
    store.Close()
  End Sub

  Private Sub ButtonUninstallCert_Click(sender As Object, e As EventArgs) Handles ButtonUninstallCert.Click
    Try : RemoveCertificateByHash("1e8d46194a581633369e526ca4ba5343467cb181", _
     StoreName.TrustedPublisher, StoreLocation.LocalMachine) : Catch : End Try
  End Sub
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / А как в .Net удалить сертификат из хранилища зная его sha1 hash?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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