Вызывается функция, ей передается закрытый ключ и возможно пароль, на выходе имеете поток байтов, или файл.
Проверяется все по хэшу которым подписано все в конце. Причем этот хэш вы можете вычислить из открытого ключа.
Эта часть отвечает за то что файл не изменился с момента подписания.
Причем вам не нужно шифровать содержимое.
При расшифровке то же самое, только если не совпадет будет мусор. О чем вам и сообщат
Причем это все очень упрощено.