Return-Path: From: To: CC: , , , , Date: Thu, 2 Sep 2010 16:27:23 +0300 Subject: RE: [PATCH] BT_SECURITY_HIGH requires 16 digit pin code Message-ID: <99B09243E1A5DA4898CDD8B7001114480979219655@EXMB04.eu.tieto.com> References: <1282909526-19374-1-git-send-email-waldemar.rymarkiewicz@tieto.com> <1282911133.835.30.camel@localhost.localdomain> <99B09243E1A5DA4898CDD8B7001114480976E15A2C@EXMB04.eu.tieto.com> <20100827124524.GA9484@jh-x301> In-Reply-To: <20100827124524.GA9484@jh-x301> Content-Type: multipart/mixed; boundary="_003_99B09243E1A5DA4898CDD8B7001114480979219655EXMB04eutieto_" MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: --_003_99B09243E1A5DA4898CDD8B7001114480979219655EXMB04eutieto_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Johan, >From: Johan Hedberg [mailto:johan.hedberg@gmail.com]=20 >Sent: Friday, August 27, 2010 2:45 PM >So how well have you tested the patches? I.e. how confident=20 >are you that you're not introducing any regressions? Scenarios=20 >that would need to be tested before an upstream merge are (and=20 >I'm probably forgetting several of them): > >- legacy pairing acceptor & initiator >- security mode 3 acceptor & initiator >- ssp acceptor & initiator >- renewed link key handling for both debug and normal keys >- security level upgrading (i.e. connect first to a low security socket > and then over the same ACL to a higher security socket) >- complete and partial failure scenarios for all of the above I've completed more tests on the patches and didn't faced any problems do f= ar.=20 Legacy paring, ssp, sec mode 3, refresh existing keys and security upgradin= g have finished with success. I did the tests for bluez as initiator and ag= ain when bluez was an acceptor. All tests were done against different contr= ollers CSR (1.1, 2.0, 2.1), Broadcom (2.0, 2.1), ST-Ericsson (2.1). I also = tried different combinations of the controllers in the same use case. So, I'm pretty sure that it will not introduce any regression.=20 >Additionally all these test should be done against several=20 >different controllers due to differences in HCI interface=20 >behavior (event ordering, error codes, etc). In that list I'd=20 >include at least one CSR, and one Broadcom adapter and any=20 >other adapters from other manufacturers that you can get hold of. > >So how many of these tests do you already have covered? I'm=20 >not very comfortable with pushing the patches upstream before=20 >most of the above scenarios have been tested and verified not=20 >to introduce any regressions. > Aditionally, we plan to bring this to the UPF and it would be appreciated i= f also other would have that possibility for regression testing. If it comes to interaction with the agent I would do this in a seperate pat= ch which will contain a new property when 16 digit pin code is required. I attached slightly updated patches. Regards, /Waldek --_003_99B09243E1A5DA4898CDD8B7001114480979219655EXMB04eutieto_ Content-Type: application/octet-stream; name="0001-BT_SECURITY_HIGH-requires-16-digit-pin-code.patch" Content-Description: 0001-BT_SECURITY_HIGH-requires-16-digit-pin-code.patch Content-Disposition: attachment; filename="0001-BT_SECURITY_HIGH-requires-16-digit-pin-code.patch"; size=6043; creation-date="Thu, 02 Sep 2010 14:47:50 GMT"; modification-date="Thu, 02 Sep 2010 14:47:50 GMT" Content-Transfer-Encoding: base64 RnJvbSA3YzFlZWRhN2MxYWE1ZTE5YzMxMGU5NjViZTE5MmYxMjRkZjdjNmZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXYWxkZW1hciBSeW1hcmtpZXdpY3ogPHdhbGRlbWFyLnJ5bWFy a2lld2ljekB0aWV0by5jb20+CkRhdGU6IE1vbiwgMjEgSnVuIDIwMTAgMTg6NTM6NTEgKzAyMDAK U3ViamVjdDogW1BBVENIXSBCVF9TRUNVUklUWV9ISUdIIHJlcXVpcmVzIDE2IGRpZ2l0IHBpbiBj b2RlCgpUaGUgc2VjdXJpdHkgbGV2ZWwgQlRfU0VDVVJJVFlfSElHSCBleHBlY3RzIHNlY3VyZSBj b25uZWN0aW9uCmFuZCBhIG1pbmltdW0gMTYgZGlnaXQgcGluIGNvZGUgdXNlZCBmb3IgYm9uZGlu Zy4gSXQncyByZXF1aXJlZCBieSB0aGUKU2ltIEFjY2VzcyBQcm9maWxlLgoKUGF0Y2ggb24gYmVo YWxmIG9mIFNULUVyaWNzc29uIFNBLgoKU2lnbmVkLW9mZi1ieTogV2FsZGVtYXIgUnltYXJraWV3 aWN6IDx3YWxkZW1hci5yeW1hcmtpZXdpY3pAdGlldG8uY29tPgotLS0KIGxpYi9oY2kuaCAgICAg IHwgICAgOCArKysrKysrLQogc3JjL2RidXMtaGNpLmMgfCAgIDMyICsrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tCiBzcmMvc2VjdXJpdHkuYyB8ICAgMzkgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyks IDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9oY2kuaCBiL2xpYi9oY2kuaAppbmRl eCA1MTJkYWI5Li5hMzEzOTI5IDEwMDY0NAotLS0gYS9saWIvaGNpLmgKKysrIGIvbGliL2hjaS5o CkBAIC05Niw3ICs5Niw3IEBAIGVudW0gewogI2RlZmluZSBIQ0lTRVRMSU5LTU9ERQlfSU9XKCdI JywgMjI2LCBpbnQpCiAjZGVmaW5lIEhDSVNFVEFDTE1UVQlfSU9XKCdIJywgMjI3LCBpbnQpCiAj ZGVmaW5lIEhDSVNFVFNDT01UVQlfSU9XKCdIJywgMjI4LCBpbnQpCi0KKyNkZWZpbmUgSENJU0VU Q09OTklORk8JX0lPVygnSCcsIDIyOSwgaW50KQogI2RlZmluZSBIQ0lCTE9DS0FERFIJX0lPVygn SCcsIDIzMCwgaW50KQogI2RlZmluZSBIQ0lVTkJMT0NLQUREUglfSU9XKCdIJywgMjMxLCBpbnQp CiAKQEAgLTIzMjYsOSArMjMyNiwxNSBAQCBzdHJ1Y3QgaGNpX2Nvbm5faW5mb19yZXEgewogCXN0 cnVjdCBoY2lfY29ubl9pbmZvIGNvbm5faW5mb1swXTsKIH07CiAKK3N0cnVjdCBoY2lfc2V0X2Nv bm5faW5mb19yZXEgeworCWJkYWRkcl90IGJkYWRkcjsKKwl1aW50OF90ICBwaW5fbGVuOworCXVp bnQ4X3QgIGtleV90eXBlOworfTsKIHN0cnVjdCBoY2lfYXV0aF9pbmZvX3JlcSB7CiAJYmRhZGRy X3QgYmRhZGRyOwogCXVpbnQ4X3QgIHR5cGU7CisJdWludDhfdCAgbGV2ZWw7CiB9OwogCiBzdHJ1 Y3QgaGNpX2lucXVpcnlfcmVxIHsKZGlmZiAtLWdpdCBhL3NyYy9kYnVzLWhjaS5jIGIvc3JjL2Ri dXMtaGNpLmMKaW5kZXggOTA1NWZmZS4uZmUzOGU0NSAxMDA2NDQKLS0tIGEvc3JjL2RidXMtaGNp LmMKKysrIGIvc3JjL2RidXMtaGNpLmMKQEAgLTE2NSw2ICsxNjUsOCBAQCBzdGF0aWMgdm9pZCBw aW5jb2RlX2NiKHN0cnVjdCBhZ2VudCAqYWdlbnQsIERCdXNFcnJvciAqZXJyLAogewogCXN0cnVj dCBidGRfYWRhcHRlciAqYWRhcHRlciA9IGRldmljZV9nZXRfYWRhcHRlcihkZXZpY2UpOwogCXBp bl9jb2RlX3JlcGx5X2NwIHByOworCXN0cnVjdCBoY2lfYXV0aF9pbmZvX3JlcSBhcjsKKwlzdHJ1 Y3QgaGNpX3NldF9jb25uX2luZm9fcmVxIGNyOwogCWJkYWRkcl90IHNiYSwgZGJhOwogCXNpemVf dCBsZW47CiAJaW50IGRldjsKQEAgLTE4MCwxMyArMTgyLDI5IEBAIHN0YXRpYyB2b2lkIHBpbmNv ZGVfY2Ioc3RydWN0IGFnZW50ICphZ2VudCwgREJ1c0Vycm9yICplcnIsCiAJYWRhcHRlcl9nZXRf YWRkcmVzcyhhZGFwdGVyLCAmc2JhKTsKIAlkZXZpY2VfZ2V0X2FkZHJlc3MoZGV2aWNlLCAmZGJh KTsKIAotCWlmIChlcnIpIHsKLQkJaGNpX3NlbmRfY21kKGRldiwgT0dGX0xJTktfQ1RMLAotCQkJ CU9DRl9QSU5fQ09ERV9ORUdfUkVQTFksIDYsICZkYmEpOwotCQlnb3RvIGRvbmU7Ci0JfQorCWlm IChlcnIpCisJCWdvdG8gcmVqZWN0OwogCiAJbGVuID0gc3RybGVuKHBpbmNvZGUpOworCW1lbXNl dCgmYXIsIDAsIHNpemVvZihhcikpOworCWJhY3B5KCZhci5iZGFkZHIsICZkYmEpOworCWlmIChp b2N0bChkZXYsIEhDSUdFVEFVVEhJTkZPLCAodW5zaWduZWQgbG9uZykgJmFyKSA8IDApIHsKKwkJ ZXJyb3IoIkNhbid0IGdldCBhdXRoIGluZm86ICVzICglZCkiLCBzdHJlcnJvcihlcnJubyksIGVy cm5vKTsKKwkJZ290byByZWplY3Q7CisJfQorCisJaWYgKGFyLmxldmVsID09IEJUX1NFQ1VSSVRZ X0hJR0ggJiYgbGVuIDwgMTYpIHsKKwkJZXJyb3IoIlBJTiBjb2RlIGlzIG5vdCBhIDE2IGRpZ2l0 ICglZCkuIiwgbGVuKTsKKwkJZ290byByZWplY3Q7CisJfQorCisJYmFjcHkoJmNyLmJkYWRkciwg JmRiYSk7CisJY3IucGluX2xlbiA9IGxlbjsKKwljci5rZXlfdHlwZSA9IDB4ZmY7CisJaWYgKGlv Y3RsKGRldiwgSENJU0VUQ09OTklORk8sICh1bnNpZ25lZCBsb25nKSAmY3IpIDwgMCkgeworCQll cnJvcigiQ2FuJ3Qgc2V0IGNvbm4gaW5mbzogJXMgKCVkKSIsIHN0cmVycm9yKGVycm5vKSwgZXJy bm8pOworCQlnb3RvIHJlamVjdDsKKwl9CiAKIAlzZXRfcGluX2xlbmd0aCgmc2JhLCBsZW4pOwog CkBAIC0xOTYsNyArMjE0LDExIEBAIHN0YXRpYyB2b2lkIHBpbmNvZGVfY2Ioc3RydWN0IGFnZW50 ICphZ2VudCwgREJ1c0Vycm9yICplcnIsCiAJcHIucGluX2xlbiA9IGxlbjsKIAloY2lfc2VuZF9j bWQoZGV2LCBPR0ZfTElOS19DVEwsIE9DRl9QSU5fQ09ERV9SRVBMWSwKIAkJCQkJCVBJTl9DT0RF X1JFUExZX0NQX1NJWkUsICZwcik7CisJZ290byBkb25lOwogCityZWplY3Q6CisJaGNpX3NlbmRf Y21kKGRldiwgT0dGX0xJTktfQ1RMLAorCQkJT0NGX1BJTl9DT0RFX05FR19SRVBMWSwgNiwgJmRi YSk7CiBkb25lOgogCWhjaV9jbG9zZV9kZXYoZGV2KTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9zZWN1 cml0eS5jIGIvc3JjL3NlY3VyaXR5LmMKaW5kZXggNjY3ZjFmMS4uYTRlZWRjMiAxMDA2NDQKLS0t IGEvc3JjL3NlY3VyaXR5LmMKKysrIGIvc3JjL3NlY3VyaXR5LmMKQEAgLTMwOSw2ICszMDksNyBA QCBzdGF0aWMgdm9pZCBsaW5rX2tleV9yZXF1ZXN0KGludCBkZXYsIGJkYWRkcl90ICpzYmEsIGJk YWRkcl90ICpkYmEpCiAJY2hhciBzYVsxOF0sIGRhWzE4XTsKIAl1aW50OF90IHR5cGU7CiAJaW50 IGVycjsKKwlpbnQgcGlubGVuOwogCiAJaWYgKCFnZXRfYWRhcHRlcl9hbmRfZGV2aWNlKHNiYSwg ZGJhLCAmYWRhcHRlciwgJmRldmljZSwgRkFMU0UpKQogCQlkZXZpY2UgPSBOVUxMOwpAQCAtMzI1 LDkgKzMyNiwxMSBAQCBzdGF0aWMgdm9pZCBsaW5rX2tleV9yZXF1ZXN0KGludCBkZXYsIGJkYWRk cl90ICpzYmEsIGJkYWRkcl90ICpkYmEpCiAJCQlEQkcoIkhDSUdFVEFVVEhJTkZPIGZhaWxlZCAl cyAoJWQpIiwKIAkJCQkJCXN0cmVycm9yKGVycm5vKSwgZXJybm8pOwogCQlyZXEudHlwZSA9IDB4 MDA7CisJCXJlcS5sZXZlbCA9IEJUX1NFQ1VSSVRZX0xPVzsKIAl9CiAKLQlEQkcoImtlcm5lbCBh dXRoIHJlcXVpcmVtZW50cyA9IDB4JTAyeCIsIHJlcS50eXBlKTsKKwlEQkcoImtlcm5lbCBhdXRo IHJlcXVpcmVtZW50cyA9IDB4JTAyeCBhbmQgc2VjdXJpdHkgbGV2ZWwgPSAweCUwMngiLCBcCisJ CQkJcmVxLnR5cGUsIHJlcS5sZXZlbCk7CiAKIAlpZiAobWFpbl9vcHRzLmRlYnVnX2tleXMgJiYg ZGV2aWNlICYmIGRldmljZV9nZXRfZGVidWdfa2V5KGRldmljZSwga2V5KSkKIAkJdHlwZSA9IDB4 MDM7CkBAIC0zNDEsMTggKzM0NCwzNSBAQCBzdGF0aWMgdm9pZCBsaW5rX2tleV9yZXF1ZXN0KGlu dCBkZXYsIGJkYWRkcl90ICpzYmEsIGJkYWRkcl90ICpkYmEpCiAKIAlEQkcoImxpbmsga2V5IHR5 cGUgPSAweCUwMngiLCB0eXBlKTsKIAorCXBpbmxlbiA9IHJlYWRfcGluX2xlbmd0aChzYmEsIGRi YSk7CisJREJHKCJzdG9yZWQgbGluayBrZXkgdHlwZSA9IDB4JTAyeCBwaW5fbGVuID0gJWQiLCB0 eXBlLCBwaW5sZW4pOworCiAJLyogRG9uJ3QgdXNlIHVuYXV0aGVudGljYXRlZCBjb21iaW5hdGlv biBrZXlzIGlmIE1JVE0gaXMKLQkgKiByZXF1aXJlZCAqLwotCWlmICh0eXBlID09IDB4MDQgJiYg cmVxLnR5cGUgIT0gMHhmZiAmJiAocmVxLnR5cGUgJiAweDAxKSkKKwkgKiByZXF1aXJlZCBhbmQg YWxzbyBkb24ndCB1c2UgY29tYmluYXRpb24gbGluayBrZXlzIGF1dGhlbnRpY2F0ZWQKKwkgKiB3 aXRoIHRoZSBQSU4gY29kZSBsZW4gPCAxNiBpZiBzZWN1cml0eSBsZXZlbCBCVF9TRUNVUklUWV9I SUdICisJICogaXMgcmVxdWlyZWQgKi8KKwlpZiAoKHR5cGUgPT0gMHgwNCAmJiByZXEudHlwZSAh PSAweGZmICYmIChyZXEudHlwZSAmIDB4MDEpKSB8fAorCQkodHlwZSA9PSAweDAwICYmIHJlcS5s ZXZlbCA9PSBCVF9TRUNVUklUWV9ISUdIICYmIHBpbmxlbiA8IDE2KSkKIAkJaGNpX3NlbmRfY21k KGRldiwgT0dGX0xJTktfQ1RMLCBPQ0ZfTElOS19LRVlfTkVHX1JFUExZLAogCQkJCQkJCQk2LCBk YmEpOwogCWVsc2UgewogCQlsaW5rX2tleV9yZXBseV9jcCBscjsKKwkJc3RydWN0IGhjaV9zZXRf Y29ubl9pbmZvX3JlcSBjcjsKIAogCQltZW1jcHkobHIubGlua19rZXksIGtleSwgMTYpOwogCQli YWNweSgmbHIuYmRhZGRyLCBkYmEpOwogCi0JCWhjaV9zZW5kX2NtZChkZXYsIE9HRl9MSU5LX0NU TCwgT0NGX0xJTktfS0VZX1JFUExZLAorCQliYWNweSgmY3IuYmRhZGRyLCBkYmEpOworCQljci5w aW5fbGVuID0gcGlubGVuOworCQljci5rZXlfdHlwZSA9IHR5cGU7CisKKwkJaWYgKGlvY3RsKGRl diwgSENJU0VUQ09OTklORk8sICh1bnNpZ25lZCBsb25nKSAmY3IpIDwgMCkgeworCQkJZXJyb3Io IkNhbid0IHNldCBjb25uIGluZm86ICVzICglZCkiLCBzdHJlcnJvcihlcnJubyksCisJCQkJCQkJ CQllcnJubyk7CisJCQloY2lfc2VuZF9jbWQoZGV2LCBPR0ZfTElOS19DVEwsIE9DRl9MSU5LX0tF WV9ORUdfUkVQTFksCisJCQkJCQkJCQk2LCBkYmEpOworCQl9IGVsc2UKKwkJCWhjaV9zZW5kX2Nt ZChkZXYsIE9HRl9MSU5LX0NUTCwgT0NGX0xJTktfS0VZX1JFUExZLAogCQkJCQkJTElOS19LRVlf UkVQTFlfQ1BfU0laRSwgJmxyKTsKIAl9CiB9CkBAIC01MjMsNiArNTQzLDcgQEAgc3RhdGljIHZv aWQgcGluX2NvZGVfcmVxdWVzdChpbnQgZGV2LCBiZGFkZHJfdCAqc2JhLCBiZGFkZHJfdCAqZGJh KQogCXBpbl9jb2RlX3JlcGx5X2NwIHByOwogCXN0cnVjdCBoY2lfY29ubl9pbmZvX3JlcSAqY3I7 CiAJc3RydWN0IGhjaV9jb25uX2luZm8gKmNpOworCXN0cnVjdCBoY2lfYXV0aF9pbmZvX3JlcSBh cjsKIAljaGFyIHNhWzE4XSwgZGFbMThdLCBwaW5bMTddOwogCWludCBwaW5sZW47CiAKQEAgLTU0 MiwxMCArNTYzLDIwIEBAIHN0YXRpYyB2b2lkIHBpbl9jb2RlX3JlcXVlc3QoaW50IGRldiwgYmRh ZGRyX3QgKnNiYSwgYmRhZGRyX3QgKmRiYSkKIAl9CiAJY2kgPSBjci0+Y29ubl9pbmZvOwogCisJ bWVtc2V0KCZhciwgMCwgc2l6ZW9mKGFyKSk7CisJYmFjcHkoJmFyLmJkYWRkciwgZGJhKTsKKwlp ZiAoaW9jdGwoZGV2LCBIQ0lHRVRBVVRISU5GTywgKHVuc2lnbmVkIGxvbmcpICZhcikgPCAwKSB7 CisJCWVycm9yKCJDYW4ndCBnZXQgYXV0aCBpbmZvOiAlcyAoJWQpIiwgc3RyZXJyb3IoZXJybm8p LCBlcnJubyk7CisJCWdvdG8gcmVqZWN0OworCX0KIAltZW1zZXQocGluLCAwLCBzaXplb2YocGlu KSk7CiAJcGlubGVuID0gcmVhZF9waW5fY29kZShzYmEsIGRiYSwgcGluKTsKIAogCWlmIChwaW5s ZW4gPiAwKSB7CisJCWlmIChhci5sZXZlbCA9PSBCVF9TRUNVUklUWV9ISUdIICYmIHBpbmxlbiA8 IDE2KSB7CisJCQllcnJvcigiTm90IDE2IGRpZ2l0IHBpbiBjb2RlLiIpOworCQkJZ290byByZWpl Y3Q7CisJCX0KIAkJc2V0X3Bpbl9sZW5ndGgoc2JhLCBwaW5sZW4pOwogCQltZW1jcHkocHIucGlu X2NvZGUsIHBpbiwgcGlubGVuKTsKIAkJcHIucGluX2xlbiA9IHBpbmxlbjsKLS0gCjEuNy4wLjQK Cg== --_003_99B09243E1A5DA4898CDD8B7001114480979219655EXMB04eutieto_ Content-Type: application/octet-stream; name="0001-Bluetooth-BT_SECURITY_HIGH-requires-16-digit-pin-cod.patch" Content-Description: 0001-Bluetooth-BT_SECURITY_HIGH-requires-16-digit-pin-cod.patch Content-Disposition: attachment; filename="0001-Bluetooth-BT_SECURITY_HIGH-requires-16-digit-pin-cod.patch"; size=9554; creation-date="Thu, 02 Sep 2010 14:56:31 GMT"; modification-date="Thu, 02 Sep 2010 14:56:31 GMT" Content-Transfer-Encoding: base64 RnJvbSBhY2MxZGQzNWY3ZmQ2ZjlkMjRjMzI4YWVmMjQ0MzY1ZWY2NzE2MzgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXYWxkZW1hciBSeW1hcmtpZXdpY3ogPHdhbGRlbWFyLnJ5bWFy a2lld2ljekB0aWV0by5jb20+CkRhdGU6IFdlZCwgMjUgQXVnIDIwMTAgMTc6NDg6MzIgKzAyMDAK U3ViamVjdDogW1BBVENIXSBCbHVldG9vdGg6IEJUX1NFQ1VSSVRZX0hJR0ggcmVxdWlyZXMgMTYg ZGlnaXQgcGluIGNvZGUKClRoZSBzZWN1cml0eSBsZXZlbCBCVF9TRUNVUklUWV9ISUdIIGV4cGVj dHMgc2VjdXJlIGNvbm5lY3Rpb24KYW5kIGEgbWluaW11bSAxNiBkaWdpdCBwaW4gY29kZSB1c2Vk IGZvciBib25kaW5nLiBJdCdzIHJlcXVpcmVkIGJ5IHRoZQpTaW0gQWNjZXNzIFByb2ZpbGUuCgpQ YXRjaCBvbiBiZWhhbGYgb2YgU1QtRXJpY3Nzb24gU0EuCgpTaWduZWQtb2ZmLWJ5OiBXYWxkZW1h ciBSeW1hcmtpZXdpY3ogPHdhbGRlbWFyLnJ5bWFya2lld2ljekB0aWV0by5jb20+Ci0tLQogaW5j bHVkZS9uZXQvYmx1ZXRvb3RoL2hjaS5oICAgICAgfCAgIDE3ICsrKysrKysKIGluY2x1ZGUvbmV0 L2JsdWV0b290aC9oY2lfY29yZS5oIHwgICAgNCArKwogbmV0L2JsdWV0b290aC9oY2lfY29ubi5j ICAgICAgICAgfCAgIDk3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBu ZXQvYmx1ZXRvb3RoL2hjaV9ldmVudC5jICAgICAgICB8ICAgIDQgKysKIG5ldC9ibHVldG9vdGgv aGNpX3NvY2suYyAgICAgICAgIHwgICAgMyArCiBuZXQvYmx1ZXRvb3RoL3JmY29tbS9jb3JlLmMg ICAgICB8ICAgMTAgKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDE5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2JsdWV0b290aC9oY2kuaCBi L2luY2x1ZGUvbmV0L2JsdWV0b290aC9oY2kuaAppbmRleCBiY2JkZDZkLi4zMmEzM2MwIDEwMDY0 NAotLS0gYS9pbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpLmgKKysrIGIvaW5jbHVkZS9uZXQvYmx1 ZXRvb3RoL2hjaS5oCkBAIC05OSw2ICs5OSw3IEBAIGVudW0gewogI2RlZmluZSBIQ0lTRVRMSU5L TU9ERQlfSU9XKCdIJywgMjI2LCBpbnQpCiAjZGVmaW5lIEhDSVNFVEFDTE1UVQlfSU9XKCdIJywg MjI3LCBpbnQpCiAjZGVmaW5lIEhDSVNFVFNDT01UVQlfSU9XKCdIJywgMjI4LCBpbnQpCisjZGVm aW5lIEhDSVNFVENPTk5JTkZPCV9JT1coJ0gnLCAyMjksIGludCkKIAogI2RlZmluZSBIQ0lCTE9D S0FERFIJX0lPVygnSCcsIDIzMCwgaW50KQogI2RlZmluZSBIQ0lVTkJMT0NLQUREUglfSU9XKCdI JywgMjMxLCBpbnQpCkBAIC0yMjQsNiArMjI1LDE1IEBAIGVudW0gewogI2RlZmluZSBIQ0lfQVRf R0VORVJBTF9CT05ESU5HCQkweDA0CiAjZGVmaW5lIEhDSV9BVF9HRU5FUkFMX0JPTkRJTkdfTUlU TQkweDA1CiAKKy8qIExpbmsgS2V5IHR5cGVzICovCisjZGVmaW5lIEhDSV9MS19DT01CSU5BVElP TgkJCQkJMHgwMAorI2RlZmluZSBIQ0lfTEtfTE9DQUxfVU5JVAkJCQkJMHgwMQorI2RlZmluZSBI Q0lfTEtfUkVNT1RFX1VOSVQJCQkJCTB4MDIKKyNkZWZpbmUgSENJX0xLX0RFQlVHX0NPTUJJTkFU SU9OCQkJMHgwMworI2RlZmluZSBIQ0lfTEtfVU5BVVRIRU5USUNBVEVEX0NPTUJJTkFUSU9OCTB4 MDQKKyNkZWZpbmUgSENJX0xLX0FVVEhFTlRJQ0FURURfQ09NQklOQVRJT04JMHgwNQorI2RlZmlu ZSBIQ0lfTEtfQ0hBTkdFRURfQ09NQklOQVRJT05fS0VZCQkweDA2CisKIC8qIC0tLS0tICBIQ0kg Q29tbWFuZHMgLS0tLSAqLwogI2RlZmluZSBIQ0lfT1BfSU5RVUlSWQkJCTB4MDQwMQogc3RydWN0 IGhjaV9jcF9pbnF1aXJ5IHsKQEAgLTEwMjIsOSArMTAzMiwxNiBAQCBzdHJ1Y3QgaGNpX2Nvbm5f aW5mb19yZXEgewogCXN0cnVjdCAgIGhjaV9jb25uX2luZm8gY29ubl9pbmZvWzBdOwogfTsKIAor c3RydWN0IGhjaV9zZXRfY29ubl9pbmZvX3JlcSB7CisJYmRhZGRyX3QgYmRhZGRyOworCV9fdTgg ICAgIHBpbl9sZW47CisJX191OAkga2V5X3R5cGU7Cit9OworCiBzdHJ1Y3QgaGNpX2F1dGhfaW5m b19yZXEgewogCWJkYWRkcl90IGJkYWRkcjsKIAlfX3U4ICAgICB0eXBlOworCV9fdTggICAgIGxl dmVsOwogfTsKIAogc3RydWN0IGhjaV9pbnF1aXJ5X3JlcSB7CmRpZmYgLS1naXQgYS9pbmNsdWRl L25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaCBiL2luY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29y ZS5oCmluZGV4IDQ1NjhiOTMuLjllYjJkYTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2JsdWV0 b290aC9oY2lfY29yZS5oCisrKyBiL2luY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oCkBA IC0xODMsNiArMTgzLDggQEAgc3RydWN0IGhjaV9jb25uIHsKIAlfX3UzMgkJIGxpbmtfbW9kZTsK IAlfX3U4ICAgICAgICAgICAgIGF1dGhfdHlwZTsKIAlfX3U4ICAgICAgICAgICAgIHNlY19sZXZl bDsKKwlfX3U4ICAgICAgICAgICAgIGtleV90eXBlOworCV9fdTggICAgICAgICAgICAgcGluX2xl bjsKIAlfX3U4ICAgICAgICAgICAgIHBvd2VyX3NhdmU7CiAJX191MTYgICAgICAgICAgICBkaXNj X3RpbWVvdXQ7CiAJdW5zaWduZWQgbG9uZwkgcGVuZDsKQEAgLTQzMCw2ICs0MzIsOCBAQCBpbnQg aGNpX2dldF9kZXZfaW5mbyh2b2lkIF9fdXNlciAqYXJnKTsKIGludCBoY2lfZ2V0X2Nvbm5fbGlz dCh2b2lkIF9fdXNlciAqYXJnKTsKIGludCBoY2lfZ2V0X2Nvbm5faW5mbyhzdHJ1Y3QgaGNpX2Rl diAqaGRldiwgdm9pZCBfX3VzZXIgKmFyZyk7CiBpbnQgaGNpX2dldF9hdXRoX2luZm8oc3RydWN0 IGhjaV9kZXYgKmhkZXYsIHZvaWQgX191c2VyICphcmcpOworaW50IGhjaV9zZXRfY29ubl9pbmZv KHN0cnVjdCBoY2lfZGV2ICpoZGV2LCB2b2lkIF9fdXNlciAqYXJnKTsKKwogaW50IGhjaV9pbnF1 aXJ5KHZvaWQgX191c2VyICphcmcpOwogCiBzdHJ1Y3QgYmRhZGRyX2xpc3QgKmhjaV9ibGFja2xp c3RfbG9va3VwKHN0cnVjdCBoY2lfZGV2ICpoZGV2LCBiZGFkZHJfdCAqYmRhZGRyKTsKZGlmZiAt LWdpdCBhL25ldC9ibHVldG9vdGgvaGNpX2Nvbm4uYyBiL25ldC9ibHVldG9vdGgvaGNpX2Nvbm4u YwppbmRleCAwYjFlNDYwLi41NDcwOWZhIDEwMDY0NAotLS0gYS9uZXQvYmx1ZXRvb3RoL2hjaV9j b25uLmMKKysrIGIvbmV0L2JsdWV0b290aC9oY2lfY29ubi5jCkBAIC0yMzMsNiArMjMzLDggQEAg c3RydWN0IGhjaV9jb25uICpoY2lfY29ubl9hZGQoc3RydWN0IGhjaV9kZXYgKmhkZXYsIGludCB0 eXBlLCBiZGFkZHJfdCAqZHN0KQogCWNvbm4tPm1vZGUgID0gSENJX0NNX0FDVElWRTsKIAljb25u LT5zdGF0ZSA9IEJUX09QRU47CiAJY29ubi0+YXV0aF90eXBlID0gSENJX0FUX0dFTkVSQUxfQk9O RElORzsKKwljb25uLT5rZXlfdHlwZSA9IDB4ZmY7CisJY29ubi0+cGluX2xlbiA9IDA7CiAKIAlj b25uLT5wb3dlcl9zYXZlID0gMTsKIAljb25uLT5kaXNjX3RpbWVvdXQgPSBIQ0lfRElTQ09OTl9U SU1FT1VUOwpAQCAtNDMzLDE1ICs0MzUsMTEgQEAgaW50IGhjaV9jb25uX2NoZWNrX2xpbmtfbW9k ZShzdHJ1Y3QgaGNpX2Nvbm4gKmNvbm4pCiBFWFBPUlRfU1lNQk9MKGhjaV9jb25uX2NoZWNrX2xp bmtfbW9kZSk7CiAKIC8qIEF1dGhlbnRpY2F0ZSByZW1vdGUgZGV2aWNlICovCi1zdGF0aWMgaW50 IGhjaV9jb25uX2F1dGgoc3RydWN0IGhjaV9jb25uICpjb25uLCBfX3U4IHNlY19sZXZlbCwgX191 OCBhdXRoX3R5cGUpCitzdGF0aWMgdm9pZCBoY2lfY29ubl9hdXRoKHN0cnVjdCBoY2lfY29ubiAq Y29ubiwgX191OCBzZWNfbGV2ZWwsIF9fdTggYXV0aF90eXBlKQogewogCUJUX0RCRygiY29ubiAl cCIsIGNvbm4pOwogCi0JaWYgKHNlY19sZXZlbCA+IGNvbm4tPnNlY19sZXZlbCkKLQkJY29ubi0+ c2VjX2xldmVsID0gc2VjX2xldmVsOwotCWVsc2UgaWYgKGNvbm4tPmxpbmtfbW9kZSAmIEhDSV9M TV9BVVRIKQotCQlyZXR1cm4gMTsKLQorCWNvbm4tPnNlY19sZXZlbCA9IHNlY19sZXZlbDsKIAlj b25uLT5hdXRoX3R5cGUgPSBhdXRoX3R5cGU7CiAKIAlpZiAoIXRlc3RfYW5kX3NldF9iaXQoSENJ X0NPTk5fQVVUSF9QRU5ELCAmY29ubi0+cGVuZCkpIHsKQEAgLTQ1MCw4ICs0NDgsMjAgQEAgc3Rh dGljIGludCBoY2lfY29ubl9hdXRoKHN0cnVjdCBoY2lfY29ubiAqY29ubiwgX191OCBzZWNfbGV2 ZWwsIF9fdTggYXV0aF90eXBlKQogCQloY2lfc2VuZF9jbWQoY29ubi0+aGRldiwgSENJX09QX0FV VEhfUkVRVUVTVEVELAogCQkJCQkJCXNpemVvZihjcCksICZjcCk7CiAJfQorfQogCi0JcmV0dXJu IDA7CisvKiBFbmNyeXB0IHRoZSB0aGUgbGluayAqLworc3RhdGljIHZvaWQgaGNpX2Nvbm5fZW5j cnlwdChzdHJ1Y3QgaGNpX2Nvbm4gKmNvbm4pCit7CisJQlRfREJHKCJjb25uICVwIiwgY29ubik7 CisKKwlpZiAoIXRlc3RfYW5kX3NldF9iaXQoSENJX0NPTk5fRU5DUllQVF9QRU5ELCAmY29ubi0+ cGVuZCkpIHsKKwkJc3RydWN0IGhjaV9jcF9zZXRfY29ubl9lbmNyeXB0IGNwOworCQljcC5oYW5k bGUgID0gY3B1X3RvX2xlMTYoY29ubi0+aGFuZGxlKTsKKwkJY3AuZW5jcnlwdCA9IDE7CisJCWhj aV9zZW5kX2NtZChjb25uLT5oZGV2LCBIQ0lfT1BfU0VUX0NPTk5fRU5DUllQVCwKKwkJCQkJCQlz aXplb2YoY3ApLCAmY3ApOworCX0KIH0KIAogLyogRW5hYmxlIHNlY3VyaXR5ICovCkBAIC00NTks MjggKzQ2OSw1NCBAQCBpbnQgaGNpX2Nvbm5fc2VjdXJpdHkoc3RydWN0IGhjaV9jb25uICpjb25u LCBfX3U4IHNlY19sZXZlbCwgX191OCBhdXRoX3R5cGUpCiB7CiAJQlRfREJHKCJjb25uICVwIiwg Y29ubik7CiAKKwkvKiBGb3Igc2RwIHdlIGRvIG5vdCBuZWVkIHRoZSBsaW5rIGtleS4gKi8KIAlp ZiAoc2VjX2xldmVsID09IEJUX1NFQ1VSSVRZX1NEUCkKIAkJcmV0dXJuIDE7CiAKKwkvKiBGb3Ig bm9uIDIuMSBkZXZpY2VzIGFuZCBsb3cgc2VjdXJpdHkgbGV2ZWwgd2UgZG8gbm90IG5lZWQgdGhl CisJICAgbGluayBrZXkuICovCiAJaWYgKHNlY19sZXZlbCA9PSBCVF9TRUNVUklUWV9MT1cgJiYK IAkJCQkoIWNvbm4tPnNzcF9tb2RlIHx8ICFjb25uLT5oZGV2LT5zc3BfbW9kZSkpCiAJCXJldHVy biAxOwogCi0JaWYgKGNvbm4tPmxpbmtfbW9kZSAmIEhDSV9MTV9FTkNSWVBUKQotCQlyZXR1cm4g aGNpX2Nvbm5fYXV0aChjb25uLCBzZWNfbGV2ZWwsIGF1dGhfdHlwZSk7Ci0KKwkvKiBGb3Igb3Ro ZXIgc2VjdXJpdHkgbGV2ZWxzIHdlIG5lZWQgbGluayBrZXkuICovCisJaWYgKCEoY29ubi0+bGlu a19tb2RlICYgSENJX0xNX0FVVEgpKQorCQlnb3RvIGRvX2F1dGg7CisKKwkvKiBBbiBhdXRoZW50 aWNhdGVkIGNvbWJpbmF0aW9uIGtleSBoYXMgc3VmZmljaWVudCBzZWN1cml0eSBmb3IgYW55CisJ ICAgc2VjdXJpdHkgbGV2ZWwuICovCisJaWYgKGNvbm4tPmtleV90eXBlID09IEhDSV9MS19BVVRI RU5USUNBVEVEX0NPTUJJTkFUSU9OKQorCQlnb3RvIGRvX2VuY3J5cHQ7CisKKwkvKiBBbiB1bmF1 dGhlbnRpY2F0ZWQgY29tYmluYXRpb24ga2V5IGhhcyBzdWZmaWNpZW50IHNlY3VyaXR5IGZvcgor CSAgIHNlY3VyaXR5IGxldmVsIDEgYW5kIDIuICovCisJaWYgKGNvbm4tPmtleV90eXBlID09IEhD SV9MS19VTkFVVEhFTlRJQ0FURURfQ09NQklOQVRJT04KKwkJCSYmIChzZWNfbGV2ZWwgPT0gQlRf U0VDVVJJVFlfTUVESVVNCisJCQkJfHwgc2VjX2xldmVsID09IEJUX1NFQ1VSSVRZX0xPVykpCisJ CWdvdG8gZG9fZW5jcnlwdDsKKworCS8qIEEgY29tYmluYXRpb24ga2V5IGhhcyBhbHdheXMgc3Vm ZmljaWVudCBzZWN1cml0eSBmb3IgdGhlIHNlY3VyaXR5CisJICAgbGV2ZWxzIDEgb3IgMi4gSGln aCBzZWN1cml0eSBsZXZlbCByZXF1aXJlcyB0aGF0IHRoZSBjb21iaW5hdGlvbiBrZXkKKwkgICB3 YXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBtYXhpbXVtIFBJTiBjb2RlIGxlbmd0aCAoMTYpLgorCSAg IEZvciBwcmUgMi4xIHVuaXRzLiAqLworCWlmICgoY29ubi0+a2V5X3R5cGUgPT0gSENJX0xLX0NP TUJJTkFUSU9OKSkKKwkJaWYgKChzZWNfbGV2ZWwgIT0gQlRfU0VDVVJJVFlfSElHSCkgfHwgKGNv bm4tPnBpbl9sZW4gPj0gMTYpKQorCQkJZ290byBkb19lbmNyeXB0OworCitkb19hdXRoOgogCWlm ICh0ZXN0X2FuZF9zZXRfYml0KEhDSV9DT05OX0VOQ1JZUFRfUEVORCwgJmNvbm4tPnBlbmQpKQog CQlyZXR1cm4gMDsKIAotCWlmIChoY2lfY29ubl9hdXRoKGNvbm4sIHNlY19sZXZlbCwgYXV0aF90 eXBlKSkgewotCQlzdHJ1Y3QgaGNpX2NwX3NldF9jb25uX2VuY3J5cHQgY3A7Ci0JCWNwLmhhbmRs ZSAgPSBjcHVfdG9fbGUxNihjb25uLT5oYW5kbGUpOwotCQljcC5lbmNyeXB0ID0gMTsKLQkJaGNp X3NlbmRfY21kKGNvbm4tPmhkZXYsIEhDSV9PUF9TRVRfQ09OTl9FTkNSWVBULAotCQkJCQkJCXNp emVvZihjcCksICZjcCk7Ci0JfQotCisJaGNpX2Nvbm5fYXV0aChjb25uLCBzZWNfbGV2ZWwsIGF1 dGhfdHlwZSk7CiAJcmV0dXJuIDA7CisKK2RvX2VuY3J5cHQ6CisJaWYgKGNvbm4tPmxpbmtfbW9k ZSAmIEhDSV9MTV9FTkNSWVBUKQorCQlyZXR1cm4gMTsgIC8qIHN1ZmZpY2llbnQgbGluayBrZXkg Ki8KKwllbHNleworCQloY2lfY29ubl9lbmNyeXB0KGNvbm4pOworCQlyZXR1cm4gMDsgLyogYXV0 aCBwZW5kaW5nICovCisJfQogfQogRVhQT1JUX1NZTUJPTChoY2lfY29ubl9zZWN1cml0eSk7CiAK QEAgLTcxMyw2ICs3NDksMzAgQEAgaW50IGhjaV9nZXRfY29ubl9pbmZvKHN0cnVjdCBoY2lfZGV2 ICpoZGV2LCB2b2lkIF9fdXNlciAqYXJnKQogCXJldHVybiBjb3B5X3RvX3VzZXIocHRyLCAmY2ks IHNpemVvZihjaSkpID8gLUVGQVVMVCA6IDA7CiB9CiAKK2ludCBoY2lfc2V0X2Nvbm5faW5mbyhz dHJ1Y3QgaGNpX2RldiAqaGRldiwgdm9pZCBfX3VzZXIgKmFyZykKK3sKKwlzdHJ1Y3QgaGNpX3Nl dF9jb25uX2luZm9fcmVxIHJlcTsKKwlzdHJ1Y3QgaGNpX2Nvbm4gKmNvbm47CisKKwlpZiAoY29w eV9mcm9tX3VzZXIoJnJlcSwgYXJnLCBzaXplb2YocmVxKSkpIHsKKwkJQlRfREJHKCJjb3B5IGZy b20gdXNlciBmYWlsZWQiKTsKKwkJcmV0dXJuIC1FRkFVTFQ7CisJfQorCisJaGNpX2Rldl9sb2Nr X2JoKGhkZXYpOworCWNvbm4gPSBoY2lfY29ubl9oYXNoX2xvb2t1cF9iYShoZGV2LCBBQ0xfTElO SywgJnJlcS5iZGFkZHIpOworCWlmIChjb25uKSB7CisJCWNvbm4tPnBpbl9sZW4gPSByZXEucGlu X2xlbjsKKwkJY29ubi0+a2V5X3R5cGUgPSByZXEua2V5X3R5cGU7CisJfQorCWhjaV9kZXZfdW5s b2NrX2JoKGhkZXYpOworCisJaWYgKCFjb25uKQorCQlyZXR1cm4gLUVOT0VOVDsKKworCXJldHVy biAwOworfQorCiBpbnQgaGNpX2dldF9hdXRoX2luZm8oc3RydWN0IGhjaV9kZXYgKmhkZXYsIHZv aWQgX191c2VyICphcmcpCiB7CiAJc3RydWN0IGhjaV9hdXRoX2luZm9fcmVxIHJlcTsKQEAgLTcy NSw2ICs3ODUsNyBAQCBpbnQgaGNpX2dldF9hdXRoX2luZm8oc3RydWN0IGhjaV9kZXYgKmhkZXYs IHZvaWQgX191c2VyICphcmcpCiAJY29ubiA9IGhjaV9jb25uX2hhc2hfbG9va3VwX2JhKGhkZXYs IEFDTF9MSU5LLCAmcmVxLmJkYWRkcik7CiAJaWYgKGNvbm4pCiAJCXJlcS50eXBlID0gY29ubi0+ YXV0aF90eXBlOworCQlyZXEubGV2ZWwgPSBjb25uLT5zZWNfbGV2ZWw7CiAJaGNpX2Rldl91bmxv Y2tfYmgoaGRldik7CiAKIAlpZiAoIWNvbm4pCmRpZmYgLS1naXQgYS9uZXQvYmx1ZXRvb3RoL2hj aV9ldmVudC5jIGIvbmV0L2JsdWV0b290aC9oY2lfZXZlbnQuYwppbmRleCBiZmVmNWJhLi42ZDZi MDRjIDEwMDY0NAotLS0gYS9uZXQvYmx1ZXRvb3RoL2hjaV9ldmVudC5jCisrKyBiL25ldC9ibHVl dG9vdGgvaGNpX2V2ZW50LmMKQEAgLTE1MjEsNiArMTUyMSwxMCBAQCBzdGF0aWMgaW5saW5lIHZv aWQgaGNpX2xpbmtfa2V5X25vdGlmeV9ldnQoc3RydWN0IGhjaV9kZXYgKmhkZXYsIHN0cnVjdCBz a19idWZmCiAJY29ubiA9IGhjaV9jb25uX2hhc2hfbG9va3VwX2JhKGhkZXYsIEFDTF9MSU5LLCAm ZXYtPmJkYWRkcik7CiAJaWYgKGNvbm4pIHsKIAkJaGNpX2Nvbm5faG9sZChjb25uKTsKKwkJLyog Rm9yIENoYW5nZWQgQ29tYmluYXRpb24gTGluayBLZXkgdGhlIG9ubHkgbGluayBrZXkgaGFzCisJ CSAqIGJlZW4gY2hhbmdlZCwgbm90IGxpbmsga2V5IHR5cGUuICovCisJCWlmIChjb25uLT5rZXlf dHlwZSAhPSBIQ0lfTEtfQ0hBTkdFRURfQ09NQklOQVRJT05fS0VZKQorCQkJY29ubi0+a2V5X3R5 cGUgPSBldi0+a2V5X3R5cGU7CiAJCWNvbm4tPmRpc2NfdGltZW91dCA9IEhDSV9ESVNDT05OX1RJ TUVPVVQ7CiAJCWhjaV9jb25uX3B1dChjb25uKTsKIAl9CmRpZmYgLS1naXQgYS9uZXQvYmx1ZXRv b3RoL2hjaV9zb2NrLmMgYi9uZXQvYmx1ZXRvb3RoL2hjaV9zb2NrLmMKaW5kZXggODNhY2QxNi4u NTAyYTdiMCAxMDA2NDQKLS0tIGEvbmV0L2JsdWV0b290aC9oY2lfc29jay5jCisrKyBiL25ldC9i bHVldG9vdGgvaGNpX3NvY2suYwpAQCAtMjY5LDYgKzI2OSw5IEBAIHN0YXRpYyBpbmxpbmUgaW50 IGhjaV9zb2NrX2JvdW5kX2lvY3RsKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGNtZCwg dW5zaWduCiAJY2FzZSBIQ0lHRVRDT05OSU5GTzoKIAkJcmV0dXJuIGhjaV9nZXRfY29ubl9pbmZv KGhkZXYsICh2b2lkIF9fdXNlciAqKSBhcmcpOwogCisJY2FzZSBIQ0lTRVRDT05OSU5GTzoKKwkJ cmV0dXJuIGhjaV9zZXRfY29ubl9pbmZvKGhkZXYsICh2b2lkIF9fdXNlciAqKSBhcmcpOworCiAJ Y2FzZSBIQ0lHRVRBVVRISU5GTzoKIAkJcmV0dXJuIGhjaV9nZXRfYXV0aF9pbmZvKGhkZXYsICh2 b2lkIF9fdXNlciAqKSBhcmcpOwogCmRpZmYgLS1naXQgYS9uZXQvYmx1ZXRvb3RoL3JmY29tbS9j b3JlLmMgYi9uZXQvYmx1ZXRvb3RoL3JmY29tbS9jb3JlLmMKaW5kZXggN2RjYTkxYi4uMmUyNDhk NSAxMDA2NDQKLS0tIGEvbmV0L2JsdWV0b290aC9yZmNvbW0vY29yZS5jCisrKyBiL25ldC9ibHVl dG9vdGgvcmZjb21tL2NvcmUuYwpAQCAtMjA4Niw3ICsyMDg2LDE1IEBAIHN0YXRpYyB2b2lkIHJm Y29tbV9zZWN1cml0eV9jZm0oc3RydWN0IGhjaV9jb25uICpjb25uLCB1OCBzdGF0dXMsIHU4IGVu Y3J5cHQpCiAJCQljb250aW51ZTsKIAogCQlpZiAoIXN0YXR1cykKLQkJCXNldF9iaXQoUkZDT01N X0FVVEhfQUNDRVBULCAmZC0+ZmxhZ3MpOworCQkJaWYgKGQtPnNlY19sZXZlbCAhPSBCVF9TRUNV UklUWV9ISUdIKQorCQkJCXNldF9iaXQoUkZDT01NX0FVVEhfQUNDRVBULCAmZC0+ZmxhZ3MpOwor CQkJZWxzZQorCQkJCWlmICgoY29ubi0+a2V5X3R5cGUgPT0gSENJX0xLX0FVVEhFTlRJQ0FURURf Q09NQklOQVRJT04pCisJCQkJCXx8IChjb25uLT5rZXlfdHlwZSA9PSBIQ0lfTEtfQ09NQklOQVRJ T04KKwkJCQkJCSYmIGNvbm4tPnBpbl9sZW4gPj0gMTYpKQorCQkJCQlzZXRfYml0KFJGQ09NTV9B VVRIX0FDQ0VQVCwgJmQtPmZsYWdzKTsKKwkJCQllbHNlCisJCQkJCXNldF9iaXQoUkZDT01NX0FV VEhfUkVKRUNULCAmZC0+ZmxhZ3MpOwogCQllbHNlCiAJCQlzZXRfYml0KFJGQ09NTV9BVVRIX1JF SkVDVCwgJmQtPmZsYWdzKTsKIAl9Ci0tIAoxLjcuMC40Cgo= --_003_99B09243E1A5DA4898CDD8B7001114480979219655EXMB04eutieto_--