JunkBox_Lib++ (for Windows) 1.10.1
|
#include "asn1_tool.h"
Go to the source code of this file.
Functions | |
int | skip_DER_node (Buffer param, unsigned char node, int ls, int *lp) |
Buffer | node2DER (Buffer pt, unsigned char node) |
Buffer | int2bin_DER (long int n) |
long int | bin2int_DER (Buffer buf) |
int | get_size_toDER (Buffer pt, unsigned char node) |
tDER * | DER_parse (tDER *der, Buffer *buf) |
void | _DER_parse_children (tDER *der, Buffer *buf) |
int | set_DER_node (tDER *der, unsigned char *buf) |
int | get_DER_size (unsigned char *buf, int *valsz) |
void | print_tDER (FILE *fp, tDER *pp) |
Definition at line 255 of file asn1_tool.cpp.
References _DER_parse_children(), add_DER_node, Buffer::buf, del_DER_node, free_Buffer(), get_DER_size(), JBXL_ASN1_CNSTRCTD, new_DER_node, set_DER_node(), and Buffer::vldsz.
Referenced by _DER_parse_children(), and DER_parse().
long int bin2int_DER | ( | Buffer | buf | ) |
Definition at line 163 of file asn1_tool.cpp.
References Buffer::buf, OFF, ON, and Buffer::vldsz.
Referenced by asn1_print_tag_value().
tDER* DER_parse(tDER* der, Buffer* buf)
DER形式のバイナリをパースして,tDER (tTree) 形式のツリー構造に格納する
der | 生成したツリー構造を繋げるツリー.NULLなら新規のツリーを作る(トップのノードは JBXL_ASN1_ANCHOR) |
buf | 解析を行う DER形式のバイナリー |
NULL以外 | 木構造 tDER のトップへのポインタ. |
NULL | 処理不能. |
Definition at line 235 of file asn1_tool.cpp.
References _DER_parse_children(), Buffer::buf, get_DER_size(), JBXL_ASN1_ANCHOR, JBXL_STATE_ANCHOR, new_DER_node, and Buffer::vldsz.
int get_DER_size | ( | unsigned char * | buf, |
int * | valsz ) |
int get_DER_size(unsigned char* buf, int* valsz)
DER形式のバイナリ buf に格納されている最初のデータの,全体の長さとノード値の長さを返す.
返された値は計算上の値であり,bufがそれだけのデータを持っていない可能性もある
[in] | buf | 解析を行う DER形式のバイナリー |
[out] | valsz | ノード値のデータの長さを格納する変数.NULLなら計算しない. |
val | ノード値のデータの長さ |
Definition at line 325 of file asn1_tool.cpp.
Referenced by _DER_parse_children(), DER_parse(), and set_DER_node().
int get_size_toDER | ( | Buffer | pt, |
unsigned char | node ) |
int get_size_toDER(Buffer pt, unsigned char node)
データをDER形式に変換した場合の長さを計算する. 整数 JBXL_ASN1_INT の場合は,先に int2bin_DER() でバイナリ化しておかなければならない.
pt | 計算対象のデータ. |
node | データ形式のノード.JBXL_ASN1_INT, JBXL_ASN1_SEQ, JBXL_ASN1_BIT をサポート.デフォルト動作は JBXL_ASN1_SEQ |
Definition at line 198 of file asn1_tool.cpp.
References JBXL_ASN1_BIT, and Buffer::vldsz.
Referenced by node2DER().
Buffer int2bin_DER | ( | long int | n | ) |
Buffer int2bin_DER(long int n)
整数を DER形式のバイナリに変換する.ただし,INTノードは付けない.
n | 変換する整数値 |
Definition at line 129 of file asn1_tool.cpp.
References Buffer::buf, make_Buffer(), and Buffer::vldsz.
Buffer node2DER(Buffer pt, unsigned char node)
データを DER形式に変換する. 現在は JBXL_ASN1_INT, JBXL_ASN1_SEQ, JBXL_ASN1_BIT のみをサポート.
pt | 変換するデータ. JBXL_ASN1_BIT は 8bit区切りのみ対応. |
node | データ形式のノード.JBXL_ASN1_INT, JBXL_ASN1_SEQ, JBXL_ASN1_BIT をサポート.デフォルト動作は JBXL_ASN1_SEQ |
Definition at line 70 of file asn1_tool.cpp.
References Buffer::buf, get_size_toDER(), JBXL_ASN1_BIT, JBXL_ASN1_INT, make_Buffer(), and Buffer::vldsz.
void print_tDER | ( | FILE * | fp, |
tDER * | pp ) |
void print_tDER(FILE* fp, tDER* pp)
tDERツリーの表示.ポインタ pp以降の全てのノードを fp に出力する.
fp | 出力するファイルへのポインタ.NULLの場合は stderr |
pp | 表示を開始するノードへのポインタ. |
///////////////////////////////////////////// 最初の行はアンカー
04 05 69 73 65 6b 69 [04] UNIVERSAL PRIMITIVE OCTET_STRING 7, 5 : "iseki" 7: 全体長 5: iseki の長さ
[ID] CLASS PRIMITIVE/CONSTRUCTED TAG/(num) data_size, contents_size : contents
Definition at line 375 of file asn1_tool.cpp.
References asn1_print_id(), asn1_print_tag_value(), and print_tDER().
Referenced by print_tDER().
int set_DER_node | ( | tDER * | der, |
unsigned char * | buf ) |
int set_DER_node(tDER* der, unsigned char* buf)
DER形式のバイナリ buf に格納されている最初のデータを tDER ツリーの最期に格納する.
der | 格納先の tDER ツリー |
buf | 格納との tDER形式のバイナリー |
Definition at line 298 of file asn1_tool.cpp.
References get_DER_size(), and set_Buffer().
Referenced by _DER_parse_children().
int skip_DER_node | ( | Buffer | param, |
unsigned char | node, | ||
int | ls, | ||
int * | lp ) |
int skip_DER_node(Buffer param, unsigned char node, int ls, int* lp)
ノードオブジェクト paramの中の ls の位置から[ノード(node)]と[ノード値の長さ]を スキップして,[ノード値]の位置(return値)とそのノード値の長さ *lp を返す.
param | ノードオブジェクト全体 | |
node | 現在のノード(確認のために指定) | |
ls | ノードオブジェクト全体内での操作開始点 | |
[out] | lp | 関数終了時に,そのノードのノード値の長さが格納される.値は指定しない. |
Definition at line 34 of file asn1_tool.cpp.
References Buffer::buf.