2017/10/26

[java]ASN.1をデコードするライブラリを探す

急に、AndroidでASN.1をデコードしたくなった。
人生は唐突だ。


OpenSSLのコマンドでダンプ出来た気がするのだが、どうもOpenSSLではASN.1の一部しかサポートしていないらしい。
今回読みたいデータがどうなのかわからないけど、二度手間は避けたいところだ。
https://stackoverflow.com/questions/5964269/asn-1-encoding-decoding

Androidの標準にはないような気がするので、Javaで検索した。
Parsing ASN.1 binary data with Java - Stack Overflow

ASN1InputStreamというclassがあるらしい。
親切にサンプルソースへのリンクも載っていて、org.bouncycastle.asn1たちをimportしている。


ここまでは分かったのだが、Android StudioにASN1InputStreamと書いても、いつものようにAlt+Enterで自動的に対処してくれなかった。
ということは、外部JARなどを追加しないといけないのだろう。

それはわかるのだが、これからどうしたらよいのだろう?


こちらが本家だと思われる。
The Legion of the Bouncy Castle Java Cryptography APIs

latest releasesページにJARファイルがあるので、それを使えばよいのか。


それはそれでよさそうだが、StackOverflowに貼ってあったサンプルソースのリンク先を見てみると、ディレクトリ構造?の先頭が「Maven-Central」になっている。
そういえば、pyCharmなんかでは、ライブラリを検索して追加する機能があったけれども、AndroidStudioにも同じようなものがあるかもしれない。

これか。

image

「bouncycastle」で検索すると、大量に出てきた・・・。
たぶん、mavenのこんなページと同じ感じで出てきているんではなかろうか。
https://mvnrepository.com/artifact/org.bouncycastle

bouncycastleのドキュメントページのこちらにasn.1があったから、今回は「provider」というやつを使えばよいのだろう。
latest releasesでいえばこれか。


ただ、ここまでわかっても、まだDependencyのところで絞り込み方がわからん。。。
「org.bouncycastle:bcprov-jdk15on:1.58」でよい気がするのだが、自信はない。
とりあえず追加してやると、ASN1InputStreamをAlt+Enterでimportしてくれたが、それでも自信が持てない。。。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。