2011-12-05 21 views
5

मैं Google टीवी पेयरिंग प्रोटोकॉल के लिए एक गो पैकेज लिख रहा हूं। लेकिन मुझे लगता है कि टीएलएस हैंडशेक के साथ एक समस्या है।Google टीवी पेयरिंग प्रोटोकॉल - एसएसएल हैंडशेक त्रुटि गो (गोलांग)

sock, err := tls.Dial("tcp", "10.8.0.1:9552", &tls.Config{InsecureSkipVerify: true}) 

वह पंक्ति मुझे एक हैंडशेक त्रुटि देता है। सटीक त्रुटि संदेश है: remote error: handshake failure। यदि मैं कर्ल के माध्यम से एक ही मेजबान/बंदरगाह का प्रयास करता हूं, तो यह curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 चेतावनी हैंडशेक विफलता भी देता है।

कोई विचार? क्या Google टीवी क्लाइंट प्रमाण की अपेक्षा कर सकता है? मैंने कहीं भी क्लाइंट प्रमाण की आवश्यकता के लिए कोई संदर्भ नहीं देखा है।

किसी को भी यह पता लगाने में मदद करना चाहता है, यहाँ कोड है: https://github.com/dustywilson/go-polo

README फ़ाइल यह बाहर की जाँच करने के लिए आसान कोड है। आपको अपने Google टीवी बॉक्स के लिए आईपी पता जानना होगा क्योंकि यह एमडीएनएस का उपयोग नहीं करता है। यदि आप (कोई, कोई भी) इसे चलाता है और आपको अलग-अलग परिणाम मिलते हैं, तो मुझे बताएं।

मैं पहले से ही google-tv-remote पर Google टीवी रिमोट कोड से गुजर चुका हूं। एक और उपयोगी एक google-tv-pairing-protocol है जो मैं कर रहा हूं के बराबर जावा/एंड्रॉइड प्रोजेक्ट है। बेशक मैं पहले से ही उस कोड पर डाल दिया है। मुझे लगता है कि यह गो स्वयं (असंभव) के साथ एक समस्या है, गो टीएलएस पैकेज के साथ एक समस्या यह नहीं जानती कि Google टीवी के प्रमाण पत्र को कैसे पढ़ा जाए (मुझे पता है कि यह एक साल पहले एक समस्या थी), या मेरे कोड के साथ एक समस्या (आमतौर पर सबसे अधिक संभावना है, लेकिन मैं इसे देख नहीं रहा हूँ)।

वैसे, मैं इसे लॉजिटेक रेव्यू पर परीक्षण कर रहा हूं और इसमें एक स्व-हस्ताक्षरित SSL प्रमाणपत्र है। यह किसी भी तरह से रूट या संशोधित नहीं है।

मेरा परिणामी कोड निश्चित रूप से खुला स्रोत होगा। सहायता के लिए धन्यवाद।

उत्तर

2

क्लाइंट केर्ट रनटाइम पर जावा रिमोट क्लाइंट द्वारा उत्पन्न होते हैं, और भविष्य के उपयोग के लिए संग्रहीत होते हैं। पर कोड की जाँच करें:

http://code.google.com/p/google-tv-remote/source/browse/src/com/google/android/apps/tvremote/KeyStoreManager.java

आपने अमान्य प्रमाणपत्र में चल रहा हो सकता है। कोड के अनुसार, आपको एक विशिष्ट सीएन की आवश्यकता है।

/* वह नाम देता है जिसका उपयोग किसी नए प्रमाणपत्र में किया जाना चाहिए। * प्रारूप है: "सीएन = किसी भी प्रकार/उत्पाद/उपकरण/मॉडल/अद्वितीय पहचानकर्ता" */

+0

क्या आप कह रहे हैं कि यह मुझे हैंडशेक समय पर क्लाइंट प्रमाण पत्र भेजने की अपेक्षा करता है? यदि ऐसा है, तो यह समझ में आएगा और मुझे आपको भयानक होने के लिए एक पिल्ला खरीदना चाहिए। यदि नहीं, तो मुझे बताएं कि इस संदेश की मेरी समझ में मैं गलत कहां गया था। –

+1

मैंने अभी तक पूरी प्रक्रिया के माध्यम से कदम नहीं उठाया है, लेकिन ऐसा लगता है कि शुरुआती जोड़ी अनुरोध के दौरान SSL आवश्यक है, प्रति: http://code.google.com/p/google-tv-remote/source/browse/src /com/google/android/apps/tvremote/PairingActivity.java#240 – saxman

+0

मैं इसे अभी उत्तर के रूप में फ़्लैग कर रहा हूं। मैंने इसे सत्यापित नहीं किया है, लेकिन यह उपयोगी लगता है। विशेष रूप से ऐसा लगता है कि एक क्लाइंट एसएसएल प्रमाण पत्र की आवश्यकता है, जिसका मैंने उपयोग नहीं किया था। अगर किसी भी तरह से यह मामला नहीं है या कोई बेहतर या अधिक पूर्ण उत्तर के साथ आता है, तो मैं इसे उनके पास बदल दूंगा। लेकिन मैं इनपुट की सराहना करता हूं और इसे अनुत्तरित राज्य में छोड़ने से नफरत करता हूं क्योंकि इसका उत्तर काफी अच्छा हो सकता है, इसलिए ... यहां जाएं। धन्यवाद। –