Elasticsearch Searchguardの証明書を作成しようとしています。 1つの要件は、証明書にSANにoid:1.2.3.4.5.5
を含める必要があるということです。私はその証明書を生成するためにGOを使用しています。いくつか試行錯誤した結果、[]byte{0x88, 0x05, 0x2A, 0x03, 0x04, 0x05, 0x05}
をRaw ASN.1バイトとして使用すると、これはSAN内のoid:1.2.3.4.5.5
になります。これらのバイトがどのように値oid:1.2.3.4.5.5
を表すかを理解したいと思います。私はthisを読んだが、私はまだ混乱している。この[]バイトがoid:1.2.3.4.5.5
を表していることを理解できますか?DERバイトを解析するには?
答えて
ほとんどHow does ASN.1 encode an object identifier?
(X.509 = PKIX)SAN拡張の値の符号化をだますこととして、RFC5280で定義されている。この選択の
SubjectAltName ::= GeneralNames
GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
GeneralName ::= CHOICE { // tags implicit
otherName [0] AnotherName,
rfc822Name [1] IA5String,
dNSName [2] IA5String,
x400Address [3] ORAddress,
directoryName [4] Name,
ediPartyName [5] EDIPartyName,
uniformResourceIdentifier [6] IA5String,
iPAddress [7] OCTET STRING,
registeredID [8] OBJECT IDENTIFIER }
、最初のオクテット0x88は、タグ値でありますコンテキスト固有の#8(登録済みIDを意味する)であり、2番目のオクテット0x05は0x2A 0x03 0x04 0x05 0x05としてエンコードされた値の長さです。
BER符号化をこの値ので、それはKaliski文書にオブジェクト識別子の下でエンコーディングのセクションを見てデコードするために、オブジェクト識別子です。プリミティブ。
最初のオクテットは、値40 *の値1 +値2を有する:コンテンツのオクテットは 値1は、...、 完全なオブジェクト識別子の部品の整数値を表す値Nここで、以下の通りです。 value1は0,1,2の値に限定されているため、value2は であり、value1が0または1の場合は0〜39に制限され、 X.208によれば、nは常に2以上です。)
次のオクテットがあれば、値3、...、valuenをエンコードします。各値は可能な限り 桁の数字と、 を除いて各オクテットの最上位ビットが "1"に設定されたコード化された基底128、最上位桁からなります。
残りオクテットのすべてがそれらのmost-を持たない第1の値のオクテット0x2Aは小数42及び* 1 42 = 40 + 2であるので、OIDの最初の2つの成分は1と2であります3 4 5 5.コンポーネント1 2 3 4 5 5で構成されるOIDは、通常の短縮表記1.2.3.4.5.5です(しかし、Kaliskiに示されているように他の同等の表記があります) 。
ちなみに、そのOIDは、ISO3166数値コード3の国のメンバー体の下になければならず、そのような国は存在しないため、無効です。
- 1. 10進文字列をバイトに解析する
- 2. バイト配列のUnicodeの解析
- 3. DERエンコーディングルールを使用してASN.1デコーダを使用してデータを解析する方法は?
- 4. ZIPバイト[]を解凍してバイトを解凍する
- 5. C++でPEMをDERに変換する
- 6. 解析/解析とは何ですか?
- 7. XMLをPHPに解析するには?
- 8. ログファイルをJSONに解析するには
- 9. 整数を2バイトに分解する
- 10. Python - "0xDE 0xAD 0xBE 0xEF"形式の文字列をバイトで解析する
- 11. LLVM IRを解析するには
- 12. ブラックベリーでXMLを解析するには?
- 13. JQueryでJSONを解析するには
- 14. AutoHotKeyでHTMLを解析するには?
- 15. プログレッシブJPGを解析するには
- 16. アンドロイドでJSONを解析するには?
- 17. C++でコマンドツリーを解析するには?
- 18. ブラウザでYAMLを解析するには?
- 19. ルアでjsonを解析するには?
- 20. PhoneGapでJSONを解析するには?
- 21. PHPでHTMLを解析するには?
- 22. JsonArrayを解析するには?
- 23. json.org.XMLTokenizerでXMLを解析するには?
- 24. このxmlを解析するには?
- 25. エリクサーのDateTimeを解析するには?
- 26. (Pythonで)コードを解析するには?
- 27. javaでテキストファイルを解析するには?
- 28. ローカル解析サーバーをクラウド解析サーバーに同期する
- 29. Jsoupの解析 - 複数のリンクを同時に解析する
- 30. 解析中に解析エラーを検出する
@ dave_thompson_085の説明に感謝します! – codefx