Разбираю код revelation(http://oss.codepoet.no/revelation/) с целью написания консолькой версии на си.
Участок из мануала: The user must supply a password, encoded as UTF-8. It is concatenated with a randomly generated 256-bit salt, and then hashed a number of times (10 000 is recommended) using the SHA-256 algoriyhm. A pseudo-code example of this process:
password = get_password() salt = sha256_digest(random_string(32)) key = password + salt
for i = 0 to 10000 key = sha256_digest(key)
Вопрос такой: как видно, пароль должен быть в unicode, в то время как salt - это просто массив из 32 байтов. Как в си грамотно получить хеш их суммы? пробовал через libgcrypt, но там поддержки unicode замечено не было, и я не у верен в корректности результата. Проверить не могу, так как там еще расшифровывать дальше надо, пока безрезультатно.
Заранее благодарен за ответы.