Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 528DA18233 for ; Sun, 28 Jun 2015 15:12:07 +0000 (UTC) Received: (qmail 43848 invoked by uid 500); 28 Jun 2015 15:12:06 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 43787 invoked by uid 500); 28 Jun 2015 15:12:06 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 43777 invoked by uid 99); 28 Jun 2015 15:12:06 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 28 Jun 2015 15:12:06 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 6DBD6D0C85 for ; Sun, 28 Jun 2015 15:12:06 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.047 X-Spam-Level: X-Spam-Status: No, score=0.047 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KAM_ASCII_DIVIDERS=0.8, RP_MATCHES_RCVD=-0.653] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=velox.ch header.b=Mtkrlulr; dkim=pass (2048-bit key) header.d=velox.ch header.b=OlVdyJ4B Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id qDeQtDj1w9qm for ; Sun, 28 Jun 2015 15:12:04 +0000 (UTC) Received: from fornix.velox.ch (fornix.velox.ch [85.25.46.13]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id 564C220926 for ; Sun, 28 Jun 2015 15:12:04 +0000 (UTC) Received: from cortex.velox.ch (77-57-164-164.dclient.hispeed.ch [77.57.164.164]) (authenticated bits=0) by fornix.velox.ch (8.14.9/8.14.9/2.2) with ESMTP id t5SFBuCj029909 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sun, 28 Jun 2015 17:11:57 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=velox.ch; s=fornix-727e; t=1435504317; bh=37+mbvp7eaRyhdwRE2apb/uMcq0e/WmpA7LOsq/whoU=; h=From:Subject:To:References:Date:In-Reply-To; b=MtkrlulrSV0cI87YqTuJLGm9z7Kxx5OkhQKzwg/9GIYh//H8rhUginuvCK20hPPOo kVNnwgRqORCP5xPJF3j4LYRl2MTXkumdyBgJ1eq8D3aXUspvJ1F6wUciQdemcz6ovE CKQovqP+IyWdO1O3a6x+ZvFdfTY00i7U3ceS1CfavGa0on/o/Bx/Gd0iGVkcnYCIy4 hi17EJiPllagdoI3GUB27N42qj6cIJyQMFjDLe+3W98y3nWh1xzLAHfxJLrnhpbWGq NNeXJhszzAxPB44pDWA7o8XX9L1ZgF6ner/66elt9eDz7eqKOfjn7cwUaTQI2SeZf4 USdwt35hCD1cw== From: Kaspar Brand DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=velox.ch; s=cortex-8a58; t=1435504313; bh=37+mbvp7eaRyhdwRE2apb/uMcq0e/WmpA7LOsq/whoU=; h=From:Subject:To:References:Date:In-Reply-To; b=OlVdyJ4BOLAdlb1xzFvEPHEHwdkSHBiamGDX2iwIomSL1FWXHYAHBlghh0tKj7xGi 9vah6o7t/ECCPnkh9kcgOie0FBOt5TzyqW7zYAQPntKHWGN5rP9pq4In2r2Qy4tVFl 7bppfnueKxB3HsDUyBfT39GEq3Y6ipSWYBahOI5xJRgYJpG7e32Y/zN7QlFWW9iWyu N/tLLy/XpuWUQJOvlnOYo+AaqPDZlwIWDZv0rRGvEvpsLNcbay140Dtj6yGkdv5rLX 2LMaiNUWbGhP2LFCCQQsYE8PTfweTFVXm3GPY/5YN2MHV5QAjLsg05bBSgJfL1/gFo tOuOQrZJWHfkg== Subject: Re: Using UPN from subjectAltName with SSLUserName To: dev@httpd.apache.org References: <20150618094946.GU18173@redhat.com> <20150619145116.GK18173@redhat.com> <55865FC6.4070802@velox.ch> <20150622083710.GC3448@redhat.com> Message-ID: <55900EBD.4020604@velox.ch> Date: Sun, 28 Jun 2015 17:11:57 +0200 MIME-Version: 1.0 In-Reply-To: <20150622083710.GC3448@redhat.com> Content-Type: multipart/mixed; boundary="------------050308000403060005080002" This is a multi-part message in MIME format. --------------050308000403060005080002 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 22.06.2015 10:37, Jan Pazdziora wrote: > Please find a new patch attached which I hope covers all the > parts you've outlined, for SSL_CLIENT_SAN_OTHER_msUPN_*. Thanks. Your implementation assumes that only a single otherName form (msUPN) needs to be supported, but I would prefer to code it in a somewhat more extensible way. Does the attached patch work for you? As a practical way of demonstrating generic support of otherName forms, I have added the case of the SRVName otherName form (RFC 4985, for things like _carddavs._tcp.example.com, exposed via SSL_SERVER_SAN_OTHER_dnsSRV_n). Kaspar --------------050308000403060005080002 Content-Type: text/plain; charset=UTF-8; name="mod_ssl-san-othername.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mod_ssl-san-othername.diff" SW5kZXg6IG1vZHVsZXMvc3NsL3NzbF9lbmdpbmVfaW5pdC5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IG1vZHVsZXMvc3NsL3NzbF9lbmdpbmVfaW5pdC5jCShyZXZpc2lvbiAxNjg3OTgzKQorKysg bW9kdWxlcy9zc2wvc3NsX2VuZ2luZV9pbml0LmMJKHdvcmtpbmcgY29weSkKQEAgLTM1Miw2 ICszNTIsMTEgQEAgYXByX3N0YXR1c190IHNzbF9pbml0X01vZHVsZShhcHJfcG9vbF90ICpw LCBhcHJfcG8KIAogICAgIGluaXRfZGhfcGFyYW1zKCk7CiAKKyAgICBpZiAoT0JKX3R4dDJu aWQoImlkLW9uLWRuc1NSViIpID09IE5JRF91bmRlZikgeworICAgICAgICAodm9pZClPQkpf Y3JlYXRlKCIxLjMuNi4xLjUuNS43LjguNyIsICJpZC1vbi1kbnNTUlYiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICJTUlZOYW1lIG90aGVyTmFtZSBmb3JtIik7CisgICAgfQorCiAg ICAgcmV0dXJuIE9LOwogfQogCkBAIC0xOTAyLDUgKzE5MDcsNyBAQCBhcHJfc3RhdHVzX3Qg c3NsX2luaXRfTW9kdWxlS2lsbCh2b2lkICpkYXRhKQogCiAgICAgZnJlZV9kaF9wYXJhbXMo KTsKIAorICAgIE9CSl9jbGVhbnVwKCk7CisKICAgICByZXR1cm4gQVBSX1NVQ0NFU1M7CiB9 CkluZGV4OiBtb2R1bGVzL3NzbC9zc2xfdXRpbF9zc2wuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBt b2R1bGVzL3NzbC9zc2xfdXRpbF9zc2wuYwkocmV2aXNpb24gMTY4Nzk4MykKKysrIG1vZHVs ZXMvc3NsL3NzbF91dGlsX3NzbC5jCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsMTkgKzI1Miw0 NiBAQCBjaGFyICptb2Rzc2xfWDUwOV9OQU1FX3RvX3N0cmluZyhhcHJfcG9vbF90ICpwLCBY NQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyB2b2lkIHBhcnNlX290aGVyTmFt ZV92YWx1ZShhcHJfcG9vbF90ICpwLCBBU04xX1RZUEUgKnZhbHVlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFTTjFfT0JKRUNUICpvaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXByX2FycmF5X2hlYWRlcl90ICoqZW50cmllcykKK3sK KyAgICBjb25zdCBjaGFyICpzdHI7CisKKyAgICBpZiAoIXZhbHVlIHx8ICFvaWQgfHwgISpl bnRyaWVzKQorICAgICAgIHJldHVybjsKKworICAgIC8qIAorICAgICAqIEN1cnJlbnRseSBz dXBwb3J0ZWQgb3RoZXJOYW1lIGZvcm1zOgorICAgICAqIC0gIm1zVVBOIiAoMS4zLjYuMS40 LjEuMzExLjIwLjIuMyk6IE1pY3Jvc29mdCBVc2VyIFByaW5jaXBhbCBOYW1lCisgICAgICog LSAiZG5zU1JWIiAoMS4zLjYuMS41LjUuNy44LjcpOiBTUlZOYW1lLCBhcyBzcGVjaWZpZWQg aW4gUkZDIDQ5ODUKKyAgICAgKi8KKyAgICBpZiAoKE9CSl9vYmoybmlkKG9pZCkgPT0gTklE X21zX3VwbikgJiYKKyAgICAgICAgKHZhbHVlLT50eXBlID09IFZfQVNOMV9VVEY4U1RSSU5H KSAmJgorICAgICAgICAoc3RyID0gYXNuMV9zdHJpbmdfdG9fdXRmOChwLCB2YWx1ZS0+dmFs dWUudXRmOHN0cmluZykpKSB7CisgICAgICAgIEFQUl9BUlJBWV9QVVNIKCplbnRyaWVzLCBj b25zdCBjaGFyICopID0gc3RyOworICAgIH0gZWxzZSBpZiAoKE9CSl9vYmoybmlkKG9pZCkg PT0gT0JKX3R4dDJuaWQoImlkLW9uLWRuc1NSViIpKSAmJgorICAgICAgICAgICAgICAgKHZh bHVlLT50eXBlID09IFZfQVNOMV9JQTVTVFJJTkcpICYmCisgICAgICAgICAgICAgICAoc3Ry ID0gYXNuMV9zdHJpbmdfdG9fdXRmOChwLCB2YWx1ZS0+dmFsdWUuaWE1c3RyaW5nKSkpIHsK KyAgICAgICAgQVBSX0FSUkFZX1BVU0goKmVudHJpZXMsIGNvbnN0IGNoYXIgKikgPSBzdHI7 CisgICAgfQorfQorCiAvKiAKICAqIFJldHVybiBhbiBhcnJheSBvZiBzdWJqZWN0QWx0TmFt ZSBlbnRyaWVzIG9mIHR5cGUgInR5cGUiLiBJZiBpZHggaXMgLTEsCiAgKiByZXR1cm4gYWxs IGVudHJpZXMgb2YgdGhlIGdpdmVuIHR5cGUsIG90aGVyd2lzZSByZXR1cm4gYW4gYXJyYXkg Y29uc2lzdGluZwogICogb2YgdGhlIG4tdGggb2NjdXJyZW5jZSBvZiB0aGF0IHR5cGUgb25s eS4gQ3VycmVudGx5IHN1cHBvcnRlZCB0eXBlczoKICAqIEdFTl9FTUFJTCAocmZjODIyTmFt ZSkKICAqIEdFTl9ETlMgKGROU05hbWUpCisgKiBHRU5fT1RIRVJOQU1FIChzZWUgcGFyc2Vf b3RoZXJOYW1lX3ZhbHVlIGZvciBjdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1zKQogICovCi1C T09MIG1vZHNzbF9YNTA5X2dldFNBTihhcHJfcG9vbF90ICpwLCBYNTA5ICp4NTA5LCBpbnQg dHlwZSwgaW50IGlkeCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFwcl9hcnJheV9oZWFk ZXJfdCAqKmVudHJpZXMpCitCT09MIG1vZHNzbF9YNTA5X2dldFNBTihhcHJfcG9vbF90ICpw LCBYNTA5ICp4NTA5LCBpbnQgdHlwZSwgQVNOMV9PQkpFQ1QgKm9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGludCBpZHgsIGFwcl9hcnJheV9oZWFkZXJfdCAqKmVudHJpZXMpCiB7 CiAgICAgU1RBQ0tfT0YoR0VORVJBTF9OQU1FKSAqbmFtZXM7CiAKLSAgICBpZiAoIXg1MDkg fHwgKHR5cGUgPCBHRU5fT1RIRVJOQU1FKSB8fCAodHlwZSA+IEdFTl9SSUQpIHx8IChpZHgg PCAtMSkgfHwKKyAgICBpZiAoIXg1MDkgfHwgKHR5cGUgPCBHRU5fT1RIRVJOQU1FKSB8fCAo dHlwZSA9PSBHRU5fT1RIRVJOQU1FICYmICFvaWQpIHx8CisgICAgICAgICh0eXBlID4gR0VO X1JJRCkgfHwgKGlkeCA8IC0xKSB8fAogICAgICAgICAhKCplbnRyaWVzID0gYXByX2FycmF5 X21ha2UocCwgMCwgc2l6ZW9mKGNoYXIgKikpKSkgewogICAgICAgICAqZW50cmllcyA9IE5V TEw7CiAgICAgICAgIHJldHVybiBGQUxTRTsKQEAgLTI3NywzMyArMzA0LDQzIEBAIGNoYXIg Km1vZHNzbF9YNTA5X05BTUVfdG9fc3RyaW5nKGFwcl9wb29sX3QgKnAsIFg1CiAKICAgICAg ICAgZm9yIChpID0gMDsgaSA8IHNrX0dFTkVSQUxfTkFNRV9udW0obmFtZXMpOyBpKyspIHsK ICAgICAgICAgICAgIG5hbWUgPSBza19HRU5FUkFMX05BTUVfdmFsdWUobmFtZXMsIGkpOwot ICAgICAgICAgICAgaWYgKG5hbWUtPnR5cGUgPT0gdHlwZSkgewotICAgICAgICAgICAgICAg IGlmICgoaWR4ID09IC0xKSB8fCAobiA9PSBpZHgpKSB7Ci0gICAgICAgICAgICAgICAgICAg IHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgICAgICAgICBjYXNlIEdFTl9FTUFJTDoK LSAgICAgICAgICAgICAgICAgICAgY2FzZSBHRU5fRE5TOgotICAgICAgICAgICAgICAgICAg ICAgICAgdXRmOHN0ciA9IGFzbjFfc3RyaW5nX3RvX3V0ZjgocCwgbmFtZS0+ZC5pYTUpOwot ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHV0ZjhzdHIpIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBUFJfQVJSQVlfUFVTSCgqZW50cmllcywgY29uc3QgY2hhciAqKSA9 IHV0ZjhzdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg ICAgICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICAgICAgICAgICAgKiBOb3QgaW1w bGVtZW50ZWQgcmlnaHQgbm93OgotICAgICAgICAgICAgICAgICAgICAgICAgICogR0VOX09U SEVSTkFNRSAob3RoZXJOYW1lKQotICAgICAgICAgICAgICAgICAgICAgICAgICogR0VOX1g0 MDAgKHg0MDBBZGRyZXNzKQotICAgICAgICAgICAgICAgICAgICAgICAgICogR0VOX0RJUk5B TUUgKGRpcmVjdG9yeU5hbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKiBHRU5fRURJ UEFSVFkgKGVkaVBhcnR5TmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAqIEdFTl9V UkkgKHVuaWZvcm1SZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgKiBHRU5fSVBBREQgKGlQQWRkcmVzcykKLSAgICAgICAgICAgICAgICAgICAgICAgICAq IEdFTl9SSUQgKHJlZ2lzdGVyZWRJRCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAqLwot ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGlmIChuYW1l LT50eXBlICE9IHR5cGUpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg ICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBHRU5fRU1BSUw6CisgICAg ICAgICAgICBjYXNlIEdFTl9ETlM6CisgICAgICAgICAgICAgICAgaWYgKCgoaWR4ID09IC0x KSB8fCAobiA9PSBpZHgpKSAmJgorICAgICAgICAgICAgICAgICAgICAodXRmOHN0ciA9IGFz bjFfc3RyaW5nX3RvX3V0ZjgocCwgbmFtZS0+ZC5pYTUpKSkgeworICAgICAgICAgICAgICAg ICAgICBBUFJfQVJSQVlfUFVTSCgqZW50cmllcywgY29uc3QgY2hhciAqKSA9IHV0ZjhzdHI7 CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG4rKzsKKyAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgR0VOX09USEVSTkFNRToKKyAgICAgICAg ICAgICAgICBpZiAoIU9CSl9jbXAobmFtZS0+ZC5vdGhlck5hbWUtPnR5cGVfaWQsIG9pZCkp IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoaWR4ID09IC0xKSB8fCAobiA9PSBpZHgp KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2Vfb3RoZXJOYW1lX3ZhbHVlKHAs IG5hbWUtPmQub3RoZXJOYW1lLT52YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvaWQsIGVudHJpZXMpOwogICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICAgIG4rKzsKICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAgaWYgKChpZHggIT0gLTEpICYmIChuKysgPiBpZHgpKQotICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIE5vdCBp bXBsZW1lbnRlZCByaWdodCBub3c6CisgICAgICAgICAgICAgICAgICogR0VOX1g0MDAgKHg0 MDBBZGRyZXNzKQorICAgICAgICAgICAgICAgICAqIEdFTl9ESVJOQU1FIChkaXJlY3RvcnlO YW1lKQorICAgICAgICAgICAgICAgICAqIEdFTl9FRElQQVJUWSAoZWRpUGFydHlOYW1lKQor ICAgICAgICAgICAgICAgICAqIEdFTl9VUkkgKHVuaWZvcm1SZXNvdXJjZUlkZW50aWZpZXIp CisgICAgICAgICAgICAgICAgICogR0VOX0lQQUREIChpUEFkZHJlc3MpCisgICAgICAgICAg ICAgICAgICogR0VOX1JJRCAocmVnaXN0ZXJlZElEKQorICAgICAgICAgICAgICAgICAqLwor ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp ZiAoKGlkeCAhPSAtMSkgJiYgKG4gPiBpZHgpKQorICAgICAgICAgICAgICAgYnJlYWs7CiAg ICAgICAgIH0KIAogICAgICAgICBza19HRU5FUkFMX05BTUVfcG9wX2ZyZWUobmFtZXMsIEdF TkVSQUxfTkFNRV9mcmVlKTsKQEAgLTMyMCw3ICszNTcsNyBAQCBzdGF0aWMgQk9PTCBnZXRJ RHMoYXByX3Bvb2xfdCAqcCwgWDUwOSAqeDUwOSwgYXByXwogCiAgICAgLyogRmlyc3QsIHRo ZSBETlMtSURzIChkTlNOYW1lIGVudHJpZXMgaW4gdGhlIHN1YmplY3RBbHROYW1lIGV4dGVu c2lvbikgKi8KICAgICBpZiAoIXg1MDkgfHwKLSAgICAgICAgKG1vZHNzbF9YNTA5X2dldFNB TihwLCB4NTA5LCBHRU5fRE5TLCAtMSwgaWRzKSA9PSBGQUxTRSAmJiAhKmlkcykpIHsKKyAg ICAgICAgKG1vZHNzbF9YNTA5X2dldFNBTihwLCB4NTA5LCBHRU5fRE5TLCBOVUxMLCAtMSwg aWRzKSA9PSBGQUxTRSAmJiAhKmlkcykpIHsKICAgICAgICAgKmlkcyA9IE5VTEw7CiAgICAg ICAgIHJldHVybiBGQUxTRTsKICAgICB9CkluZGV4OiBtb2R1bGVzL3NzbC9zc2xfZW5naW5l X3ZhcnMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBtb2R1bGVzL3NzbC9zc2xfZW5naW5lX3ZhcnMu YwkocmV2aXNpb24gMTY4Nzk4MykKKysrIG1vZHVsZXMvc3NsL3NzbF9lbmdpbmVfdmFycy5j CSh3b3JraW5nIGNvcHkpCkBAIC02NjQsNyArNjY0LDkgQEAgc3RhdGljIGNoYXIgKnNzbF92 YXJfbG9va3VwX3NzbF9jZXJ0X2RuKGFwcl9wb29sX3QKIHN0YXRpYyBjaGFyICpzc2xfdmFy X2xvb2t1cF9zc2xfY2VydF9zYW4oYXByX3Bvb2xfdCAqcCwgWDUwOSAqeHMsIGNoYXIgKnZh cikKIHsKICAgICBpbnQgdHlwZSwgbnVtbGVuOworICAgIEFTTjFfT0JKRUNUICpvaWQgPSBO VUxMOwogICAgIGFwcl9hcnJheV9oZWFkZXJfdCAqZW50cmllczsKKyAgICBCT09MIGZvdW5k OwogCiAgICAgaWYgKHN0cmNFUW4odmFyLCAiRW1haWxfIiwgNikpIHsKICAgICAgICAgdHlw ZSA9IEdFTl9FTUFJTDsKQEAgLTY3NCw2ICs2NzYsMjAgQEAgc3RhdGljIGNoYXIgKnNzbF92 YXJfbG9va3VwX3NzbF9jZXJ0X3NhbihhcHJfcG9vbF8KICAgICAgICAgdHlwZSA9IEdFTl9E TlM7CiAgICAgICAgIHZhciArPSA0OwogICAgIH0KKyAgICBlbHNlIGlmIChzdHJjRVFuKHZh ciwgIk9USEVSXyIsIDYpKSB7CisgICAgICAgIHR5cGUgPSBHRU5fT1RIRVJOQU1FOworICAg ICAgICB2YXIgKz0gNjsKKyAgICAgICAgaWYgKHN0ckVRbih2YXIsICJtc1VQTl8iLCA2KSkg eworICAgICAgICAgICAgdmFyICs9IDY7CisgICAgICAgICAgICBvaWQgPSBPQkpfdHh0Mm9i aigibXNVUE4iLCAwKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzdHJFUW4odmFy LCAiZG5zU1JWXyIsIDcpKSB7CisgICAgICAgICAgICB2YXIgKz0gNzsKKyAgICAgICAgICAg IG9pZCA9IE9CSl90eHQyb2JqKCJpZC1vbi1kbnNTUlYiLCAwKTsKKyAgICAgICAgfQorICAg ICAgICBlbHNlCisgICAgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KICAgICBlbHNlCiAg ICAgICAgIHJldHVybiBOVUxMOwogCkBAIC02ODIsMTEgKzY5OCwxMSBAQCBzdGF0aWMgY2hh ciAqc3NsX3Zhcl9sb29rdXBfc3NsX2NlcnRfc2FuKGFwcl9wb29sXwogICAgIGlmICgobnVt bGVuIDwgMSkgfHwgKG51bWxlbiA+IDQpIHx8IChudW1sZW4gIT0gc3RybGVuKHZhcikpKQog ICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmIChtb2Rzc2xfWDUwOV9nZXRTQU4ocCwg eHMsIHR5cGUsIGF0b2kodmFyKSwgJmVudHJpZXMpKQotICAgICAgIC8qIHJldHVybiB0aGUg Zmlyc3QgZW50cnkgZnJvbSB0aGlzIDEtZWxlbWVudCBhcnJheSAqLwotICAgICAgIHJldHVy biBBUFJfQVJSQVlfSURYKGVudHJpZXMsIDAsIGNoYXIgKik7Ci0gICAgZWxzZQotICAgICAg IHJldHVybiBOVUxMOworICAgIGZvdW5kID0gbW9kc3NsX1g1MDlfZ2V0U0FOKHAsIHhzLCB0 eXBlLCBvaWQsIGF0b2kodmFyKSwgJmVudHJpZXMpOworICAgIGlmIChvaWQpCisgICAgICAg IEFTTjFfT0JKRUNUX2ZyZWUob2lkKTsgIAorICAgIC8qIHJldHVybiB0aGUgZmlyc3QgZW50 cnkgZnJvbSB0aGlzIDEtZWxlbWVudCBhcnJheSAqLworICAgIHJldHVybiBmb3VuZCA/IEFQ Ul9BUlJBWV9JRFgoZW50cmllcywgMCwgY2hhciAqKSA6IE5VTEw7CiB9CiAKIHN0YXRpYyBj aGFyICpzc2xfdmFyX2xvb2t1cF9zc2xfY2VydF92YWxpZChhcHJfcG9vbF90ICpwLCBBU04x X1RJTUUgKnRtKQpAQCAtMTAyNywyOSArMTA0Myw0MCBAQCBzdGF0aWMgdm9pZCBleHRyYWN0 X3Nhbl9hcnJheShhcHJfdGFibGVfdCAqdCwgY29ucwogdm9pZCBtb2Rzc2xfdmFyX2V4dHJh Y3Rfc2FuX2VudHJpZXMoYXByX3RhYmxlX3QgKnQsIFNTTCAqc3NsLCBhcHJfcG9vbF90ICpw KQogewogICAgIFg1MDkgKnhzOworICAgIEFTTjFfT0JKRUNUICpvaWQgPSBOVUxMOwogICAg IGFwcl9hcnJheV9oZWFkZXJfdCAqZW50cmllczsKIAogICAgIC8qIHN1YmplY3RBbHROYW1l IGVudHJpZXMgb2YgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSAqLwogICAgIHhzID0gU1NMX2dl dF9jZXJ0aWZpY2F0ZShzc2wpOwogICAgIGlmICh4cykgewotICAgICAgICBpZiAobW9kc3Ns X1g1MDlfZ2V0U0FOKHAsIHhzLCBHRU5fRU1BSUwsIC0xLCAmZW50cmllcykpIHsKKyAgICAg ICAgaWYgKG1vZHNzbF9YNTA5X2dldFNBTihwLCB4cywgR0VOX0VNQUlMLCBOVUxMLCAtMSwg JmVudHJpZXMpKSB7CiAgICAgICAgICAgICBleHRyYWN0X3Nhbl9hcnJheSh0LCAiU1NMX1NF UlZFUl9TQU5fRW1haWwiLCBlbnRyaWVzLCBwKTsKICAgICAgICAgfQotICAgICAgICBpZiAo bW9kc3NsX1g1MDlfZ2V0U0FOKHAsIHhzLCBHRU5fRE5TLCAtMSwgJmVudHJpZXMpKSB7Cisg ICAgICAgIGlmIChtb2Rzc2xfWDUwOV9nZXRTQU4ocCwgeHMsIEdFTl9ETlMsIE5VTEwsIC0x LCAmZW50cmllcykpIHsKICAgICAgICAgICAgIGV4dHJhY3Rfc2FuX2FycmF5KHQsICJTU0xf U0VSVkVSX1NBTl9ETlMiLCBlbnRyaWVzLCBwKTsKICAgICAgICAgfQorICAgICAgICBpZiAo KG9pZCA9IE9CSl90eHQyb2JqKCJpZC1vbi1kbnNTUlYiLCAwKSkgJiYKKyAgICAgICAgICAg IG1vZHNzbF9YNTA5X2dldFNBTihwLCB4cywgR0VOX09USEVSTkFNRSwgb2lkLCAtMSwgJmVu dHJpZXMpKSB7CisgICAgICAgICAgICBleHRyYWN0X3Nhbl9hcnJheSh0LCAiU1NMX1NFUlZF Ul9TQU5fT1RIRVJfZG5zU1JWIiwgZW50cmllcywgcCk7CisgICAgICAgICAgICBBU04xX09C SkVDVF9mcmVlKG9pZCk7CisgICAgICAgIH0KICAgICAgICAgLyogbm8gbmVlZCB0byBmcmVl IHhzIChyZWZjb3VudCBkb2VzIG5vdCBpbmNyZWFzZSkgKi8KICAgICB9CiAKICAgICAvKiBz dWJqZWN0QWx0TmFtZSBlbnRyaWVzIG9mIHRoZSBjbGllbnQgY2VydGlmaWNhdGUgKi8KICAg ICB4cyA9IFNTTF9nZXRfcGVlcl9jZXJ0aWZpY2F0ZShzc2wpOwogICAgIGlmICh4cykgewot ICAgICAgICBpZiAobW9kc3NsX1g1MDlfZ2V0U0FOKHAsIHhzLCBHRU5fRU1BSUwsIC0xLCAm ZW50cmllcykpIHsKKyAgICAgICAgaWYgKG1vZHNzbF9YNTA5X2dldFNBTihwLCB4cywgR0VO X0VNQUlMLCBOVUxMLCAtMSwgJmVudHJpZXMpKSB7CiAgICAgICAgICAgICBleHRyYWN0X3Nh bl9hcnJheSh0LCAiU1NMX0NMSUVOVF9TQU5fRW1haWwiLCBlbnRyaWVzLCBwKTsKICAgICAg ICAgfQotICAgICAgICBpZiAobW9kc3NsX1g1MDlfZ2V0U0FOKHAsIHhzLCBHRU5fRE5TLCAt MSwgJmVudHJpZXMpKSB7CisgICAgICAgIGlmIChtb2Rzc2xfWDUwOV9nZXRTQU4ocCwgeHMs IEdFTl9ETlMsIE5VTEwsIC0xLCAmZW50cmllcykpIHsKICAgICAgICAgICAgIGV4dHJhY3Rf c2FuX2FycmF5KHQsICJTU0xfQ0xJRU5UX1NBTl9ETlMiLCBlbnRyaWVzLCBwKTsKICAgICAg ICAgfQorICAgICAgICBpZiAoKG9pZCA9IE9CSl90eHQyb2JqKCJtc1VQTiIsIDApKSAmJgor ICAgICAgICAgICAgbW9kc3NsX1g1MDlfZ2V0U0FOKHAsIHhzLCBHRU5fT1RIRVJOQU1FLCBv aWQsIC0xLCAmZW50cmllcykpIHsKKyAgICAgICAgICAgIGV4dHJhY3Rfc2FuX2FycmF5KHQs ICJTU0xfQ0xJRU5UX1NBTl9PVEhFUl9tc1VQTiIsIGVudHJpZXMsIHApOworICAgICAgICAg ICAgQVNOMV9PQkpFQ1RfZnJlZShvaWQpOworICAgICAgICB9CiAgICAgICAgIFg1MDlfZnJl ZSh4cyk7CiAgICAgfQogfQpJbmRleDogbW9kdWxlcy9zc2wvc3NsX3V0aWxfc3NsLmgKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gbW9kdWxlcy9zc2wvc3NsX3V0aWxfc3NsLmgJKHJldmlzaW9uIDE2 ODc5ODMpCisrKyBtb2R1bGVzL3NzbC9zc2xfdXRpbF9zc2wuaAkod29ya2luZyBjb3B5KQpA QCAtNjUsNyArNjUsNyBAQCBpbnQgICAgICAgICBtb2Rzc2xfc21hcnRfc2h1dGRvd24oU1NM ICpzc2wpOwogQk9PTCAgICAgICAgbW9kc3NsX1g1MDlfZ2V0QkMoWDUwOSAqLCBpbnQgKiwg aW50ICopOwogY2hhciAgICAgICAqbW9kc3NsX1g1MDlfTkFNRV9FTlRSWV90b19zdHJpbmco YXByX3Bvb2xfdCAqcCwgWDUwOV9OQU1FX0VOVFJZICp4c25lKTsKIGNoYXIgICAgICAgKm1v ZHNzbF9YNTA5X05BTUVfdG9fc3RyaW5nKGFwcl9wb29sX3QgKiwgWDUwOV9OQU1FICosIGlu dCk7Ci1CT09MICAgICAgICBtb2Rzc2xfWDUwOV9nZXRTQU4oYXByX3Bvb2xfdCAqLCBYNTA5 ICosIGludCwgaW50LCBhcHJfYXJyYXlfaGVhZGVyX3QgKiopOworQk9PTCAgICAgICAgbW9k c3NsX1g1MDlfZ2V0U0FOKGFwcl9wb29sX3QgKiwgWDUwOSAqLCBpbnQsIEFTTjFfT0JKRUNU ICosIGludCwgYXByX2FycmF5X2hlYWRlcl90ICoqKTsKIEJPT0wgICAgICAgIG1vZHNzbF9Y NTA5X21hdGNoX25hbWUoYXByX3Bvb2xfdCAqLCBYNTA5ICosIGNvbnN0IGNoYXIgKiwgQk9P TCwgc2VydmVyX3JlYyAqKTsKIGNoYXIgICAgICAgKm1vZHNzbF9TU0xfU0VTU0lPTl9pZDJz eih1bnNpZ25lZCBjaGFyICosIGludCwgY2hhciAqLCBpbnQpOwogCg== --------------050308000403060005080002--