Mam bibliotekę skrótów MD5 kluczy publicznych używanych do podpisywania różnych słoików i mapowania do ich odpowiednich magazynów kluczy, których używamy do podpisywania różnych plików APK. To, co chciałbym móc zrobić, to określić, który magazyn kluczy został użyty do podpisania pliku APK, ale bez prób i błędów. (Niestety, wiele naszych kluczy ma podobne lub identyczne nazwy DN).Wyodrębnij surowy certyfikat X.509 ze podpisanego pliku APK lub JAR
Moje rozwiązanie, ponieważ wiem, że META-INF/FOO.RSA (lub FOO.DSA) zawiera certyfikat, miało na celu wyodrębnienie certyfikatu z plik RSA APK i bezpośrednio obliczyć wartość skrótu MD5. (Wiem, że certyfikat istnieje, ponieważ jest dostępny dla działającej aplikacji na Androida, a dokumentacja jarsignera mówi mi, że tam jest.)
Ale nie mogę znaleźć żadnego narzędzia, które dałoby mi rzeczywiste bajty certyfikatu. Mogę uzyskać DN i metadane certyfikatu, gdy używam jarsigner -verbose -verify -certs my.apk
, ale to nie daje mi bajtów.
Dzięki tak dużo! Właśnie działał skrypt. Dla tych, którzy są ciekawi, plik .RSA wydaje się mieć następujący wzór: * 54 bajty nieznanych informacji * 2 bajty krótkie (big-endian) o długości nadchodzącego certyfikatu * n bajtów certyfikat * nieznany –