Recent Changes

2011-09-02
2011-07-07

Latest File Release

bm-asn1 (0.24)2012-10-12 14:45

Wiki Guide

Side Bar

BitMeister ASN.1 library for Java

BitMeister ASN.1 library for Java(以下、BM ASN.1)は、ASN.1構文で規定されたデータ型をJavaクラスにマッピングして、各種の処理を行うためのクラスライブラリです。BM ASN.1には、ASN.1型をJavaクラスで表現するデータ型クラス、ASN.1型に付随する情報をクラスやフィールドに付与するアノテーションインターフェース、ASN.1型データを処理するランタイム処理クラスなどが含まれています。

BM ASN.1は、ASN.1型のデータをできるだけ一般的なJavaオブジェクト(POJO)と同様に扱えるように配慮して設計されています。ASN.1型データを扱うプログラムを簡潔なコードで記述することができ、ASN.1で規定されたプロトコルを扱うシステムの効率的な開発を可能にします。

Overview

BM ASN.1では、ASN.1型定義をクラスの継承関係で表現し、ASN.1型に付随する各種の情報はアノテーションで付与します。ユーザー定義のASN.1型クラスは、ビルトインASN.1型クラスを継承したクラスにいくつかのアノテーションを付与するだけで作成することができ、基本的に特殊なメソッドやフィールドを作成する必要はありません。各ASN.1型クラスには、clone, equals, toStringなどのObjectクラスのメソッドが既に実装されていて、通常のJavaオブジェクトと透過的に扱うことができます。

構造型(SET,SEQUENCE,CHOICE)の各要素は、ASN.1型クラスのフィールドにマッピングします。構造型への値の設定をフィールドへの代入で行えるため、ASN.1型を扱うJavaコードが簡潔に記述できるだけでなく、データ型の不一致をコンパイル時に検出することができます。構造型の要素への値の設定の際に要素名を文字列で指定するASN.1ライブラリでは、指定する要素名のtypo誤りなどが実行時エラーとなるまで分からないことがありますが、そのような誤りも発生しにくくなっています。

  • 現バージョンのBM ASN.1では、
    • 全てのビルトインASN.1型クラス
    • ASN.1モジュールおよびASN.1型のJavaクラスへのマッピング
    • AUTOMATIC TAGS(自動タグ付け指定)を含むデフォルトタグ指定
    • BER(DER) Codec
    • XER Codec
    • ASN.1型データの文字列表示(toString)
などの機能が実装されています。
  • 今後のリリースで、
    • SubType(SIZE, VALUE, WITH COMPONENTS etc.)への対応
    • ASN.1/Java Translator(BM ASN.1コードの自動生成)
などの実装を予定しています。
  • また、
    • 単体テストコードの追加
    • ASN.1型クラス定義の正当性チェックの外部コマンドへの切り出し
    • 不要な機能を抑止し、ライブラリを軽量化する機構の実装
などが行われるかもしれません。


ライブラリの簡単な使い方は、こちらを参照してください。

詳細な解説は、今後アップデートしていく予定です。

Latest File Release

bm-asn1 (0.24)2012-10-12 14:45

Recent Tickets

(empty)