はじめに
何かのツールを作ってみたかったので、興味があったPDFに関連するツールを作ってみました。
PDFをAESで暗号化・復号することができるCLIツールです。今度拡張を重ねてより使いやすくし、最終的にはWindowデスクトップアプリ版もリリースしたいと考えているので、興味ある方はぜひ一緒に開発しましょう!
この記事は随時更新していきます。
現時点で実装している機能
- PDF暗号化
暗号化にはAES-GCM
を使って暗号化しています。
デフォルトでメタデータも含めて暗号化するようになっている。
暗号化後のファイルは.veil
で保存されます。 - PDF復号
暗号化されたVEILファイル
を復号する。
メタデータも暗号化している場合は、復号時にメタデータを表示するようになっている。
インストール方法
現時点ではdebファイルでの配布になります。
以下のコマンドでも取得できます。
wget https://github.com/Saku0512/pdfveil/releases/download/v0.1/pdfveil_0.1.0-1_all.deb
dpkg
を用いてインストールしてください。
sudo dpkg -i pdfveil_0.1.0-1_all.deb
sudo apt install -f
使用方法
pdfveil {encrypt, decrypt} {input.pdf, input.veil} [--password password] [--output output] [--force] [--remove] [--no-encrypt-metadata]
基本的には
pdfveil {encrypt, decrypt} input.pdf
で使用できます。
以下オプションの説明です。
オプション | 説明 |
---|---|
--password, -p | オプションでパスワードを指定します。 省略時はプロンプトで要求します。 |
--output, -o | 保存ファイル名を指定します。 省略時は入力ファイルと同じファイル名になります。 |
--force, -f | 出力ファイルと同じファイルがあった場合に強制上書きします。 |
--remove | 処理後に入力ファイルを削除します。 |
--no-encrypt-metadata | メタデータを暗号化しません。 暗号化時にのみ有効です。 |
テスト
このプロジェクトではテストコードを用意してあります。
pytest
を用いたテストで機能を保証しています。
コントリビュートする際は、こちらのテストコードの作成もお願いします。
おわりに
開発期間は約3日間ですが、今年の一つの目標であったツールを開発を達成できたので良かったです。ただ、現状開発者目線からみても使いづらいことや使用用途が限られているので、今後拡張していけたらと思っています。
興味がある方はぜひ一緒に開発しましょう。