質問
HULFT SquareのPGPコネクターで復号化処理を実行すると「[pgp_decrypt(cryptography/PGP/復号化)]の処理に失敗しました。原因:[java.io.EOFException: premature end of stream in PartialInputStream]」というエラーが発生します。原因と対処方法を教えてください。また、秘密鍵を使用せずパスフレーズのみでGPGファイルを復号することは可能ですか?
回答
このエラーは、復号化処理が異常終了した場合に発生するエラー(PGPOPE0001E)に該当します。以下の点を順番に確認してください。
1. 秘密鍵の確認
- 正しい秘密鍵ファイルが指定されているか
- 秘密鍵のパスが正しいか
2. パスフレーズの確認
- 秘密鍵にパスフレーズが設定されている場合、正しいパスフレーズが指定されているか
3. 暗号化ファイルの確認
- 復号化対象のGPGファイルが改竄されていないか、またはファイルが破損していないか
- ファイルの転送途中でデータが欠損していないか
- ファイルサイズが正常か
サポート窓口環境での検証において、復号対象のGPGファイルに欠損がある場合に同様のエラーが発生することが確認されています。入力ファイルに問題がないかも合わせて確認してください。
【根本原因として特定された事例】
PGPコネクターはGNU Privacy Guard(GnuPG)のみをサポートしています。実際の問題解決事例として、Kleopatraで作成したGPGファイルがHULFT Squareで対応していない暗号方式だったことが根本原因として特定されています。GnuPG以外のツール(例:Kleopatra)でHULFT Squareが対応していない暗号方式を使用して暗号化されたファイルを復号化しようとしている場合は、HULFT Squareの仕様に合わせた暗号方式でGnuPGにより暗号化されたファイルを使用してください。
【秘密鍵を使用せずパスフレーズのみでの復号は可能か】
HULFT SquareのPGPコネクター(復号化処理)では、秘密鍵を使用せずパスフレーズのみで復号することはできません。
PGP暗号化方式の仕組みとして、暗号化対象ファイルを共通鍵で暗号化した後、その共通鍵を公開鍵で暗号化します。復号時には共通鍵を秘密鍵で復号し、その共通鍵でファイルをそれぞれ復号する方式となっています。そのため、復号処理には必ず秘密鍵が必要となります。復号化処理のプロパティ [必須設定] タブ内の [秘密鍵] に秘密鍵ファイルのパスを指定する必要があります。
なお、パスフレーズはGnuPGで秘密鍵に対して設定するものであり、秘密鍵が利用される際に使用するものです。パスフレーズ単独での復号は仕様上サポートされておりません。
補足
- PGPコネクターのメッセージおよび制限事項: https://www.hulft.com/help/ja-jp/HULFTSquare/Content/CN_MPP/CN_message/msg_PGP.htm
- [PGP]復号化: https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Connector/pgp_decrypt.htm
- RSA方式を用いてPGPでの暗号化は可能ですか: https://support.square.hulft.com/hc/ja/articles/9911502214548
- [PGP]暗号化: https://www.hulft.com/help/ja-jp/HULFTSquare/Content/Designer/Connector/pgp_encrypt.htm
コメント
0件のコメント
記事コメントは受け付けていません。