티스토리 뷰

sqlcipher github : https://github.com/sqlcipher/sqlcipher

- Windows에서 말로는 빌드하기 어렵다는데, 빌드 자료를 재정리해준 사람이 많아서 별로 어렵진 않다.

- 기존 sqlite3는 헤더에서 sqlite3_key를 명시만 하고, 상업 관련때문에 구현은 안 되어 있음. 따라서 sqlite를 암호화하려면 이런게 필요


사전 설치

  • Visual Studio 2015 or 2017
  • vcpkg (openssl build 같은 방법으로 라이브러리를 얻을 수 있으면 필요 없음)


빌드 방법(설명은 32bit binary build, 64bit는 일부 과정을 수정해서 사용)

  1. git clone https://github.com/sqlcipher/sqlcipher로 받아옴
  2. vcpkg install openssl:x86-windows openssl:x64-windows로 libeay32.lib, libeay32.dll 획득(사전 설치에서 말했듯이 따로 방법있으면 안 해도 됨)
  3. libeay32.lib과 libeay32.dll을 sqlcipher 폴더에 복사
  4. vcpkg의 installed 폴더의 x86-windows 폴더를 c 드라이버 경로로 복사 후, opensslbuild32로 이름 변경(경로 잘 파악하고 있다면 안 해도 됨)
  5. http://www.mingw.org/의 왼쪽 download/installer를 클릭해 mingw 설치
  6. 아래 사진처럼 Basic Setup을 클릭 후, 오른쪽 Package가 설치(Mark Install => Installation => Apply Change => Apply)
  7. 아래 사진처럼 All Packages 클릭 후, 오른쪽 Package 목록 중 tcl 6개 항목을 전부 설치(Mark Install => Installation => Apply Change => Apply)
  8. 'C:\MinGW\msys\1.0' 경로의 msys.bat 실행
  9. cd /c 로 이동해서 sqlcipher 폴더까지 이동 (ls / 하면 안 보이는데, 걍 무시해도 됨)
  10. 아래의 커맨드를 수정해서 입력(4번 과정대로 이름 변경했으면, 걍 수정없이 복붙해도 됨)

    1
    2
    # -I/c 부분 경로를 openssl 경로로 수정
    $ ./configure --with-crypto-lib=none --disable-tcl CFLAGS="-DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_OPENSSL -I/c/opensslbuild32/include /c/sqlcipher/libeay32.dll -L/c/sqlcipher/ -static-libgcc" LDFLAGS="-leay32"
    cs
  11. 아래 커맨드를 차례대로 입력해서 컴파일
    1
    2
    3
    4
    $ make clean
    $ make sqlite3.c
    $ make
    $ make dll
    cs
  12. 현재 디렉토리에 sqlite.dll 생성 완료

※ dll이 아니라 lib가 필요한 경우, Visual Studio 명령 프롬프트를 사용해서 변환(참고 자료 1번째꺼 참고)하면 된다.



Visual Studio에 로드 방법(아직 미추가, 참고 자료 3번째꺼 참고)



참고 자료


'Programming > C' 카테고리의 다른 글

[Windows] Windows Error Code 목록  (0) 2019.01.11
[Algorithm] 문자열 검색 알고리즘 적용 예시  (0) 2019.01.07
[C++] STL 함수 코드 정리  (0) 2018.10.20
[Win API] CryptProtectData example  (0) 2018.08.06
OLE read, write API  (0) 2018.07.27
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31