프로그래밍/COCOA/Objective C

iPhone 에서 OpenSSL library 사용하기

Subi Lee 2010. 2. 17.
반응형



출처:  http://www.x2on.de/2010/02/01/tutorial-iphone-app-with-compiled-openssl-library/


Tutorial: iPhone App with compiled OpenSSL Library

01. Februar 2010

This is a tutorial for using self-compiled builds of  the OpenSSL-library on the iPhone. You can build apps with XCode and the official SDK from Apple with this. I also made a small example-app for using the libraries with XCode and the iPhone/iPhone-Simulator. You can also download the precompiled OpenSSL-library (0.9.8m-beta1).

You can get the Source of the example app with compiled OpenSSL athttp://github.com/x2on/OpenSSL-for-iPhone

Create OpenSSL Libary:

  • Download OpenSSL Sourcecode
  • Build OpenSSL for i368 iPhoneSimulator:
    • cd openssl-0.9.8m
      mkdir openssl_arm
      mkdir openssl_i386
      ./config --openssldir=/Users/
    • Edit Makefile:
      • Change CC = cc to:
        CC= /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.0
      • Add as first item to CFLAG:
        -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.2.sdk
    • Change in crypto/ui/ui_openssl.c
      static volatile sig_atomic_t intr_signal;

      to

      static volatile int intr_signal;

      for preventing building error

    • Build it:
      make
      make install
    • Your libcrypto.a and libssl.a are in the folder openssl_i368/lib
    • Rename the two files to libcrypto_i386.a and libssl_i386.a
  • Build OpenSSL for arm iPhoneOS:
    • Edit Makefile:
      • Search and replace openssl_i386 with openssl_arm
      • Change -arch i386 in CFLAG to:
        -arch armv6
      • Change
        CC=  /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.0

        to

        CC=  /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.0
      • Change
        -isysroot  /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.2.sdk

        to

        -isysroot  /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk
    • Build it:
      make
      make install
    • Your libcrypto.a and libssl.a are in the folder openssl_arm/lib
    • Rename the two files to libcrypto_arm.a and libssl_arm.a

Edit your iPhone-XCode project:

  • Copy the “include” folder from OpenSSL into your project-folder
  • Copy the libcrypto_*.a and libss_*.a files into your project-folder
  • Drag the libcrypto_*.a and libss_*.a files into your XCode Framework Folder-Tree
  • Open the Build-Info from your “Target” (Righclick on Target – Get Info)
  • Change Library Search Paths to
    $(inherited) "$(SRCROOT)"
  • Change User Header Search Paths to include
  • Activate Always Search User Paths

Enjoy OpenSSL on the iPhone!

I have made an iPhone OS 3.1.2 XCode Project with OpenSSL 0.9.8m (Beta1) Libaries. The examples uses the MD5-algorithm to calculate an md5 hash from an UITextfield.

Download: OpenSSL-1 iPhone Example Project (2,9MB)

Download: OpenSSL-iPhone-0.9.8m-beta1-i386-arm (2,0MB)

Disclaimer: Use this at your own risk.

Links:

Tags: 

반응형

댓글