こんにちは、RSA 公開鍵で暗号化されたファイルを復号化しようとしています。pubkey に対応する 3072 ビットの RSA 秘密鍵があります。このファイルには、キーの PKCS8 エンコーディングの raw バイトが含まれています。私はバイト配列rsa_privに持っています。
public void decrypt()
{
try
{
SecretKeySpec sk=new SecretKeySpec(rsa_priv,"RSA/EBC/PKCS8");
Cipher dec = Cipher.getInstance("RSA");
dec.init(Cipher.DECRYPT_MODE, sk,new IvParameterSpec(iv));
//OAEPWithSHA-512AndMGF1Padding
byte temp[];
temp=dec.doFinal(sess);
String t=temp.toString();
System.out.println("Session key is:"+ t);
//session=dec(sess,rsa_priv);OAEPWithSHA-256AndMGF1Padding
}
catch (Exception e)
{
System.out.println("Exception occured:"+ e);
}
}
このコードを実行すると、次のようになります
Exception occured:java.security.InvalidKeyException: No installed provider
supports this key: javax.crypto.spec.SecretKeySpec
これらを輸入しました
import java.io.*;
import javax.crypto.*;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import javax.crypto.KeyGenerator;
import java.security.*;
import javax.crypto.SecretKey;
import javax.crypto.spec.OAEPParameterSpec;
誰か私を助けてください