Windows下でopensslインストールと配置
ネットの方法はとても多くて、大部分は32位の機に対してので、自分のコンピュータはwin 7、64位なため、長い間やっとインストールすることに成功することを模索しました.
環境
WIN 7、64位、 vs 2005
Active Perlをダウンロードします
このような生成コードはperlスクリプトで生成されるので、Active Perlをインストールします.
URL:http://www.activestate.com/activeperl/
二つのバージョンをダウンロードしました.
ダウンロード
ウェブサイトhttp://www.openssl.org/
私が使っているのはopenssl-09.8 gバージョンです.他のバージョンを試したことがありますか?
openssl-09.8 g.tar.gzをcディスクのルートディレクトリに解凍します.
インストール手順:
(opensslディレクトリのinstall.win 32を参照することができます.)
1コマンドラインを開く
オープンソースディレクトリに入ります.cd c:/openssl-09.8.g実行perl Configre VC-WIN 32
2運転ms\do_を実行しますms
他の二つの方法は本機にコンパイラがあってこそ使えます.
:ms\doumasm(標準vcで自分でコンパイラを持っています.自分でダウンロードしてインストールしてもいいです.)
:ms\dounasm(自分でダウンロードする必要があります.)
3 DOSウィンドウC:\Program Files(x 86)\Microsoft Visual Studio 8\VC\binディレクトリに転送します.
環境変数を設定するためにvcvars 32.batを実行します.
4、opensslディレクトリにジャンプし、ダイナミックリンクライブラリをコンパイルする
cd c:/openssl-09.8.g実行>nmake-f mstdl.mak
もしコンパイルが成功すれば、アウトプットはout 32 dllディレクトリの下にあります.実行可能ファイル、2つのdllと2つのlibファイルを含みます.libeay 32.dll、libeay 32.lib、ssleay 32.dll、ssleay 32.lib
ここで特に強調したいのですが、この方法はライブラリリンクライブラリを生成します.つまり、私達の応用プロジェクトがopensslを使うなら、コンパイルする時に指定します.
libファイルは、プログラムリリース時に該当するdllを使います.Windows 7で公開されたopensslを使ったプログラムが実行できなくて、ポップアップする場合があります.
「実行時初期化に関するエラー」が、xpでコンパイルされ、発表され、他のwin 7とwinXPで実行できます.win 7の下に配置されていないと推測されます.
もしopensslを静的なライブラリにコンパイルするなら、上のntdl.makをnt.makに両替すればいいです.静的なライブラリを使ってみましたが、コンパイル時の互換性、衝突問題を解決するために、静的な方法を使わないことを提案します.
(64ビットのwin 7ですが、下に生成されるのもout 32 dlです.なぜか分かりません.)
建設工事
vs 2005を開くと、
additionlinclude directoresに加えて
「C:\openssl-09.8 g\include」
このカタログです
additioniallibrary directoresに加えて
「C:\openssl-09.8 g\out 32 dl」
このカタログ
コードは以下のようになります.
同様にVC 6の下で、上の二つのディレクトリを含めて、コンパイルも通ります.
環境
WIN 7、64位、 vs 2005
Active Perlをダウンロードします
このような生成コードはperlスクリプトで生成されるので、Active Perlをインストールします.
URL:http://www.activestate.com/activeperl/
二つのバージョンをダウンロードしました.
ActivePerl-5.16.2.1602-MSWin32-x64-296513.msi
ActivePerl-5.16.2.1602-MSWin32-x86-296513.msi
最初のバージョンはインストールされていますが、2番目のバージョンはインストールされていません.ダウンロード
ウェブサイトhttp://www.openssl.org/
私が使っているのはopenssl-09.8 gバージョンです.他のバージョンを試したことがありますか?
openssl-09.8 g.tar.gzをcディスクのルートディレクトリに解凍します.
インストール手順:
(opensslディレクトリのinstall.win 32を参照することができます.)
1コマンドラインを開く
オープンソースディレクトリに入ります.cd c:/openssl-09.8.g実行perl Configre VC-WIN 32
2運転ms\do_を実行しますms
他の二つの方法は本機にコンパイラがあってこそ使えます.
:ms\doumasm(標準vcで自分でコンパイラを持っています.自分でダウンロードしてインストールしてもいいです.)
:ms\dounasm(自分でダウンロードする必要があります.)
3 DOSウィンドウC:\Program Files(x 86)\Microsoft Visual Studio 8\VC\binディレクトリに転送します.
環境変数を設定するためにvcvars 32.batを実行します.
4、opensslディレクトリにジャンプし、ダイナミックリンクライブラリをコンパイルする
cd c:/openssl-09.8.g実行>nmake-f mstdl.mak
もしコンパイルが成功すれば、アウトプットはout 32 dllディレクトリの下にあります.実行可能ファイル、2つのdllと2つのlibファイルを含みます.libeay 32.dll、libeay 32.lib、ssleay 32.dll、ssleay 32.lib
ここで特に強調したいのですが、この方法はライブラリリンクライブラリを生成します.つまり、私達の応用プロジェクトがopensslを使うなら、コンパイルする時に指定します.
libファイルは、プログラムリリース時に該当するdllを使います.Windows 7で公開されたopensslを使ったプログラムが実行できなくて、ポップアップする場合があります.
「実行時初期化に関するエラー」が、xpでコンパイルされ、発表され、他のwin 7とwinXPで実行できます.win 7の下に配置されていないと推測されます.
もしopensslを静的なライブラリにコンパイルするなら、上のntdl.makをnt.makに両替すればいいです.静的なライブラリを使ってみましたが、コンパイル時の互換性、衝突問題を解決するために、静的な方法を使わないことを提案します.
(64ビットのwin 7ですが、下に生成されるのもout 32 dlです.なぜか分かりません.)
建設工事
vs 2005を開くと、
additionlinclude directoresに加えて
「C:\openssl-09.8 g\include」
このカタログです
additioniallibrary directoresに加えて
「C:\openssl-09.8 g\out 32 dl」
このカタログ
コードは以下のようになります.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<openssl/bn.h>
#include<openssl/ec.h>
#include<openssl/rand.h>
#include<openssl/err.h>
#include<openssl/ecdsa.h>
#include<openssl/ecdh.h>
#include"sm2.h"
#pragmacomment(lib,"libeay32.lib")
コンパイルは問題ないです.同様にVC 6の下で、上の二つのディレクトリを含めて、コンパイルも通ります.