IPSec 을 구현하는 중 MD5 알고리즘과 SHA1 알고리즘 오픈소스를 가져와서 사용했다.
이 2가지 알고리즘은 다음절차로 이루어진다.

-init
-update
-final

init 는 말그대로 MD5, SHA1 변환을 위해 초기화하는 절차이고,
update 는 변경할 데이터를 삽입하는 것이다. (변경할 데이터 = Authentication 할 데이터)
final 은 실제로 데이터를 변경할때 사용되는 함수이다.

여기서 헷갈렸던점이 update 인데 이 함수는 n번 사용될수 있다.

init -> update -> update -> update -> final ( 가능한 케이스 )

실제 변경할 데이터가 한개의 Buffer 에 존재하는 것이 아니고 다른 메모리 번지에 여러개 있을때 고민하지 말고 Update 명령어를 n 번 사용하자.
처음에 이걸 몰라서 다른 메모리 번지에 있던 데이터들을 한 개의 Buffer 로 옮기느냐 괜한 memcpy 를 사용했었다 ㅠㅠ
Posted by 용학도리
,