Crypt::OpenPGP を使用してみましたが、GPG で暗号化されたメッセージを復号化する際に問題が発生しました。だから今、私は代替品を探しています。データが暗号化されていない状態でいつでもディスク上に公開されないようにしたいので、モジュールが完全にメモリ内で暗号化/復号化できるようにしたいと考えています。サーバーには、gpg
すべてのモジュールがサポートしていないように見えるバージョン 2.x があります。私が使用するのに適したモジュールはありますか? これらのモジュールをふるいにかけるのは少し難しいと思います。なぜなら、「最高の」モジュールは 1 つではないように思われ、年齢もさまざまだからです。
1 に答える
Rob が言ったように、最善の解決策は XS を使用することです。
この本を見てください: Perl の拡張と埋め込み。
その本は、C と C++ の知識があり、XS に飛び込みたいと考えている人にとって非常に良いものです。Perlの知識も必要です。
基本的に、XS は、すべてのデータ構造にアクセスするために Perl が公開する API にすぎません。
- スカラー
- グロブ
- ハッシュ
- 参考文献
- 配列
- 等
XS モジュールには 2 つのセクションがあります。
- C または C++ コードの 1 つ (h2xs の伝え方によって異なります)
- 1 つは C/C++ でもあるが、 xsppによって C/C++ に変換される構文にいくつかの小さな違いがあるコードを含むもの
コードが意図したとおりに機能することを確認するには、コードのテストを作成する必要があります。
XS を書くときは、以下を使用することを強くお勧めします。
- デバッグ シンボルを使用してコンパイルされた Perl を使用したgdb
- メモリリークがないことを確認するためのvalgrind
パフォーマンスに懸念がある場合は、最高のツール プロファイラーの 1 つであるcallgrind を使用することをお勧めします。kcachegrind を使用してcallgrindの出力を表示できます 。
あなたの出発点はh2xsです。これは、扱いたくない退屈なボイラープレートをすべて生成するユーティリティです。h2xsを理解するには、このチュートリアルをお読みください。
h2xs は Makefile.PL を生成することに注意してください。これを実行perl Makefile.PL
すると、標準の .PL が生成されますMakefile
。それ以降は、モジュールを使用できmake
ます。libpgpMakefile.PL
とリンクするように指示してください。また、デバッグ シンボルを使用してコンパイルできることを確認してください。gdb を使用してデバッグする必要があり、デバッグ シンボルが必要な状況に陥ります。-g
また、こちらはBaby XSというXSに関する発表です。XSの非常に良い入門書になります。
また、その本を入手することをお勧めします。それは素晴らしいです。私は XS コードを書いているときにそれを使用しましたが、非常に役に立ちました (今でもそうです)。
PS すべての XS を扱いたくない場合は、より軽量なInline::CまたはInline::CPPを使用できます。ただし、XS API の基本を知るには、 上記の本 (または公式の Perl XS チュートリアル) を読む必要があります。
始めるのは少し難しいと感じていると思いますが、XS の基本をいくつか学べば、すべてがずっと簡単になります。XS を学ぶ利点は、XS モジュールのサポートを提供している誰かに縛られることがなくなり、独自に記述したり、他の XS モジュールの断片を使用したりできるようになることです。Crypt::OpenPGP には必要な機能がないと言う場合は、独自の機能を作成できます。