मैं Elasticsearch Searchguard के लिए प्रमाण पत्र बनाने का प्रयास कर रहा हूं। एक आवश्यकता यह है कि प्रमाण में SAN में oid:1.2.3.4.5.5
शामिल होना चाहिए। मैं उस प्रमाण को उत्पन्न करने के लिए जाओ का उपयोग कर रहा हूं। कुछ परीक्षण और त्रुटि के बाद मुझे पता चला है कि अगर मैं []byte{0x88, 0x05, 0x2A, 0x03, 0x04, 0x05, 0x05}
कच्चे 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
का प्रतिनिधित्व कैसे करता है?डीईआर बाइट्स को कैसे पार्स करें?
उत्तर
अधिकतर धोखा How does ASN.1 encode an object identifier?
(509 = PKIX) सैन एक्सटेंशन के मूल्य की एन्कोडिंग के रूप में 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 (जिसका अर्थ है पंजीकृत आईडी), और आपका दूसरा ऑक्टेट 0x05 मान की लंबाई है, जिसे 0x2A 0x03 0x04 0x05 0x05 के रूप में एन्कोड किया गया है। चूंकि यह मूल्य एक वस्तु पहचानकर्ता है, यह Kaliski दस्तावेज़ में ऑब्जेक्ट पहचानकर्ता के तहत एन्कोडिंग पर अनुभाग देखें डिकोड करने के लिए:
संख्या एन्कोडिंग। आदिम।
पहले ऑक्टेट मान 40 * मान 1 + मान 2 है: सामग्री ओक्टेट्स इस प्रकार है, जहां मान 1, ..., पूरा ऑब्जेक्ट पहचानकर्ता में घटकों के पूर्णांक मूल्यों निरूपित valuen हैं। (यह स्पष्ट नहीं है, क्योंकि मान 1 मान 0, 1, और 2 तक सीमित है; मान 2 0 से 39 तक सीमित है जब मान 1 0 या 1 है, और X.208 के अनुसार, n हमेशा कम से कम 2 होता है ।)
निम्नलिखित ऑक्टेट्स, यदि कोई है, तो मान 3 को एन्कोड करें ..., वैलेंटाइन। प्रत्येक मान को बेस 128 एन्कोड किया गया है, सबसे महत्वपूर्ण अंक पहले, अंकों जितना संभव हो सके, और को छोड़कर प्रत्येक ऑक्टेट का सबसे महत्वपूर्ण बिट मूल्य के एन्कोडिंग सेट में "1."
पहला मान ओकटेट 0x2A दशमलव 42 और 42 = 40 * 1 + 2 है, तो OID के पहले दो घटकों 1 कर रहे हैं और 2. शेष ओक्टेट्स की सभी उनके most- नहीं है महत्वपूर्ण बिट सेट ताकि वे प्रत्येक एक घटक को एन्कोड कर सकें: 3 4 5 5. घटकों से युक्त ओआईडी 1 2 3 4 5 5 सामान्य शॉर्टंड नोटेशन 1.2.3.4.5.5 में है (लेकिन कलिस्की में दिखाए गए अन्य समकक्ष नोटेशन हैं) ।
संयोग से, कि ओआईडी अवैध है क्योंकि इसे आईएसओ 3166 संख्यात्मक कोड 3 के साथ देश के सदस्य-निकाय के अधीन होना होगा और ऐसा कोई देश नहीं है।
- 1. आरएसए डीईआर
- 2. डीईआर प्रारूप
- 3. xml को हैशपैप में कैसे पार्स करें?
- 4. सी हेडर फ़ाइल को कैसे पार्स करें?
- 5. इस OFX फ़ाइल को कैसे पार्स करें?
- 6. एक्सएएमएल पार्स त्रुटियों को कैसे हल करें?
- 7. PHP को PHP में कैसे पार्स करें?
- 8. कैसे बाइट्स
- 9. संरचना को बाइट्स में कनवर्ट करें
- 10. बाइट्स
- 11. बाइट्स
- 12. 2 बाइट्स को
- 13. जावा बाइट्स को समझना
- 14. बाइट्स
- 15. JSON में बाइट्स को एन्कोड कैसे करें? json.dumps() एक टाइपरर
- 16. बाइट्स की स्ट्रीम को दूसरे एन्कोडिंग में कैसे परिवर्तित करें?
- 17. 4 बाइट्स को एक स्विफ्ट फ्लोट में कैसे परिवर्तित करें?
- 18. जावा में बाइट्स का पूरक कैसे करें?
- 19. बाइट्स
- 20. जावा: बाइट्स की सूची बाइट्स की सरणी में कनवर्ट करें
- 21. एएसएन.1 डीईआर ने निजी कुंजी
- 22. बाइट्स
- 23. पार्स को सिंक्रोनस को खोजने/सहेजने के लिए कैसे करें?
- 24. फ़ाइलों को शून्य बाइट्स
- 25. मैं जावा में एक डीईआर एन्कोडेड स्ट्रिंग कैसे डीकोड करूं?
- 26. एक NSURL mailto को पार्स करें
- 27. बाइट्स
- 28. रूबी बाइट्स/बाइनरी को कैसे संभालता है?
- 29. बाइट्स
- 30. पायथन: जेएसओएन स्ट्रिंग को पार्स करते समय टूटा हुआ यूनिकोड बाइट्स
स्पष्टीकरण @ dave_thompson_085 के लिए बहुत बहुत धन्यवाद! – codefx