2014/10/25

encfs4win( encfs & encfsw )をVC++Expressでコンパイル

しなです。

クラウドで暗号化してると,色々したくなります。 いろいろやりたかったのですが,すでにやっている先人を見つけてしまいました


以下は備忘録です。
------

encfs4winのNEWSに

・2013-02-18 No changes but currently compile under Visual C++. Hoping somebody could contribute easier.

と書かれているので 実際にやってみようかと。

環境は手元のWIndows7 + Visual C++ 2010 Express
#たぶん2013Expressでも動作できると思いますがインストールがめんどくさかったので。

基本は付属ドキュメントのReadMe_Windows.txtに書かれている通りにしました。

作業フォルダは c:\work    D:\encfs4win に変更しています。

・Boostのインストール


boost_1_53_0.7zのダウンロード
http://sourceforge.net/projects/boost/files/boost/1.53.0/

ビルド方法はココに書いている通り
http://www.boost.org/doc/libs/1_53_0/more/getting_started/windows.html

All Programs > Microsoft Visual Studio 2010 Express > Visual Studio Command Prompt (2010)
>cd \work\boost_1_53_0
> D:
>cd \encfs4win\boost_1_53_0
>bootstrap.bat
>.\b2.exe




#boost_1_54_0 でもコンパイルは可能

#boost_1_55_0はコンパイルできませんでした。(b2でエラー)
#http://kowaimononantenai.blogspot.jp/2013/11/winodwsboost.html
# b2.exe toolset=msvc-10.0 でコンパイル可能

#boost_1_56_0 も b2.exe toolset=msvc-10.0 でコンパイル可能

・OpenSSLのインストール

http://slproweb.com/products/Win32OpenSSL.html

ReadMe_Windows.txtとバージョン違うけど,Win32OpenSSL-1_0_1j.exe をダウンロード

( Visual C++ 2008 Redistributables が入ってなかったら怒られるのでその時にはダウンロード&インストール )

ReadMe_Windows.txt だと設定を変えているけど,最後の実行時にLIBEAY32.DLL が無いエラーが出るので、今回は標準インストールで実施。インストールパスとライブラリの場所は以下の画像参照。





・RLogのインストール


cd c:\work
cd d:\encfs4win
tar -zxvf rlog\rlog-1.4.tar.gz
cd c:\work\rlog-1.4
cd d:\encfs4win\rlog-1.4
patch -p0 < ..\rlog\rlog-1.4.diff
patch -p0 < ..\rlog\rlog-1.4-win.diff
patch -p0 < ..\rlog\rlog-1.4-win2.diff

ソリューションファイルを開いてビルド   d:\encfs4win\rlog-1.4\win32\rlog.sln




・fuse4winのインストール


とりあえずCMakeのWindows用バイナリをダウンロードしてインストール
http://www.cmake.org/download/
そして実行


fuseと fuse_static のプロジェクトファイルを開いてビルド。
それ以外はエラーが出るけど,今回は無視

プロジェクトファイルは以下の場所 
C:\work\fuse4win-070d3a2e43de\build
D:\encfs4win\fuse4win-070d3a2e43de\build

・encfsのインストール

以下のソリューションファイルを開く。 
c:\work\encfs\msvc\encfs.sln
d:\encfs4win\encfs\msvc\encfs.sln

openSSLの場所を標準に変えてるので修正(インクルードディレクトリとライブラリ ディレクトリ)
 ../../OpenSSL-Win32/incluse→ C:\OpenSSL-Win32\include
../../OpenSSL-Win32/lib/VC→ C:\OpenSSL-Win32\lib\VC
設定箇所は以下の画像参照。



・ソースファイルの修正

ReadMe_Windows.txtによると、これで動くはずなのだが,実際にやってみると shared_ptrがあいまいと言われてコンパイルが通らない。


ソースファイルの shared_ptr  を全部 boost::shared_ptr に変更。

StreamNameIO.cpp
SSL_Cipher.cpp
NullCipher.cpp
nameio.cpp
main.cpp
macfileio.cpp
fileutils.cpp
filenode.cpp
encfsctrl.cpp
encfs.cpp
dirnode.cpp
cipher.cpp


ここまででコンパイルは完了。


・RLog.dllのコピー


実行時にRLog.dllが無いと言われるので,C:\work\rlog-1.4\win32\Release D:\encfs4win\rlog-1.4\win32\Release の rlog.dll を実行ファイルの場所にコピー


これで実行まで確認。

ただしReleaseビルドだけだけどね!
Debugビルドだとなぜかおちるけど!




・設定ファイルの追加

Box Sync が".encfs6.xml" を同期してくれないので、設定ファイルを変更する。
Encdroid multi cloudなら以下のアップデートにあるようにencfs6.xmlを追加。
02/09/13
- if your server don't send hidden file, you can rename the file ".encfs6.xml" to "encfs6.xml" (without the starting dot). this version now support this fix.

具体的には,FileUtils.cpp の ConfigFileMapping[] に新しい設定ファイル名を追加して再コンパイルするだけだが。

2014/08/05

PDFになんちゃって電子署名をしてみた(無料で)

しなです。
表題の件,JSignPDFというソフトを使ってやってみました。

設定例は以下のとおり。"Windows-MY"だとnative Windows certificate Keystoreらしい。
















可視署名の設定は以下。
座標の指定がめんどくさい。位置の確認ができるから、まだ良いけど。




「Sign It」ってボタン押すと出力がでてきて



1P目の左下に無事証明書が付きました。




アイコンをクリックすると、それらしいのが出てきます。




本当はちゃんとOpenSSLをつかって電子署名を作りたいけど,それはまた今度で。




元ネタはこちら

PDF電子署名入門