- PR -

SunJCEでAESのSecretKeyFactoryが生成できない

1
投稿者投稿内容
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2005-09-16 17:18
不思議に思ったので投稿します。


Windows版JRE1.4.2_09およびJRE1.5.0_04にて(外部の暗号化プロバイダは未導入)
下記のコードを実行すると、例外が送出されます。

コード:
SecretKeyFactory skf = SecretKeyFactory.getInstance("AES");

例外:
java.security.NoSuchAlgorithmException: Algorithm AES not available
at javax.crypto.SunJCE_b.a(DashoA12275)
at javax.crypto.SecretKeyFactory.getInstance(DashoA12275)

ドキュメントには、JRE1.4のSunJCEプロバイダはAESのSecretKeyFactory
生成をサポートしているらしい記述があります。
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jce/JCERefGuide.html#AppA

ちなみに、AES指定によるCipher生成やKeyGeneratorの生成には成功しますし、
それを用いた暗号化/復号化は実行できています。

…なぜSecretKeyFactoryの生成だけ失敗するのか、ご存知の方はいらっしゃいませんでしょうか?
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2005-09-16 18:30
すみません、自己解決しました^^;

AES共通鍵を作成する際にはSecretKeyFactoryは不要でした。
SecretKeySpecのコンストラクタを呼び出すことで、AESのSecretKey
オブジェクトが作成できました。

SecretKeySpec sks = new SecretKeySpec(param,"AES");

#SecretKeySpec implements SecretKey ということに気が付かなかった…
#でも、ということはそもそもSecretKeyFactory自体をdeprecated
#扱いにすべきでは?と思いましたが・・・
1

スキルアップ/キャリアアップ(JOB@IT)