#include #include int main(int ac, char **av) { if (ac != 2) { fprintf(stderr,"Usage: %s chaine\n",av[0]); exit(0); } EVP_MD_CTX mdctx; const EVP_MD *md; unsigned char md_value[EVP_MAX_MD_SIZE]; int md_len,i; char *buf = (char *)malloc(EVP_MAX_MD_SIZE*sizeof(char)); bzero(buf,EVP_MAX_MD_SIZE); OpenSSL_add_all_digests(); md = EVP_get_digestbyname("md5"); if (!md) { fprintf(stderr,"Cannot find md5 digest\n"); free(buf); exit(0); } EVP_MD_CTX_init(&mdctx); EVP_DigestInit_ex(&mdctx,md,NULL); EVP_DigestUpdate(&mdctx,av[1],strlen(av[1])); EVP_DigestFinal_ex(&mdctx,md_value,&md_len); EVP_MD_CTX_cleanup(&mdctx); for (i=0;i