Oii, Alberto, tudo bem?
Se eu não estou errada, você quer fazer algo semelhante, mas usando a linguagem C e as bibliotecas libcrypto.a e libssl.a. Certo?
A linguagem C é um pouco mais complexa do que o bash para essas tarefas, mas é totalmente possível. Primeiro, você precisará incluir as bibliotecas no seu código C. No caso da libcrypto.a e libssl.a, você pode fazer isso com as seguintes linhas no início do seu código:
#include <openssl/md5.h>
#include <openssl/evp.h>
Em seguida, você precisa reescrever as funções do seu script bash em C. Por exemplo, a parte do seu script que usa o comando hwinf -quiet | grep serial | head -n 1 | awk -F":" '{ print $2 }' | sed 's/-//g' | sed 's/"//g'| tr -d '[:blank:]'
pode ser reescrita em C usando funções para executar comandos do sistema, ler a saída desses comandos e processar strings.
E, por fim, você usará as funções da biblioteca openssl para gerar o hash MD5. Vou deixar abaixo um exemplo:
unsigned char result[MD5_DIGEST_LENGTH];
char string[] = "hello world";
MD5((unsigned char*)&string, strlen(string), result);
for(int i = 0; i < MD5_DIGEST_LENGTH; i++)
printf("%02x", result[i]);
printf("\n");
Se outra dúvida surgir, estamos aqui.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.