본문 바로가기
카테고리 없음

OpenSSL을 멀티스레드 환경에서 사용하기

by purpuresky 2007. 3. 16.
반응형
기본적으로 OpenSSL은 멀티스레드를 지원하고 있다. 그렇게만 알고 있었다.
프로젝트를 진행하다가 멀티스레드 환경에서 프로그램이 오동작을 하는것이 발견되었는데 프로그램의 문제라고만 생각했지 OpenSSL내부에서 문제가 발생하리라고는 생각하지 못했다. 그러던중 알게된 사실은 OpenSSL에서 멀티스레드를 사용하기 위해서는 다음과 같은 함수를 설정해야한다.

CRYPTO_set_locking_callback 함수다.

요 함수에 lock을 요청하고 푸는 방식을 정해줘야만 멀티스레드에서 제대로 동작하게 된다.

OpenSSL소스의 cryto/thread/th-lock.c 함수를 참고하면 된다.
반응형