Почти. На самом деле это не JAR-файл, который подписан, а его содержимое.
Технически, отдельные файлы в архиве JAR, которые должны быть подписаны, хешируются с помощью подходящей хэш-функции (например, SHA-1). Значение хеша сообщается в манифесте. Затем добавляется дополнительный файл (файл *.SF
) в каталог META-INF/
; этот файл содержит записи для каждого из подписанных файлов: каждая запись содержит хэш соответствующей записи в манифесте (так что это, более или менее, хэш хэша). *.SF
также содержит запись, содержащую хэш основных заголовков в манифесте. Наконец, файл *.SF
сам подписывается, в результате получается файл *.RSA
или *.DSA
(сам в каталоге META-INF/
), который соответствует формату CMS (ранее известный как "PKCS # 7 «). CMS использует всю атрибутику сертификатов X.509.
Так что это скорее косвенно. Следует понимать, что только отдельные файлы в JAR подписаны; в данном файле JAR может быть смесь частей со знаком и без знака.