'OpenSSL'에 해당되는 글 2건

  1. 2011.07.01 Example) AES-ECB by using OpenSSL 1
  2. 2011.04.25 Building OpenSSL binaries for Win32 2
// this code is just sample. not function form.
// just a reference!

const unsigned char pKey[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

const unsigned char pIn[] = {0,1,2,3,4,5,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf};
unsigned char pCipher[16] = {0,};
unsigned char pPlain[16] = {0,};

{
    /**
    * AES ECB Encryption
    *
    * @param pKey 128bit key
    * @param pIn 128bit plain input
    * @param pCipher (output) 128bit cipher output
    * @return true/false
    */
    AES_KEY stKey;
    memset(&stKey, 0, sizeof(AES_KEY));
    if(AES_set_encrypt_key(pKey, 128, &stKey)<0)
        return false;
    AES_ecb_encrypt(pIn, pCipher, &stKey, AES_ENCRYPT);
    //return true;
}

{
    /**
    * AES ECB Decryption
    *
    * @param pKey 128bit key
    * @param pCipher 128bit cipher input
    * @param pPlain (output) 128bit plain output
    * @return true/false
    */
    AES_KEY stKey;
    memset(&stKey, 0, sizeof(AES_KEY));
    if(AES_set_decrypt_key(pKey, 128, &stKey)<0)
        return false;
    AES_ecb_encrypt(pCipher, pPlain, &stKey, AES_DECRYPT);
    //return true;
}
Posted by 배트
,
MinGW를 사용해 openssl 0.9.8r을 빌드하려고 했는데,
Win32의 include 경로가 제대로 잡히지 않는지 make 단계에서 에러가 발생한다.

결국 기존의 방식대로 ActivePerl과 MS C Compiler를 사용해 빌드하기로 했다.

OpenSSL의 Config은 Perl 스크립트로 되어있고,
MS-WIN32라는 환경 프리셋을 제공하므로,
Perl만 사용할 수 있으면 Win32에서 빌드할 수 있다.
(Perl에는 지식이 없지만, 아마 이런 스크립트들은 모두 Perl로 되어있으리라 추정한다.)

1. MS Visual Studio가 설치되어 있어야 한다.

2. ActivePerl을 다운받고 설치한다.
   http://www.activestate.com/
   다른 Perl 도구가 있으면 사용해도 되겠다.

3. OpenSSL의 소스를 다운받고 적당한 곳에 압축을 푼다. (여기에선 C:\W32Build 아래에)

4. 커맨드 프롬프트 창을 연다.

5. MS Visual Studio 개발 환경의 환경변수가 모두 지정되어 있지 않다면,
   아래와 같은 배치명령어로 환경변수를 등록한다.
   VC6 : C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
   VC9 : C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat

6. OpenSSL의 소스가 있는 곳으로 가서 Configure를 실행한다.
   C:\W32Build\openssl-0.9.8k>perl Configure VC-WIN32 --openssldir=C:\OpenSSL
   Configure는 순식간에 끝난다.

7. 성능을 높이기 위해 MS assembler(MASM)을 사용하려면,
    아래 사이트에서 MASM32 SDK를 다운받고 설치한다.
    http://www.masm32.com/

8. 이제 Make 파일을 만든다.
   어셈블러 코드를 포함한 Make 파일을 만드려면
       C:\W32Build\openssl-0.9.8k>ms\do_ms.bat
   모두 C 코드로 빌드하는 Make 파일을 만드려면
       C:\W32Build\openssl-0.9.8k>ms\do_msam.bat
   을 실행한다.
   그러면 ms\nt.mak와 ms\ntdll.mak가 생성된다.

9. nt.mak는 OpenSSL 프로그램을 빌드하고, ntdll.mak는 OpenSSL의 DLL을 빌드한다.
   DLL을 빌드하려면,
      nmake -f ms\ntdll.mak
   을 실행하면 된다.
   빌드된 파일들은 out32dll 폴더와 설정시 입력했던 C:\OpenSSL 폴더 아래에 있다.

Good luck!

출처: http://www.lovelgw.com/Blog/61
Posted by 배트
,