안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 졸업논문을 준비중인 학부생입니다.
이번에 졸업논문을 하던중 android를 사용하게 되었는데요
c로 작성된 openssl을 안드로이드 시뮬레이터 창에 올리라는데 jni를 이용한 방법밖에 없는지요
제가 자바에 관해선 문외한이라 jni사용하는데 익숙치가 않아 짧은 시간에 구현해내기가 어려울것같습니다.
혹시나 다른방법이 있으면 어떤지 궁금합니다.
그리고 혹시나 openssl라이브러리를 jni로 구현한 사이트나 자료가 있으면 꼭 좀 소개시켜주시기 바랍니다.
긴 글 읽어주셔서 감사합니다.
2010.05.17 10:58:27
첫번째 질문인 c 라이브러리를 java에서 사용하시려면 jni를 사용하여 랩퍼를 만드는 방법밖에는 없습니다.
(물론 다이렉트로 호출하는 것이 아닌 결과만 받는다면 여러가지 방법(프로세스 호출후 결과를 받는 방법, 소켓, 웹서비스 등등)이 있겠습니다만.)
두번째 질문은 사실 자바쪽에서는 이미 jdk에 jce, jsse가 포함되어 있기도 하고 바운시캐슬(http://www.bouncycastle.org/)와 같은 안정된 라이브러리가 제공되기에 openssl을 바로 사용하는 경우가 매우 적습니다.(물론 다루기도 까다롭구요)
즉 자바에서 암호화처리라면 openssl 말고 위에 제시한 대안을 사용하시는 편이 좋습니다.
꼭 openssl을 써야 한다면 openssl을 사용하는 작업단을 c로 작성하시고 결과만 jni로 리턴받는게 효과적일듯 합니다.
그리고 jni는 자바가 아니라 c로 작성하니 java를 잘 알지 못해도(그렇더라도 데이터타입등 기초적인 부분은 아셔야합니다.) 충분히 가능합니다. 또한 swig(래퍼 생성 도구)등의 유틸의 도움도 받을수 있습니다.