Зачем вам нужно преобразование? Это 160-битный дайджест. Дайджесты используются только двумя способами:
Вы печатаете дайджест с чем-то вроде
for (i = 0; i < 20; ++i) {
printf("%2x", digest[i]);
}
и сравнить с другим дайджестом с чем-то вроде
for (i = 0, equals = 1; i < 20; ++i) {
if (a[i] != b[i]) {
equals = 0;
}
}
Он работает просто отлично, как 20-байтовый массив байтов. Вам не нужно беспокоиться о порядке байтов, длине слова, ничего.