OpenSSL의 HMAC관련 함수들을 사용하려는데요..;;

Shadow_Masterz의 이미지

프로젝트를 진행하면서 해쉬값을 나오게 하는 프로그램을 구현하고 있습니다.

OpenSSL의 HMAC관련 함수들을 사용하려는데요..;;

HMAC_Init_ex(), HMAC_Update(), HMAC_Final()함수들의 사용방법을 잘 모르겠습니다...

OpenSSL.org에서 찾아보니 전부 영문인지라..(영어 실력이 전혀 안되서요 ㅠ)

해쉬값 나오게 하는 부분좀 도와주세요...

익명 사용자의 이미지

Init- Updat- Final 순으로 사용하시면 됩니다.
man HMAC_Update 하시면 설명이 나오는데요,
HMAC_CTX_Init() 또는 HMAC_CTX_Init_ex() 로 ctx구조체를 초기화 해주시고,
Update에서 데이터 넣으시고,
Final에서 md인자에 해시값 받으시면 되요
그리고 다 사용한뒤 cleanup 안해주시면 메모리 누수 나오니 주의하세요.

익명 사용자의 이미지

예를들어 이렇게 쓰면 되겠네요.

HMAC_CTX *ctx;

char *md; (메모리 할당)
int md_len;

HMAC_CTX_Init(ctx);

HMAC_Update(ctx, text, text_len);

HMAC_Final(ctx, md, &md_len);

HMAC_cleanup(ctx);