DroidKaigi2017で予想しておきながら、SecretKeySpecは今回変更がありませんでした。すいません……(でもなくて良かった……)。
とはいえそれだけで終わらせるのはひどいなと思ったので、今回のAndroid O Preview 1でのSecretKey周りの変更点をざっと記述していきます。
API Difference
URLがわかりにくいですが、すでにAnroid O Preview 1のAPI Differencesは公開されています。
API Differences between 25 and o-dp1
SecretKeySpecの変更について
ありません(謝罪)。代わりに同パッケージ内にあったPBEParameterSpec
のコンストラクタに変更があります。鍵アルゴリズム(AlgorithmParameterSpec
)が設定できるようになったことと、その設定したアルゴリズムを取得するためのメソッドが追加されています。
その他SecretKey周りの変更について
SecretKey
にDestroyable
インターフェースが追加されました(あれ、いままでありませんでしたっけ?)。
Destroyableインタフェースはその名のとおり破棄まわりのインターフェースで、これによってAndroid Oからは明示的に破棄可能なステータスを伝えるisDestroyed()
と、破棄処理であるdestroy()
の実装が必要となります。
SecretKey | Android Developers
SecretKeyFactory
からkeySpecを取得する際のgetKeySpec()
において、鍵仕様の指定部分にワイルドカードがつきました。正直に言うと知識疎いので理由はわかりません……。PBEParameterSpecのアルゴリズム追加に伴うワイルドカード対応なんでしょうか?
SecretKeyFactory | Android Developers
この変更はSecretKeyFactorySpi
のgetKeySpec()
も同様です。
まとめ
SecretKeySpec自体の変化はありませんでした。代わりにAndroid界隈ではあまり見受けられなかった(経験談)PBEParameterSpecがコンストラクタでアルゴリズムを指定できるようになったのは、この記事を書くにあたって調べた肌感だと大きいように感じました。
いろいろあやふやな内容になってしまったので、編集リクエストやコメントでのツッコミなど、お待ちいたしております!