OID は、ツリーのような構造を表す方法のようです。
たとえば、1.3.6.1 は iso(1).org(3).did(6).internet(1) です。
最も一般的に使用されているエンコード方式は BER のようですが、最初の 2 桁のエンコードについて混乱しています。最初の 2 桁が 1 バイトにエンコードされるのはなぜですか。また、次のようになるのはなぜですか。
int first_digit = first_byte / 40;
int second_byte = first_byte % 40;
最初の 2 バイトは常に小さい数値であり、したがって 1 バイトに簡単に「格納」できると想定されていますか? なら、それは理解できます。
しかし、なぜマジック ナンバー 40 を使用するのでしょうか。なんで40?
例えば。上記の 1.3.xxx の場合の最初のバイトは 43 としてエンコードされます。