あなただけ(などINTEGER、SEQUENCEなど)、ベースASN.1タイプを含むデータ構造をデコードしていない限り、あなたはデコーダにトップレベルASN.1データ構造のオブジェクトを渡す必要があります。そのようにして、デコーダは、(BER/DER/CERシリアライゼーションのTLVタプルの)カスタムタグと、データ構造オブジェクトに存在する同じタグとを一致させることができます。例:
custom_int_type = Integer().subtype(implicitTag=Tag(tagClassContext, tagFormatSimple, 40))
custom_int_instance = custom_int_type.clone(12345)
serialization = encode(custom_int_instance)
# this will fail on unknown custom ASN.1 type tag
custom_int_instance, rest_of_serialization = decode(serialization)
# this will succeed as custom ASN.1 type (containing tag) is provided
custom_int_instance, rest_of_serialization = decode(serialization, asn1Spec=custom_int_type)
ここにはpyasn1 documentation on decodersへのリンクがあります。あなたが最初のオブジェクトのpyasn1/Pythonの木にあなたの文法を有効にする必要がありpyasn1デコーダにASN.1文法を渡すために
。それは時々asn1lateツールで自動化できる1回限りの操作です。
私の他の懸念は、あなたはおそらく、あなたのシリアライズされたデータ(5つのオクテット)の一部を読んでいるということです。データが「不定長符号化モード」を使用してシリアル化された場合、有効な操作になる可能性があります。そうしないと、デコーダが不十分な入力で失敗する可能性があります。
カスタム.asnファイルを使用してエンコードできますか?ちょっと 何か:decoder.decode(VAR1、asn1Spec = 'mycustomASNfile')VAR1 = binary_file.read(190)以前にファイル.asn私のカスタムの "ASNルール/構造" 次エンコードされたファイルから? (BERシリアル化)、または.asnファイルを.pyに変換する必要がありますか? はいの場合は適切な構文を教えてください。 あなたの助けを求めるthyx ^^ –
.asn1ファイルをpyasn1/Pythonクラスに変換する必要があります。これは、[asn1late](https://github.com/kimgr/asn1ate)ツールで処理できる1回限りの操作です。 –