Сигнатура на самом деле не только для хеша (например, SHA-256), но для структуры данных, содержащей хеш плюс некоторые метаданные (который содержит алгоритм хеширования, некоторые параметры и длину хеша).
Вот почему после расшифровки данные декодируются в объект X509_SIG, и фактическое сравнение со ссылкой выполняется только для sig->digest->data
.