1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun #include <openssl/evp.h> 3*4882a593Smuzhiyun #include <openssl/sha.h> 4*4882a593Smuzhiyun #include <openssl/md5.h> 5*4882a593Smuzhiyun main(void)6*4882a593Smuzhiyunint main(void) 7*4882a593Smuzhiyun { 8*4882a593Smuzhiyun EVP_MD_CTX *mdctx; 9*4882a593Smuzhiyun unsigned char md[MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH]; 10*4882a593Smuzhiyun unsigned char dat[] = "12345"; 11*4882a593Smuzhiyun unsigned int digest_len; 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun mdctx = EVP_MD_CTX_new(); 14*4882a593Smuzhiyun if (!mdctx) 15*4882a593Smuzhiyun return 0; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun EVP_DigestInit_ex(mdctx, EVP_md5(), NULL); 18*4882a593Smuzhiyun EVP_DigestUpdate(mdctx, &dat[0], sizeof(dat)); 19*4882a593Smuzhiyun EVP_DigestFinal_ex(mdctx, &md[0], &digest_len); 20*4882a593Smuzhiyun EVP_MD_CTX_free(mdctx); 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun SHA1(&dat[0], sizeof(dat), &md[0]); 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun return 0; 25*4882a593Smuzhiyun } 26