質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

Q&A

解決済

1回答

1604閲覧

javaで復号化のためにsecring.gpgを読み込む

ikjmyh

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

0グッド

0クリップ

投稿2020/03/23 02:11

前提・実現したいこと

最終的に実現したいこと
gpgで生成した鍵を使いツールで暗号化したファイルを"javaを使って自動で復号化したい"。

今回の質問は上記を実現するためにライブラリを使いsecring.gpgを読み込みたいです。
こうやったら読み込めるというようなやり方をご存じの方がいれば教えてください。

発生している問題・エラーメッセージ

コンストラクター PGPSecretKeyRing(InputStream) は未定義です

該当のソースコード

java

1package decrypt; 2 3import java.io.BufferedReader; 4import java.io.File; 5import java.io.FileInputStream; 6import java.io.FileReader; 7import java.io.IOException; 8import java.io.InputStream; 9import java.util.Iterator; 10import java.util.List; 11 12import org.bouncycastle.openpgp.PGPSecretKeyRing; 13import org.bouncycastle.openpgp.PGPUtil; 14 15 16public class gpgfileread { 17 18 public static void main(String[] args) throws IOException { 19 20 FileInputStream fis = new FileInputStream("secring.gpg"); 21 InputStream is = PGPUtil.getDecoderStream(fis); 22 PGPSecretKeyRing keyRing = new PGPSecretKeyRing(is); 23 is.close(); 24 25 printUserIDs(keyRing);//ここまで正常終了したら復号化の処理を追加していく予定 26 27 } 28 public static void printUserIDs(PGPSecretKeyRing keyR) { 29 Iterator it = keyR.getSecretKey().getUserIDs(); 30 while(it.hasNext()) { 31 System.out.println(it.next()); 32 } 33 } 34 35}

試したこと

読み込んだsecring.gpgをリスト型に変更して試してみたのですがうまく読み込めませんでした。

補足情報(FW/ツールのバージョンなど)

以下のブログや質問を参考に試行錯誤しています。
https://mdgw.hateblo.jp/entry/20080213/1202921956
https://teratail.com/questions/19371
https://borelly.net/cb/docs/javaBC-1.4.8/pg/org/bouncycastle/openpgp/PGPSecretKeyRing.html

バージョンなど
eclipse 4.11.0
java 8
参照ライブラリー
bcpg-jdk15on-164.jar
bcprov-jdk15on-164.jar

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

参照したブログの頃から関数の仕様に変更があったようです。
変更後の仕様に合わせて以下のように修正して動かすことができました。
FileInputStream fis = new FileInputStream("secring.gpg");
InputStream is = PGPUtil.getDecoderStream(fis);
KeyFingerPrintCalculator FP_CALC = new BcKeyFingerprintCalculator();//この行を追加しました。
PGPSecretKeyRing keyRing = new PGPSecretKeyRing(is,FP_CALC);//引数を追加しました。
is.close();

投稿2020/03/25 06:37

ikjmyh

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問