暗号化を行うライブラリ.SSL通信なんかプログラム面倒くさいし,簡単にBlowfishあたりで暗号通信ですわ
Crypto++のインストール
これをダウンロードしてインストールすれば完了. あたらしいのはこの辺の cryptopp8xx から探して
Crypto++の利用法
しらん
Crypto++のインストールパッケージの作成
配布パッケージ作成方法(850)台湾積体電路製造
今流行りの豚にしないと!この野郎の悪いところは, GNUmakefile に全部書いてあるところだな. なにがなにやら. どうやら850ってのがM1を認識できるバージョンらしいぞ
X86ビルド
X86ターミナルで実行する.
tar zxf ../cryptopp-CRYPTOPP_8_5_0.tar.bz2 cd cryptopp-CRYPTOPP_8_5_0/ make CC=clang CXX=clang++ CXXFLAGS="-DNDEBUG -g2 -O3 -DCRYPTOPP_DISABLE_ASM -pipe -ffunction-sections -fdata-sections " PREFIX=/usr/local clean dynamic test
なんかstaticライブラリも作ろうとして失敗しているが,ま,ええかー. これで
lipo -info libcryptopp.dylib Non-fat file: libcryptopp.dylib is architecture: x86_64
ARM64ビルド
ARM64ターミナルで実行する
tar zxf ../cryptopp-CRYPTOPP_8_5_0.tar.bz2 cd cryptopp-CRYPTOPP_8_5_0/ make CC=clang CXX=clang++ CXXFLAGS="-DNDEBUG -g2 -O3 -DCRYPTOPP_DISABLE_ASM -pipe -ffunction-sections -fdata-sections -stdlib=libc++" PREFIX=/usr/local clean dynamic test
なんかstaticライブラリも作ろうとして失敗しているが,ま,ええかー. これで
lipo -info libcryptopp.dylib Non-fat file: libcryptopp.dylib is architecture: arm64
ここでインストールまでしてしまう.
fswatch -x /usr/local/ >& files.log & sudo make CC=clang CXX=clang++ CXXFLAGS="-DNDEBUG -g2 -O3 -DCRYPTOPP_DISABLE_ASM -pipe -ffunction-sections -fdata-sections -stdlib=libc++" PREFIX=/usr/local install-lib cp libcryptopp.dylib /usr/local/lib install_name_tool -id /usr/local/lib/libcryptopp.dylib /usr/local/lib/libcryptopp.dylib
豚ビルド
だんだん世界が豚で埋め尽くされていく・・・
lipo -create -arch x86_64 ../../x86_64/cryptopp-CRYPTOPP_8_5_0/libcryptopp.dylib -arch arm64 libcryptopp.dylib -output ../universal/libcryptopp.dylib cp ../universal/libcryptopp.dylib /usr/local/lib install_name_tool -id /usr/local/lib/libcryptopp.dylib /usr/local/lib/libcryptopp.dylib
できたかな
lipo -info /usr/local/lib/libcryptopp.dylib Architectures in the fat file: /usr/local/lib/libcryptopp.dylib are: x86_64 arm64
いいようだな.
kill %1 fswatch_analyze.sh -c _binary files.log pkgbuild --identifier cryptopp --root _binary cryptopp850-osx11.2.pkg
Version830
AppleのM1で動かないらしいので入れ替える. で, そのまんまでは
'_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'ChaCha_OperateKeystream_AVX2' that is compiled without support for 'avx2'
的なエラーが出てビルドできない. 前はAVX2オプションつけて逃げたのだが, AVXってのはIntel独特の技術だから, M1用には使えないだろう.てゆうか, makefile 見当たらないのに, どうやってビルドしているんだろう.
試行錯誤の結果
tar xf fswatch-1.15.0.tar cd fswatch-1.15.0 ./configure --prefix=/usr/local make distclean make -f GNUmakefile CC=clang CXX=clang++ PREFIX=/usr/local CXXFLAGS="-DNDEBUG -g2 -O3 -DCRYPTOPP_DISABLE_ASM" AR="ar" ARFLAGS="-r" clean dynamic static test fswatch -x /usr/local/ >& files.log & sudo make -f GNUmakefile CC=clang CXX=clang++ PREFIX=/usr/local CXXFLAGS="-DNDEBUG -g2 -O3 -DCRYPTOPP_DISABLE_ASM" AR="ar" ARFLAGS="-r" install swatch_analyze.sh -c _binary files.log pkgbuild --identifier cryptopp --root _binary cryptopp830-osx10.15.pkg
Version810
fswatch_analyze.shがバグっていたので入れ替える.staticライブラリーなんて,つかわないのでは ? と思ったが古すぎてもはやビルドしないのか? 新しいのではどうだ? Macがデフォルトでgmakeであるので, GNUmakefile でmakeしているみたいだが. デフォルトでいっぱいコンパイルオプションがついたが, エラーするので, 適宜追加してみる.
cd cryptopp810 fswatch -x /usr/local > files.log & sudo make CC=clang CXX=clang++ CXXFLAGS="-DNDEBUG -g2 -O3 -DCRYPTOPP_DISABLE_MIXED_ASM -pipe -ffunction-sections -fdata-sections -march=core-avx2 -msha" PREFIX=/usr/local AR="ar" ARFLAG="-r" clean dynamic static test install kill %1 fswatch_analyze.sh -c _binary files.log pkgbuild --identifier cryptopp --root _binary cryptopp810-osx10.14.pkg
これでどうだ?
Version565
なんか古くなってきたので入れ替える.
cd cryptopp5.6.5 fswatch -x /usr/local > files.log & sudo make CC=clang CXX=clang++ PREFIX=/usr/local clean dynamic static install sudo cp libcryptopp.so /usr/local/lib sudo make -f Makefile PREFIX=/usr/local clean static install kill %1 fswatch_analyze.sh -c _binary files.log pkgbuild --identifier cryptopp --root _binary cryptopp562-osx10.10.pkg
Version562
暇だから,上記の配布パッケージを自分で作成したい場合,ソースファイルをここからダウンロードして
cd cryptopp562 fswatch -x /usr/local > files.log & sudo make -f Makefile PREFIX=/usr/local clean dynamic sudo cp libcryptopp.so /usr/local/lib sudo make -f Makefile PREFIX=/usr/local clean static install kill %1 fswatch_analyze.sh -c _binary files.log pkgbuild --identifier cryptopp --root _binary cryptopp562-osx10.10.pkg