smailの64ビット版作成の前にopenssl の64ビット版のライブラリーを作成しないといけないということで、openssl の64ビット版のライブラリーを作成。(自分用メモ)
http://www.openssl.org/source/から、最新ソースコードopenssl-1.0.0e.tar.gzをダウンロードして、
C:\work\vc\free\openssl-1.0.0e-64に展開
1)コンパイル環境の設定
C:\work\vc\free\openssl-1.0.0e-64>”C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat”
Setting environment for using Microsoft Visual Studio 2010 x64 cross tools.
※32bitを作成する場合は、C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat”
を実行する。
2)Configure (要ActivePerl)
C:\work\vc\free\openssl-1.0.0e-64>perl Configure VC-WIN64A no-asm –prefix=C:\work\vc\free\openssl-1.0.0e-64
※アセンブラ(MASM)があれば、no-asmを外すと、SHA等の計算はアセンブラーコードを使用され速度が速くなります。
まあ、そんなに高速を必要としないので、私はいつも、no-asmを指定。
3)makeファイル作成
C:\work\vc\free\openssl-1.0.0e-64>ms\do_win64a
C:\work\vc\free\openssl-1.0.0e-64>perl util\mkfiles.pl 1>MINFO
C:\work\vc\free\openssl-1.0.0e-64>perl ms\uplink.pl win64a 1>ms\uptable.asm
C:\work\vc\free\openssl-1.0.0e-64>ml64 -c -Foms\uptable.obj ms\uptable.asm
Microsoft (R) Macro Assembler (x64) Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
Assembling: ms\uptable.asm
C:\work\vc\free\openssl-1.0.0e-64>perl util\mk1mf.pl no-asm VC-WIN64A 1>ms\nt.mak
C:\work\vc\free\openssl-1.0.0e-64>perl util\mk1mf.pl dll no-asm VC-WIN64A 1>ms\ntdll.mak
C:\work\vc\free\openssl-1.0.0e-64>perl util\mkdef.pl 32 libeay 1>ms\libeay32.def
C:\work\vc\free\openssl-1.0.0e-64>perl util\mkdef.pl 32 ssleay 1>ms\ssleay32.def
C:\work\vc\free\openssl-1.0.0e-64>
3)make
C:\work\vc\free\openssl-1.0.0e-64>nmake -f ms\nt.mak
※smailにSSLを静的リンクライブラリで実装するので、ms\nt.makを実行する。
DLLを作成したい方は、nmake -f ms\ntdll.makの方を実行する。
4)オブジェクト
C:\work\vc\free\openssl-1.0.0e-64\out32にssleay32.lib,libeay32.libが生成される。
C:\work\vc\free\openssl-1.0.0e-64\inc32にopenssl用のインクルードファイルが生成される。
※テストコマンド等も生成される。必要なのは、ssleay32.lib,libeay32.libだけですが、本当に64bitで動作しているのか、openssl.exeを起動して、タスクマネージャで見てみる。

以上で、openssl 64bit版のライブラリーの出来上がりです。
5)SMAILを64bit化する。(64ビットアプリは未公開です。)
・64bit化のため、一部ソースコード修正
・4)で作成した、includeファイル、ライブラリーを指定。

・コンパイル
64bit版のsmail.exe完成、64bitで動作しているか確認。

※正常にSSLでメール送信。
opensslを使ってSSL通信するプログラムは至って簡単で、sslの初期化をしてしまえば、後はソケットディスクリプタをSSLに通すだけです。
最近のコメント