안녕하세요.

임베디드 기기간의 암호와 통신을 하려고 합니다.

일단 www.openssl.org에서 openssl-0.9.7h를 받아서 임베디드용으로 컴파일을 했읍니다.

자료가 찾기 무지 힘들었는데요.. 아래와 같이 하면 됩니다.


① www.openssl.org에서 소스를 다운받아 압축을 해제한다.
② ./Configure linux-elf-arm --prefix=/usr/local/SSL --openssldir=/usr/ local/SSL/OPENSSL no-threads no-zlib no-asm
③ Makefile에서 CC를 크로스 컴파일러(ex. arm-linux-gcc)로 변경한다. Makefile이 여러 개인데 모두 변경해 주어야 한다.
④ apps 디렉토리 안에 있는 makefile에서 LIBSSL에 ‘-ldl’을 추가시킨다. 또 test 디렉토리의 makefile에 LIBCRYPTO에 ‘-ldl’을 추가시킨다.
⑤ make; make install을 통해서 컴파일한다.
⑥ arm-linux-gcc -print-search-dirs로 라이브러리 검색 디렉토리 목록을 찾은 후 액세스 가능한 디렉토리에 생성된 라이브러리 파일 2개와 pkgconfig 디렉토리를 복사한다.

일단 이렇게 해서. openssl를 컴파일 했구요.. falinux보드 ex-5보드상에서 돌아가는것을 확인했읍니다.

근데 암호화 통신을 하려고 할때 아래 처럼 system 명령을 써서 코딩 하는것 보단
라이브러리 이용해서 코딩하는것이 더 좋을듯한데요..
int main( int argc, char **argv )
{
         system("./openssl genrsa -out private.key");
}

그래서 일단 openssl 소스에 있는 테스트 프로그램을 컴파일 해보기로 햇읍니다.

근데 이때 헤더 파일 include설정을 어떻게 해야 할지를 모르겠읍니다. 고수님들 도와주세요..

아래 내용중 include 경로 설정시에 EX-5도 같이 include해줘야 하는데

INCLUDEDIR = usr/armv5l-linux/include  -->이렇게
INCLUDEDIR = usr/local/openssl-0.9.7h/OPENSSL/include/openssl

두개다 include경로를 설정할수 잇는 방법은 없는지요.??

아래는 제가 리눅스 host  pc상에 셋팅 환경입니다.

openssl 설치 경로

usrlocalopenssl-0.9.7hinclude

Makefile 내용



# Makefile for a basic kernel module

CROSS_COMPILE=arm-linux-gcc

# Modify this statement to your kernel directory

#INCLUDEDIR = usr/armv5l-linux/include

INCLUDEDIR = usr/local/openssl-0.9.7h/OPENSSL/include/openssl
                

MODCFLAGS := -Wall -O3 -DMODULE -D__KERNEL__ -I$(INCLUDEDIR)

MODCFLAGS1 := -Wall -O3 -I$(INCLUDEDIR)

      
bftest:bftest.o
                $(CROSS_COMPILE) $(MODCFLAGS1) -o  bftest bftest.c -ldl -lssl -lcrypto



부탁좀 드립니다 도와주세요...

여기 아니면 메신져로 답해주셔도 됩니다.. oversky72@hotmail.com -> MSN