नोट
यह प्रस्ताव वैसा लागू नहीं किया गया था, हालांकि, ECIES लंबे और छोटे निर्माण संदेश (प्रस्ताव 152 और 157) विस्तारशील विकल्प क्षेत्रों के साथ डिज़ाइन किए गए थे। आधिकारिक विनिर्देश के लिए Tunnel Creation ECIES विनिर्देश देखें।
अवलोकन
I2NP टनल निर्माण रिकॉर्ड्स में विकल्पों के लिए एक लचीला, विस्तारशील तंत्र जोड़ें, जो टनल निर्माण और टनल निर्माण उत्तर संदेशों में निहित होते हैं।
प्रेरणा
कुछ अस्थायी, अदस्तावेजी प्रस्ताव आ रहे हैं जो टनल निर्माण संदेश में विकल्प या विन्यास को सेट करना चाहते हैं, ताकि टनल का निर्माता कुछ पैरामीटर प्रत्येक टनल हॉप को पास कर सके।
TBM में 29 अव्यवस्थामुक्त बाइट्स हैं। हम भविष्य के सुधारों के लिए लचीलापन बनाए रखना चाहते हैं, लेकिन साथ ही स्थान का बुद्धिमत्ता से उपयोग करना चाहते हैं। ‘मैपिंग’ संरचना का उपयोग करने से कम से कम 6 बाइट्स प्रति विकल्प (“1a=1b;”) लगेगा। और अधिक विकल्प क्षेत्रों को सख्ती से परिभाषित करने से बाद में समस्याएं हो सकती हैं।
यह दस्तावेज़ एक नए, लचीले विकल्प मैपिंग योजना का प्रस्ताव करता है।
डिज़ाइन
हमें एक विकल्प प्रतिनिधित्व की आवश्यकता है जो सघन और फिर भी लचीला हो, ताकि हम 29 बाइट्स में भिन्न लंबाई के अनेक विकल्प फिट कर सकें। ये विकल्प अभी तक परिभाषित नहीं हैं, और इस समय परिभाषित होने की आवश्यकता नहीं है। “मैपिंग” संरचना का उपयोग न करें (जो कि एक जावा प्रॉपर्टीज ऑब्जेक्ट को एन्कोड करती है), यह बहुत ही बर्बादी है। प्रत्येक विकल्प और लंबाई को इंगित करने के लिए एक संख्या का उपयोग करें, जो कि एक सघन फिर भी लचीला एन्कोडिंग परिणाम देगा। विकल्पों का पंजीकरण हमारे विनिर्देशों में संख्या द्वारा होना चाहिए, लेकिन हम प्रयोगात्मक विकल्पों के लिए एक रेंज भी आरक्षित करेंगे।
विनिर्देश
प्रारंभिक - नीचे कई विकल्प वर्णित हैं।
यह केवल तभी उपस्थित होगा जब फ्लैग्स (बाइट 184) में बिट 5 को 1 पर सेट किया हो।
प्रत्येक विकल्प एक दो बाइट विकल्प संख्या और लंबाई है, जिसके बाद लंबाई के बाइट्स के विकल्प मान होते हैं।
विकल्प बाइट 193 से शुरू होते हैं और कम से कम अंतिम बाइट 221 तक चलते हैं।
विकल्प संख्या/लंबाई:
दो बाइट्स। बिट्स 15-4 12-बिट विकल्प संख्या हैं, 1 - 4095। बिट्स 3-0 उस विकल्प मूल्य बाइट्स की संख्या है जो अनुसरण करना है, 0 - 15। एक बूलियन विकल्प में शून्य मूल्य बाइट हो सकते हैं। हम अपने विनिर्देशों में विकल्प संख्याओं का एक रजिस्ट्री बनाए रखेंगे, और प्रयोगात्मक विकल्पों के लिए एक रेंज भी परिभाषित करेंगे।
विकल्प मूल्य 0 से 15 बाइट्स है, जिसे उस आवश्यकता द्वारा व्याख्या की जाएगी जो उस विकल्प की आवश्यकता है। अज्ञात विकल्प संख्या को अनदेखा किया जाना चाहिए।
विकल्प 0/0 के विकल्प संख्या/लंबाई के साथ समाप्त होते हैं, अर्थात दो 0 बाइट्स। शेष 29 बाइट्स, यदि कोई हो, को सामान्य अनुसार रैंडम पैडिंग से भरा जाना चाहिए।
यह एन्कोडिंग हमें 14 0-बाइट विकल्पों के लिए स्थान देती है, या 9 1-बाइट विकल्पों के लिए, या 7 2-बाइट विकल्पों के लिए। एक विकल्प यह होगा कि केवल विकल्प संख्या/लंबाई के लिए एक बाइट का उपयोग करें, शायद विकल्प संख्या (अधिकतम 32) के लिए 5 बिट्स और लंबाई (अधिकतम 7) के लिए 3 बिट्स के साथ। इससे क्षमता 28 0-बाइट विकल्पों, 14 1-बाइट विकल्पों, या 9 दो-बाइट विकल्पों तक बढ़ जाएगी। हम इसे परिवर्तनशील भी बना सकते हैं, जहां 5-बिट विकल्प संख्या 31 का मतलब है कि विकल्प संख्या के लिए 8 और बिट्स पढ़ें।
यदि टनल हॉप को विकल्पों को निर्माता को वापस लौटाना पड़ता है, तो हम टनल निर्माण उत्तर संदेश में उसी प्रारूप का उपयोग कर सकते हैं, कुछ जादुई संख्या के द्वारा चिह्नित कुछ बाइट्स के साथ प्रस्तुत (क्योंकि हमारे पास विकल्पों की उपस्थिति का संकेत देने के लिए परिभाषित ध्वज बाइट नहीं है)। TBRM में 495 अतिरिक्त बाइट्स हैं।
नोट्स
ये परिवर्तन टनल निर्माण रिकॉर्ड्स में होते हैं, और इसलिए सभी निर्माण संदेश प्रकारों में उपयोग किए जा सकते हैं - टनल निर्माण अनुरोध, परिवर्तनशील टनल निर्माण अनुरोध, टनल निर्माण उत्तर, और परिवर्तनशील टनल निर्माण उत्तर।
माइग्रेशन
टनल निर्माण रिकॉर्ड्स में अनकहा स्थान यादृच्छिक डेटा से भरा जाता है और वर्तमान में अनदेखा किया जाता है। इस स्थान को बिना माइग्रेशन समस्याओं के विकल्पों में परिवर्तित किया जा सकता है। निर्माण संदेश में, विकल्पों की उपस्थिति ध्वज बाइट में सूचित की जाती है। निर्माण उत्तर संदेश में, विकल्पों की उपस्थिति मल्टी-बाइट जादुई संख्या द्वारा सूचित की जाती है।