2015-08-26 13 views
7

Jestem programistą UniversalADBDriver, narzędzia, które tworzy samodzielnie podpisany sterownik USB systemu Android na komputerze użytkownika.signtool nie może znaleźć certyfikatu w systemie Windows 10, ze względu na filtr klucza prywatnego

kod źródłowy z instalatora i konfiguracji pakietu: https://github.com/koush/UniversalAdbDriver

Narzędzie generuje parę kluczy i dodaje certyfikat do przechowywania klucza użytkownika, a następnie podpisuje pliki sterownika. To działało dobrze do Windows 10, gdzie w niewytłumaczalny sposób przestał działać. Pobiegłem z wiersza poleceń ręcznie:

The following certificates were considered: 
    Issued to: UniversalADB 
    Issued by: UniversalADB 
    Expires: Fri Aug 25 17:00:00 2017 
    SHA1 hash: C8701DF4CDC7DD75813400AD2B3B4C2EFDA4E662 

After EKU filter, 1 certs were left. 
After expiry filter, 1 certs were left. 
After Private Key filter, 0 certs were left. 
SignTool Error: No certificates were found that met all the given criteria. 

W systemie Windows 10, certyfikat jest filtrowane przez filtr „Private Key”. Nie mam pojęcia, co to jest, nigdzie nie ma żadnej dokumentacji.

UPDATE

odkryłem, że ani makecert.exe lub X509Store.add może napisać certyfikaty/klucze do bieżącej obsługi sklepu, gdy wywoływany przez instalatora Windows 10. Jednak certyfikaty w lokalnym sklepie Maszyn są umieszczone poprawnie. Nie jestem pewien, dlaczego tak jest. Zasadniczo klucz prywatny nie jest prawidłowo umieszczony w magazynie, więc podpis nie działa. Wykonanie tych samych kroków ręcznie w wierszu poleceń działa. Nadal muszę dowiedzieć się, dlaczego klucz prywatny nie jest przechowywany w sklepie.

+0

http://blogs.msdn.com/b/windows_hardware_certification/archive/2015/04/01/driver-signing-changes-in-windows-10.aspx – richardwiden

+1

@Richard, proces podpisywania Tak właśnie badanie Próbuję to zrobić. – koush

+0

Czy spojrzałeś na wyjście/debug, aby zobaczyć, czy daje coś użytecznego? – JaredPar

Odpowiedz

4

Użyłem BouncyCastle do generowania certyfikatu programowo. Z jakiegoś powodu ten certyfikat nie działa już w systemie Windows 10. Przełączyłem się na pakowanie makecert.exe w celu wygenerowania certyfikatu i wydawało się, że to naprawiłem.

Powiązane problemy