From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 10.42.180.131 with SMTP id bu3cs12688icb; Mon, 8 Nov 2010 15:04:44 -0800 (PST) Received: by 10.231.35.203 with SMTP id q11mr4510531ibd.197.1289257483968; Mon, 08 Nov 2010 15:04:43 -0800 (PST) Return-Path: Received: from rubyforge.org (rubyforge.org [205.234.109.19]) by mx.google.com with ESMTP id e7si1260387ibb.58.2010.11.08.15.04.43; Mon, 08 Nov 2010 15:04:43 -0800 (PST) Received-SPF: pass (google.com: domain of sup-devel-bounces@rubyforge.org designates 205.234.109.19 as permitted sender) client-ip=205.234.109.19; Authentication-Results: mx.google.com; spf=pass (google.com: domain of sup-devel-bounces@rubyforge.org designates 205.234.109.19 as permitted sender) smtp.mail=sup-devel-bounces@rubyforge.org; dkim=neutral (body hash did not verify) header.i=@gmail.com Received: from rubyforge.org (rubyforge.org [127.0.0.1]) by rubyforge.org (Postfix) with ESMTP id 4EA0619782DC; Mon, 8 Nov 2010 18:04:43 -0500 (EST) Received: from mail-vw0-f50.google.com (mail-vw0-f50.google.com [209.85.212.50]) by rubyforge.org (Postfix) with ESMTP id F16651858346 for ; Mon, 8 Nov 2010 17:32:15 -0500 (EST) Received: by vws4 with SMTP id 4so2343735vws.23 for ; Mon, 08 Nov 2010 14:32:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=GJAbpkuRXufLR0sVeQgfwEXTffnvwmodshjwO1rFl2I=; b=Ga12ExGP/3fjKcoww+8os8Ec1di3u6RLjkAPdq9gJqo1YDEw7Jj2DhQtY/pUhmP/pu fqO6tg+XdMa2e79p/ErFGSxPLMdEVzJcr19AHOssdWezjw45763KECiKilEz7Kc2bPiD 8iVS4UBr1myxN87oAvvZw3PEka3RVFExPLisA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=P4AUVFF4eh9dq6TySUE4ZQR0Gmw8L3AgBinWCixXdxr3zcc+2YvId7Ql69/1kvij1q KAbGT6XwlI+lNBBzrNEwqabaFC6qnpVYjTI2eDZc/5wlsr+fIz9h9RKm6LoNvJ4jrYWI 4ojL+KQNLs2tFHSzfSPcuKQxo1MvajzTe/3X8= MIME-Version: 1.0 Received: by 10.229.73.193 with SMTP id r1mr5563595qcj.257.1289255535517; Mon, 08 Nov 2010 14:32:15 -0800 (PST) Received: by 10.229.219.68 with HTTP; Mon, 8 Nov 2010 14:32:15 -0800 (PST) In-Reply-To: References: Date: Mon, 8 Nov 2010 22:32:15 +0000 Message-ID: From: Hamish D To: sup-devel@rubyforge.org Content-Type: multipart/mixed; boundary=0016364ee022381f540494923263 Subject: Re: [sup-devel] [PATCH] Converted crypto to use the gpgme gem X-BeenThere: sup-devel@rubyforge.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Sup developer discussion List-Id: Sup developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: sup-devel-bounces@rubyforge.org Errors-To: sup-devel-bounces@rubyforge.org --0016364ee022381f540494923263 Content-Type: text/plain; charset=UTF-8 OK, the second patch fixes the problem with the first patch. Hamish Downer On 8 November 2010 11:21, Hamish D wrote: > Best hang fire on this patch. It appears to crash when verifying a signature > when the public key is not available. I'm investigating the problem and how > to fix it cleanly and I'll resubmit once I've done that. > > Hamish > > On Nov 6, 2010 8:08 PM, "Hamish D" wrote: > > I often find that loading long threads of encrypted messages (I have > several of over 10 messages and one of nearly 40) leads to lots of > flickering as the console replaces sup, sup comes back, the console > comes back again ... It is also very slow, and involves writing > decrypted messages to disk (if only temporarily) which could be a > security hole. So I've looked about and found the gpgme gem which > provides an API to use, and allows decryption entirely in memory. > > So I've rewritten lib/sup/crypto.rb to use gpgme. The functionality is > pretty much the same. Things I'm aware of that are different: > > * we can't set the signature algorithm, so we have to use whatever is > set in the user's preferences > * the gpg-args hook has been replaced by the gpg-options hook > > Other than that I think it is the same, although it took some work to > get the signature output to be the same. The other main difference is > that it's much faster and nicer now :) > > It could do with some testing - I don't have much in the way of > messages that cause gpg to complain, so if you do, please try opening > those messages with this code and see if the behaviour is reasonable - > no crashes, given messages about why your message was bad etc. > > Also I guess I should ask if people are happy to use this gem. Is it > hard to use on Macs? I guess I could rewrite this patch so it falls > back to the gpg binary if gpgme is not available ... > > To install this patch on Debian/Ubuntu you can either > > * apt-get install libgpgme-ruby > * apt-get install libgpgme11-dev; gem install gpgme > > Hamish Downer > --0016364ee022381f540494923263 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Converted-crypto-to-use-the-gpgme-gem.patch" Content-Disposition: attachment; filename="0001-Converted-crypto-to-use-the-gpgme-gem.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gg9xg55l0 RnJvbSA1MjQ0MWQxZWI3NDliYjFlM2I1MDI2ZTQyYTMzNGU5YzhmNDU1ODMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYW1pc2ggRG93bmVyIDxkbWlzaGRAZ21haWwuY29tPgpEYXRl OiBGcmksIDUgTm92IDIwMTAgMjI6MzA6NTUgKzAwMDAKU3ViamVjdDogW1BBVENIIDEvMl0gQ29u dmVydGVkIGNyeXB0byB0byB1c2UgdGhlIGdwZ21lIGdlbQoKLS0tCiBiaW4vc3VwICAgICAgICAg ICB8ICAgMTEgKysrCiBsaWIvc3VwL2NyeXB0by5yYiB8ICAyMzEgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTQx IGluc2VydGlvbnMoKyksIDEwMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9iaW4vc3VwIGIv YmluL3N1cAppbmRleCAxMGJlMTYxLi5hZDdhMGQxIDEwMDc1NQotLS0gYS9iaW4vc3VwCisrKyBi L2Jpbi9zdXAKQEAgLTEwLDYgKzEwLDEzIEBAIHJlc2N1ZSBMb2FkRXJyb3IKICAgbm9fbmN1cnNl c3cgPSB0cnVlCiBlbmQKIAorbm9fZ3BnbWUgPSBmYWxzZQorYmVnaW4KKyAgcmVxdWlyZSAnZ3Bn bWUnCityZXNjdWUgTG9hZEVycm9yCisgIG5vX2dwZ21lID0gdHJ1ZQorZW5kCisKIHJlcXVpcmUg J2ZpbGV1dGlscycKIHJlcXVpcmUgJ3Ryb2xsb3AnCiByZXF1aXJlICJzdXAiOyBSZWR3b29kOjpj aGVja19saWJyYXJ5X3ZlcnNpb25fYWdhaW5zdCAiZ2l0IgpAQCAtMjMsNiArMzAsMTAgQEAgaWYg bm9fbmN1cnNlc3cKICAgaW5mbyAiTm8gJ25jdXJzZXN3JyBnZW0gZGV0ZWN0ZWQuIEluc3RhbGwg aXQgZm9yIHdpZGUgY2hhcmFjdGVyIHN1cHBvcnQuIgogZW5kCiAKK2lmIG5vX2dwZ21lCisgIGlu Zm8gIk5vICdncGdtZScgZ2VtIGRldGVjdGVkLiBJbnN0YWxsIGl0IGZvciBlbWFpbCBlbmNyeXB0 aW9uLCBkZWNyeXB0aW9uIGFuZCBzaWduYXR1cmVzLiIKK2VuZAorCiAkb3B0cyA9IFRyb2xsb3A6 Om9wdGlvbnMgZG8KICAgdmVyc2lvbiAic3VwIHYje1JlZHdvb2Q6OlZFUlNJT059IgogICBiYW5u ZXIgPDxFT1MKZGlmZiAtLWdpdCBhL2xpYi9zdXAvY3J5cHRvLnJiIGIvbGliL3N1cC9jcnlwdG8u cmIKaW5kZXggYzdiNTdjMS4uOWQyMWVhMCAxMDA2NDQKLS0tIGEvbGliL3N1cC9jcnlwdG8ucmIK KysrIGIvbGliL3N1cC9jcnlwdG8ucmIKQEAgLTEsMyArMSw4IEBACitiZWdpbgorICByZXF1aXJl ICdncGdtZScKK3Jlc2N1ZSBMb2FkRXJyb3IKK2VuZAorCiBtb2R1bGUgUmVkd29vZAogCiBjbGFz cyBDcnlwdG9NYW5hZ2VyCkBAIC0xMSw3NiArMTYsNzkgQEAgY2xhc3MgQ3J5cHRvTWFuYWdlcgog ICAgIFs6ZW5jcnlwdCwgIkVuY3J5cHQgb25seSJdCiAgICkKIAotICBIb29rTWFuYWdlci5yZWdp c3RlciAiZ3BnLWFyZ3MiLCA8PEVPUwotUnVucyBiZWZvcmUgZ3BnIGlzIGV4ZWN1dGVkLCBhbGxv d2luZyB5b3UgdG8gbW9kaWZ5IHRoZSBhcmd1bWVudHMgKG1vc3QKKyAgSG9va01hbmFnZXIucmVn aXN0ZXIgImdwZy1vcHRpb25zIiwgPDxFT1MKK1J1bnMgYmVmb3JlIGdwZyBpcyBjYWxsZWQsIGFs bG93aW5nIHlvdSB0byBtb2RpZnkgdGhlIG9wdGlvbnMgKG1vc3QKIGxpa2VseSB5b3Ugd291bGQg d2FudCB0byBhZGQgc29tZXRoaW5nIHRvIGNlcnRhaW4gY29tbWFuZHMsIGxpa2UKLS0tdHJ1c3Qt bW9kZWwgYWx3YXlzIHRvIHNpZ25pbmcvZW5jcnlwdGluZyBhIG1lc3NhZ2UsIGJ1dCB3aG8ga25v d3MpLgorezphbHdheXNfdHJ1c3QgPT4gdHJ1ZX0gdG8gZW5jcnlwdGluZyBhIG1lc3NhZ2UsIGJ1 dCB3aG8ga25vd3MpLgogCiBWYXJpYWJsZXM6Ci1hcmdzOiBhcmd1bWVudHMgZm9yIHJ1bm5pbmcg R1BHCitvcGVyYXRpb246IHdoYXQgb3BlcmF0aW9uIHdpbGwgYmUgZG9uZSAoInNpZ24iLCAiZW5j cnlwdCIsICJkZWNyeXB0IiBvciAidmVyaWZ5IikKK29wdGlvbnM6IGEgZGljdGlvbmFyeSBvZiB2 YWx1ZXMgdG8gYmUgcGFzc2VkIHRvIEdQR01FCiAKLVJldHVybiB2YWx1ZTogdGhlIGFyZ3VtZW50 cyBmb3IgcnVubmluZyBHUEcKK1JldHVybiB2YWx1ZTogYSBkaWN0aW9uYXJ5IHRvIGJlIHBhc3Nl ZCB0byBHUEdNRQogRU9TCiAKICAgZGVmIGluaXRpYWxpemUKICAgICBAbXV0ZXggPSBNdXRleC5u ZXcKIAotICAgIGJpbiA9IGB3aGljaCBncGdgLmNob21wCi0gICAgQGNtZCA9IGNhc2UgYmluCi0g ICAgd2hlbiAvXFMvCi0gICAgICBkZWJ1ZyAiY3J5cHRvOiBkZXRlY3RlZCBncGcgYmluYXJ5IGlu ICN7YmlufSIKLSAgICAgICIje2Jpbn0gLS1xdWlldCAtLWJhdGNoIC0tbm8tdmVyYm9zZSAtLWxv Z2dlci1mZCAxIC0tdXNlLWFnZW50IgotICAgIGVsc2UKLSAgICAgIGRlYnVnICJjcnlwdG86IG5v IGdwZyBiaW5hcnkgZGV0ZWN0ZWQiCi0gICAgICBuaWwKKyAgICAjIHRlc3QgaWYgdGhlIGdwZ21l IGdlbSBpcyBhdmFpbGFibGUKKyAgICBAZ3BnbWVfcHJlc2VudCA9IHRydWUKKyAgICBiZWdpbgor ICAgIEdQR01FLmNoZWNrX3ZlcnNpb24oezpwcm90b2NvbCA9PiBHUEdNRTo6UFJPVE9DT0xfT3Bl blBHUH0pCisgICAgcmVzY3VlIE5hbWVFcnJvciwgR1BHTUU6OkVycm9yCisgICAgICBAZ3BnbWVf cHJlc2VudCA9IGZhbHNlCiAgICAgZW5kCiAgIGVuZAogCi0gIGRlZiBoYXZlX2NyeXB0bz87ICFA Y21kLm5pbD8gZW5kCisgIGRlZiBoYXZlX2NyeXB0bz87IEBncGdtZV9wcmVzZW50IGVuZAogCiAg IGRlZiBzaWduIGZyb20sIHRvLCBwYXlsb2FkCi0gICAgcGF5bG9hZF9mbiA9IFRlbXBmaWxlLm5l dyAicmVkd29vZC5wYXlsb2FkIgotICAgIHBheWxvYWRfZm4ud3JpdGUgZm9ybWF0X3BheWxvYWQo cGF5bG9hZCkKLSAgICBwYXlsb2FkX2ZuLmNsb3NlCisgICAgcmV0dXJuIHVua25vd25fc3RhdHVz KGNhbnRfZmluZF9ncGdtZSkgdW5sZXNzIEBncGdtZV9wcmVzZW50CiAKLSAgICBzaWdfZm4gPSBU ZW1wZmlsZS5uZXcgInJlZHdvb2Quc2lnbmF0dXJlIjsgc2lnX2ZuLmNsb3NlCisgICAgZ3BnX29w dHMgPSB7OnByb3RvY29sID0+IEdQR01FOjpQUk9UT0NPTF9PcGVuUEdQLCA6YXJtb3IgPT4gdHJ1 ZSwgOnRleHRtb2RlID0+IHRydWV9CisgICAgZ3BnX29wdHMubWVyZ2UoZ2VuX3NpZ25fdXNlcl9v cHRzKGZyb20pKQorICAgIGdwZ19vcHRzID0gSG9va01hbmFnZXIucnVuKCJncGctb3B0aW9ucyIs IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs6b3BlcmF0aW9uID0+ICJzaWduIiwg Om9wdGlvbnMgPT4gZ3BnX29wdHN9KSB8fCBncGdfb3B0cwogCi0gICAgc2lnbl91c2VyX29wdHMg PSBnZW5fc2lnbl91c2VyX29wdHMgZnJvbQotICAgIG1lc3NhZ2UgPSBydW5fZ3BnICItLW91dHB1 dCAje3NpZ19mbi5wYXRofSAtLXllcyAtLWFybW9yIC0tZGV0YWNoLXNpZ24gLS10ZXh0bW9kZSAt LWRpZ2VzdC1hbGdvIHNoYTI1NiAje3NpZ25fdXNlcl9vcHRzfSAje3BheWxvYWRfZm4ucGF0aH0i LCA6aW50ZXJhY3RpdmUgPT4gdHJ1ZQotICAgIHVubGVzcyAkPy5zdWNjZXNzPwotICAgICAgaW5m byAiRXJyb3Igd2hpbGUgcnVubmluZyBncGc6ICN7bWVzc2FnZX0iCisgICAgYmVnaW4KKyAgICAg IHNpZyA9IEdQR01FLmRldGFjaF9zaWduKGZvcm1hdF9wYXlsb2FkKHBheWxvYWQpLCBncGdfb3B0 cykKKyAgICByZXNjdWUgR1BHTUU6OkVycm9yID0+IGV4YworICAgICAgaW5mbyAiRXJyb3Igd2hp bGUgcnVubmluZyBncGc6ICN7ZXhjLm1lc3NhZ2V9IgogICAgICAgcmFpc2UgRXJyb3IsICJHUEcg Y29tbWFuZCBmYWlsZWQuIFNlZSBsb2cgZm9yIGRldGFpbHMuIgogICAgIGVuZAogCiAgICAgZW52 ZWxvcGUgPSBSTWFpbDo6TWVzc2FnZS5uZXcKLSAgICBlbnZlbG9wZS5oZWFkZXJbIkNvbnRlbnQt VHlwZSJdID0gJ211bHRpcGFydC9zaWduZWQ7IHByb3RvY29sPWFwcGxpY2F0aW9uL3BncC1zaWdu YXR1cmU7IG1pY2FsZz1wZ3Atc2hhMjU2JworICAgIGVudmVsb3BlLmhlYWRlclsiQ29udGVudC1U eXBlIl0gPSAnbXVsdGlwYXJ0L3NpZ25lZDsgcHJvdG9jb2w9YXBwbGljYXRpb24vcGdwLXNpZ25h dHVyZScKIAogICAgIGVudmVsb3BlLmFkZF9wYXJ0IHBheWxvYWQKLSAgICBzaWduYXR1cmUgPSBS TWFpbDo6TWVzc2FnZS5tYWtlX2F0dGFjaG1lbnQgSU8ucmVhZChzaWdfZm4ucGF0aCksICJhcHBs aWNhdGlvbi9wZ3Atc2lnbmF0dXJlIiwgbmlsLCAic2lnbmF0dXJlLmFzYyIKKyAgICBzaWduYXR1 cmUgPSBSTWFpbDo6TWVzc2FnZS5tYWtlX2F0dGFjaG1lbnQgc2lnLCAiYXBwbGljYXRpb24vcGdw LXNpZ25hdHVyZSIsIG5pbCwgInNpZ25hdHVyZS5hc2MiCiAgICAgZW52ZWxvcGUuYWRkX3BhcnQg c2lnbmF0dXJlCiAgICAgZW52ZWxvcGUKICAgZW5kCiAKICAgZGVmIGVuY3J5cHQgZnJvbSwgdG8s IHBheWxvYWQsIHNpZ249ZmFsc2UKLSAgICBwYXlsb2FkX2ZuID0gVGVtcGZpbGUubmV3ICJyZWR3 b29kLnBheWxvYWQiCi0gICAgcGF5bG9hZF9mbi53cml0ZSBmb3JtYXRfcGF5bG9hZChwYXlsb2Fk KQotICAgIHBheWxvYWRfZm4uY2xvc2UKLQotICAgIGVuY3J5cHRlZF9mbiA9IFRlbXBmaWxlLm5l dyAicmVkd29vZC5lbmNyeXB0ZWQiOyBlbmNyeXB0ZWRfZm4uY2xvc2UKLQotICAgIHJlY2lwaWVu dF9vcHRzID0gKHRvICsgWyBmcm9tIF0gKS5tYXAgeyB8cnwgIi0tcmVjaXBpZW50ICc8I3tyfT4n IiB9LmpvaW4oIiAiKQotICAgIHNpZ25fb3B0cyA9ICIiCi0gICAgc2lnbl9vcHRzID0gIi0tc2ln biAtLWRpZ2VzdC1hbGdvIHNoYTI1NiAiICsgZ2VuX3NpZ25fdXNlcl9vcHRzKGZyb20pIGlmIHNp Z24KLSAgICBtZXNzYWdlID0gcnVuX2dwZyAiLS1vdXRwdXQgI3tlbmNyeXB0ZWRfZm4ucGF0aH0g LS15ZXMgLS1hcm1vciAtLWVuY3J5cHQgLS10ZXh0bW9kZSAje3NpZ25fb3B0c30gI3tyZWNpcGll bnRfb3B0c30gI3twYXlsb2FkX2ZuLnBhdGh9IiwgOmludGVyYWN0aXZlID0+IHRydWUKLSAgICB1 bmxlc3MgJD8uc3VjY2Vzcz8KLSAgICAgIGluZm8gIkVycm9yIHdoaWxlIHJ1bm5pbmcgZ3BnOiAj e21lc3NhZ2V9IgorICAgIHJldHVybiB1bmtub3duX3N0YXR1cyhjYW50X2ZpbmRfZ3BnbWUpIHVu bGVzcyBAZ3BnbWVfcHJlc2VudAorCisgICAgZ3BnX29wdHMgPSB7OnByb3RvY29sID0+IEdQR01F OjpQUk9UT0NPTF9PcGVuUEdQLCA6YXJtb3IgPT4gdHJ1ZSwgOnRleHRtb2RlID0+IHRydWV9Cisg ICAgaWYgc2lnbgorICAgICAgZ3BnX29wdHMubWVyZ2UoZ2VuX3NpZ25fdXNlcl9vcHRzKGZyb20p KSAKKyAgICAgIGdwZ19vcHRzLm1lcmdlKHs6c2lnbiA9PiB0cnVlfSkKKyAgICBlbmQKKyAgICBn cGdfb3B0cyA9IEhvb2tNYW5hZ2VyLnJ1bigiZ3BnLW9wdGlvbnMiLCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7Om9wZXJhdGlvbiA9PiAiZW5jcnlwdCIsIDpvcHRpb25zID0+IGdw Z19vcHRzfSkgfHwgZ3BnX29wdHMKKyAgICByZWNpcGllbnRzID0gdG8gKyBbZnJvbV0KKworICAg IGJlZ2luCisgICAgICBjaXBoZXIgPSBHUEdNRS5lbmNyeXB0KHJlY2lwaWVudHMsIGZvcm1hdF9w YXlsb2FkKHBheWxvYWQpLCBncGdfb3B0cykKKyAgICByZXNjdWUgR1BHTUU6OkVycm9yID0+IGV4 YworICAgICAgaW5mbyAiRXJyb3Igd2hpbGUgcnVubmluZyBncGc6ICN7ZXhjLm1lc3NhZ2V9Igog ICAgICAgcmFpc2UgRXJyb3IsICJHUEcgY29tbWFuZCBmYWlsZWQuIFNlZSBsb2cgZm9yIGRldGFp bHMuIgogICAgIGVuZAogCiAgICAgZW5jcnlwdGVkX3BheWxvYWQgPSBSTWFpbDo6TWVzc2FnZS5u ZXcKICAgICBlbmNyeXB0ZWRfcGF5bG9hZC5oZWFkZXJbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxp Y2F0aW9uL29jdGV0LXN0cmVhbSIKICAgICBlbmNyeXB0ZWRfcGF5bG9hZC5oZWFkZXJbIkNvbnRl bnQtRGlzcG9zaXRpb24iXSA9ICdpbmxpbmU7IGZpbGVuYW1lPSJtc2cuYXNjIicKLSAgICBlbmNy eXB0ZWRfcGF5bG9hZC5ib2R5ID0gSU8ucmVhZChlbmNyeXB0ZWRfZm4ucGF0aCkKKyAgICBlbmNy eXB0ZWRfcGF5bG9hZC5ib2R5ID0gY2lwaGVyCiAKICAgICBjb250cm9sID0gUk1haWw6Ok1lc3Nh Z2UubmV3CiAgICAgY29udHJvbC5oZWFkZXJbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9u L3BncC1lbmNyeXB0ZWQiCkBAIC05OSw3MCArMTA3LDg1IEBAIEVPUwogICAgIGVuY3J5cHQgZnJv bSwgdG8sIHBheWxvYWQsIHRydWUKICAgZW5kCiAKLSAgZGVmIHZlcmlmaWVkX29rPyBvdXRwdXQs IHJjCi0gICAgb3V0cHV0X2xpbmVzID0gb3V0cHV0LnNwbGl0KC9cbi8pCi0KLSAgICBpZiBvdXRw dXQgPX4gL15ncGc6ICguKiBzaWduYXR1cmUgZnJvbSAuKiQpLwotICAgICAgaWYgcmMgPT0gMAot ICAgICAgICBDaHVuazo6Q3J5cHRvTm90aWNlLm5ldyA6dmFsaWQsICQxLCBvdXRwdXRfbGluZXMK LSAgICAgIGVsc2UKLSAgICAgICAgQ2h1bms6OkNyeXB0b05vdGljZS5uZXcgOmludmFsaWQsICQx LCBvdXRwdXRfbGluZXMKKyAgZGVmIHZlcmlmaWVkX29rPyB2ZXJpZnlfcmVzdWx0CisgICAgdmFs aWQgPSB0cnVlCisgICAgdW5rbm93biA9IGZhbHNlCisgICAgb3V0cHV0X2xpbmVzID0gW10KKwor ICAgIHZlcmlmeV9yZXN1bHQuc2lnbmF0dXJlcy5lYWNoIGRvIHxzaWduYXR1cmV8CisgICAgICBv dXRwdXRfbGluZXMucHVzaChzaWdfb3V0cHV0X2xpbmVzKHNpZ25hdHVyZSkpCisgICAgICBvdXRw dXRfbGluZXMuZmxhdHRlbiEKKyAgICAgIGVycl9jb2RlID0gR1BHTUU6OmdwZ21lX2Vycl9jb2Rl KHNpZ25hdHVyZS5zdGF0dXMpCisgICAgICBpZiBlcnJfY29kZSA9PSBHUEdNRTo6R1BHX0VSUl9C QURfU0lHTkFUVVJFCisgICAgICAgIHZhbGlkID0gZmFsc2UgCisgICAgICBlbHNpZiBlcnJfY29k ZSAhPSBHUEdNRTo6R1BHX0VSUl9OT19FUlJPUgorICAgICAgICB2YWxpZCA9IGZhbHNlCisgICAg ICAgIHVua25vd24gPSB0cnVlCiAgICAgICBlbmQKLSAgICBlbHNpZiBvdXRwdXRfbGluZXMubGVu Z3RoID09IDAgJiYgcmMgPT0gMAotICAgICAgIyB0aGUgbWVzc2FnZSB3YXNuJ3Qgc2lnbmVkCisg ICAgZW5kCisKKyAgICBpZiBvdXRwdXRfbGluZXMubGVuZ3RoID09IDAKICAgICAgIENodW5rOjpD cnlwdG9Ob3RpY2UubmV3IDp2YWxpZCwgIkVuY3J5cHRlZCBtZXNzYWdlIHdhc24ndCBzaWduZWQi LCBvdXRwdXRfbGluZXMKKyAgICBlbHNpZiB2YWxpZAorICAgICAgQ2h1bms6OkNyeXB0b05vdGlj ZS5uZXcoOnZhbGlkLCBzaW1wbGlmeV9zaWdfbGluZSh2ZXJpZnlfcmVzdWx0LnNpZ25hdHVyZXNb MF0udG9fcyksIG91dHB1dF9saW5lcykKKyAgICBlbHNpZiAhdW5rbm93bgorICAgICAgQ2h1bms6 OkNyeXB0b05vdGljZS5uZXcoOmludmFsaWQsIHNpbXBsaWZ5X3NpZ19saW5lKHZlcmlmeV9yZXN1 bHQuc2lnbmF0dXJlc1swXS50b19zKSwgb3V0cHV0X2xpbmVzKQogICAgIGVsc2UKICAgICAgIHVu a25vd25fc3RhdHVzIG91dHB1dF9saW5lcwogICAgIGVuZAogICBlbmQKIAogICBkZWYgdmVyaWZ5 IHBheWxvYWQsIHNpZ25hdHVyZSwgZGV0YWNoZWQ9dHJ1ZSAjIGJvdGggUnVieU1haWw6Ok1lc3Nh Z2Ugb2JqZWN0cwotICAgIHJldHVybiB1bmtub3duX3N0YXR1cyhjYW50X2ZpbmRfYmluYXJ5KSB1 bmxlc3MgQGNtZAorICAgIHJldHVybiB1bmtub3duX3N0YXR1cyhjYW50X2ZpbmRfZ3BnbWUpIHVu bGVzcyBAZ3BnbWVfcHJlc2VudAogCisgICAgZ3BnX29wdHMgPSB7OnByb3RvY29sID0+IEdQR01F OjpQUk9UT0NPTF9PcGVuUEdQfQorICAgIGdwZ19vcHRzID0gSG9va01hbmFnZXIucnVuKCJncGct b3B0aW9ucyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs6b3BlcmF0aW9uID0+ ICJ2ZXJpZnkiLCA6b3B0aW9ucyA9PiBncGdfb3B0c30pIHx8IGdwZ19vcHRzCisgICAgY3R4ID0g R1BHTUU6OkN0eC5uZXcoZ3BnX29wdHMpIAorICAgIHNpZ19kYXRhID0gR1BHTUU6OkRhdGEuZnJv bV9zdHIgc2lnbmF0dXJlLmRlY29kZQogICAgIGlmIGRldGFjaGVkCi0gICAgICBwYXlsb2FkX2Zu ID0gVGVtcGZpbGUubmV3ICJyZWR3b29kLnBheWxvYWQiCi0gICAgICBwYXlsb2FkX2ZuLndyaXRl IGZvcm1hdF9wYXlsb2FkKHBheWxvYWQpCi0gICAgICBwYXlsb2FkX2ZuLmNsb3NlCi0gICAgZW5k Ci0KLSAgICBzaWduYXR1cmVfZm4gPSBUZW1wZmlsZS5uZXcgInJlZHdvb2Quc2lnbmF0dXJlIgot ICAgIHNpZ25hdHVyZV9mbi53cml0ZSBzaWduYXR1cmUuZGVjb2RlCi0gICAgc2lnbmF0dXJlX2Zu LmNsb3NlCi0KLSAgICBpZiBkZXRhY2hlZAotICAgICAgb3V0cHV0ID0gcnVuX2dwZyAiLS12ZXJp ZnkgI3tzaWduYXR1cmVfZm4ucGF0aH0gI3twYXlsb2FkX2ZuLnBhdGh9IgorICAgICAgc2lnbmVk X3RleHRfZGF0YSA9IEdQR01FOjpEYXRhLmZyb21fc3RyKGZvcm1hdF9wYXlsb2FkKHBheWxvYWQp KQorICAgICAgcGxhaW5fZGF0YSA9IG5pbAogICAgIGVsc2UKLSAgICAgIG91dHB1dCA9IHJ1bl9n cGcgIi0tdmVyaWZ5ICN7c2lnbmF0dXJlX2ZuLnBhdGh9IgorICAgICAgc2lnbmVkX3RleHRfZGF0 YSA9IG5pbAorICAgICAgcGxhaW5fZGF0YSA9IEdQR01FOjpEYXRhLmVtcHR5CiAgICAgZW5kCi0K LSAgICBzZWxmLnZlcmlmaWVkX29rPyBvdXRwdXQsICQ/CisgICAgYmVnaW4KKyAgICAgIGN0eC52 ZXJpZnkoc2lnX2RhdGEsIHNpZ25lZF90ZXh0X2RhdGEsIHBsYWluX2RhdGEpCisgICAgcmVzY3Vl IEdQR01FOjpFcnJvciA9PiBleGMKKyAgICAgIHJldHVybiB1bmtub3duX3N0YXR1cyBleGMubWVz c2FnZSAKKyAgICBlbmQKKyAgICBzZWxmLnZlcmlmaWVkX29rPyBjdHgudmVyaWZ5X3Jlc3VsdAog ICBlbmQKIAogICAjIyByZXR1cm5zIGRlY3J5cHRlZF9tZXNzYWdlLCBzdGF0dXMsIGRlc2MsIGxp bmVzCiAgIGRlZiBkZWNyeXB0IHBheWxvYWQsIGFybW9yPWZhbHNlICMgYSBSdWJ5TWFpbDo6TWVz c2FnZSBvYmplY3QKLSAgICByZXR1cm4gdW5rbm93bl9zdGF0dXMoY2FudF9maW5kX2JpbmFyeSkg dW5sZXNzIEBjbWQKLQotICAgIHBheWxvYWRfZm4gPSBUZW1wZmlsZS5uZXcoWyJyZWR3b29kLnBh eWxvYWQiLCAiLmFzYyJdKQotICAgIHBheWxvYWRfZm4ud3JpdGUgcGF5bG9hZC50b19zCi0gICAg cGF5bG9hZF9mbi5jbG9zZQotCi0gICAgb3V0cHV0X2ZuID0gVGVtcGZpbGUubmV3ICJyZWR3b29k Lm91dHB1dCIKLSAgICBvdXRwdXRfZm4uY2xvc2UKLQotICAgIG1lc3NhZ2UgPSBydW5fZ3BnICIt LW91dHB1dCAje291dHB1dF9mbi5wYXRofSAtLXNraXAtdmVyaWZ5IC0teWVzIC0tZGVjcnlwdCAj e3BheWxvYWRfZm4ucGF0aH0iLCA6aW50ZXJhY3RpdmUgPT4gdHJ1ZQotCi0gICAgdW5sZXNzICQ/ LnN1Y2Nlc3M/Ci0gICAgICBpbmZvICJFcnJvciB3aGlsZSBydW5uaW5nIGdwZzogI3ttZXNzYWdl fSIKLSAgICAgIHJldHVybiBDaHVuazo6Q3J5cHRvTm90aWNlLm5ldyg6aW52YWxpZCwgIlRoaXMg bWVzc2FnZSBjb3VsZCBub3QgYmUgZGVjcnlwdGVkIiwgbWVzc2FnZS5zcGxpdCgiXG4iKSkKKyAg ICByZXR1cm4gdW5rbm93bl9zdGF0dXMoY2FudF9maW5kX2dwZ21lKSB1bmxlc3MgQGdwZ21lX3By ZXNlbnQKKworICAgIGdwZ19vcHRzID0gezpwcm90b2NvbCA9PiBHUEdNRTo6UFJPVE9DT0xfT3Bl blBHUH0KKyAgICBncGdfb3B0cyA9IEhvb2tNYW5hZ2VyLnJ1bigiZ3BnLW9wdGlvbnMiLCAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Om9wZXJhdGlvbiA9PiAiZGVjcnlwdCIsIDpv cHRpb25zID0+IGdwZ19vcHRzfSkgfHwgZ3BnX29wdHMKKyAgICBjdHggPSBHUEdNRTo6Q3R4Lm5l dyhncGdfb3B0cykgCisgICAgY2lwaGVyX2RhdGEgPSBHUEdNRTo6RGF0YS5mcm9tX3N0cihmb3Jt YXRfcGF5bG9hZChwYXlsb2FkKSkKKyAgICBwbGFpbl9kYXRhID0gR1BHTUU6OkRhdGEuZW1wdHkK KyAgICBiZWdpbgorICAgICAgY3R4LmRlY3J5cHRfdmVyaWZ5KGNpcGhlcl9kYXRhLCBwbGFpbl9k YXRhKQorICAgIHJlc2N1ZSBHUEdNRTo6RXJyb3IgPT4gZXhjCisgICAgICBpbmZvICJFcnJvciB3 aGlsZSBydW5uaW5nIGdwZzogI3tleGMubWVzc2FnZX0iCisgICAgICByZXR1cm4gQ2h1bms6OkNy eXB0b05vdGljZS5uZXcoOmludmFsaWQsICJUaGlzIG1lc3NhZ2UgY291bGQgbm90IGJlIGRlY3J5 cHRlZCIsIGV4Yy5tZXNzYWdlKQogICAgIGVuZAotCi0gICAgb3V0cHV0ID0gSU8ucmVhZCBvdXRw dXRfZm4ucGF0aAorICAgIHNpZyA9IHNlbGYudmVyaWZpZWRfb2s/IGN0eC52ZXJpZnlfcmVzdWx0 CisgICAgcGxhaW5fZGF0YS5zZWVrKDAsIElPOjpTRUVLX1NFVCkKKyAgICBvdXRwdXQgPSBwbGFp bl9kYXRhLnJlYWQKICAgICBvdXRwdXQuZm9yY2VfZW5jb2RpbmcgRW5jb2Rpbmc6OkFTQ0lJXzhC SVQgaWYgb3V0cHV0LnJlc3BvbmRfdG8/IDpmb3JjZV9lbmNvZGluZwogCisgICAgIyMgVE9ETzog dGVzdCB0byBzZWUgaWYgaXQgaXMgc3RpbGwgbmVjZXNzYXJ5IHRvIGRvIGEgMm5kIHJ1biBpZiB2 ZXJpZnkKKyAgICAjIyBmYWlscy4KKyAgICAjCiAgICAgIyMgY2hlY2sgZm9yIGEgdmFsaWQgc2ln bmF0dXJlIGluIGFuIGV4dHJhIHJ1biBiZWNhdXNlIGdwZyBhYm9ydHMgaWYgdGhlCiAgICAgIyMg c2lnbmF0dXJlIGNhbm5vdCBiZSB2ZXJpZmllZCAoYnV0IGl0IGlzIHN0aWxsIGFibGUgdG8gZGVj cnlwdCkKLSAgICBzaWdvdXRwdXQgPSBydW5fZ3BnICIje3BheWxvYWRfZm4ucGF0aH0iCi0gICAg c2lnID0gc2VsZi52ZXJpZmllZF9vaz8gc2lnb3V0cHV0LCAkPworICAgICNzaWdvdXRwdXQgPSBy dW5fZ3BnICIje3BheWxvYWRfZm4ucGF0aH0iCisgICAgI3NpZyA9IHNlbGYub2xkX3ZlcmlmaWVk X29rPyBzaWdvdXRwdXQsICQ/CiAKICAgICBpZiBhcm1vcgogICAgICAgbXNnID0gUk1haWw6Ok1l c3NhZ2UubmV3CkBAIC0yMDcsOCArMjMwLDggQEAgcHJpdmF0ZQogICAgIENodW5rOjpDcnlwdG9O b3RpY2UubmV3IDp1bmtub3duLCAiVW5hYmxlIHRvIGRldGVybWluZSB2YWxpZGl0eSBvZiBjcnlw dG9ncmFwaGljIHNpZ25hdHVyZSIsIGxpbmVzCiAgIGVuZAogCi0gIGRlZiBjYW50X2ZpbmRfYmlu YXJ5Ci0gICAgWyJDYW4ndCBmaW5kIGdwZyBiaW5hcnkgaW4gcGF0aC4iXQorICBkZWYgY2FudF9m aW5kX2dwZ21lCisgICAgWyJDYW4ndCBmaW5kIGdwZ21lIGdlbS4iXQogICBlbmQKIAogICAjIyBo ZXJlJ3Mgd2hlcmUgd2UgbXVuZ2Ugcm1haWwgb3V0cHV0IGludG8gdGhlIGZvcm1hdCB0aGF0IHNp Z25lZC9lbmNyeXB0ZWQKQEAgLTIxNyw2ICsyNDAsMjggQEAgcHJpdmF0ZQogICAgIHBheWxvYWQu dG9fcy5nc3ViKC8oXnxbXlxyXSlcbi8sICJcXDFcclxuIikKICAgZW5kCiAKKyAgIyByZW1vdmUg dGhlIGhleCBrZXlfaWQgYW5kIGluZm8gaW4gKCkKKyAgZGVmIHNpbXBsaWZ5X3NpZ19saW5lIHNp Z19saW5lCisgICAgc2lnX2xpbmUgPSBzaWdfbGluZS5zdWIoL2Zyb20gWzAtOUEtRl17MTZ9IC8s ICJmcm9tICIpCisgICAgc2lnX2xpbmUuc3ViKC9cKC4rXCkgPC8sICI8IikKKyAgZW5kCisKKyAg ZGVmIHNpZ19vdXRwdXRfbGluZXMgc2lnbmF0dXJlCisgICAgdGltZV9saW5lID0gIlNpZ25hdHVy ZSBtYWRlICIgKyBzaWduYXR1cmUudGltZXN0YW1wLnN0cmZ0aW1lKCIlYSAlZCAlYiAlWSAlSDol TTolUyAlWiIpICsKKyAgICAgICAgICAgICAgICAiIHVzaW5nIGtleSBJRCAiICsgc2lnbmF0dXJl LmZpbmdlcnByaW50Wy04Li4tMV0KKyAgICBmaXJzdF9zaWcgPSBzaWduYXR1cmUudG9fcy5zdWIo L2Zyb20gWzAtOUEtRl17MTZ9IC8sICdmcm9tICInKSArICciJworICAgIG91dHB1dF9saW5lcyA9 IFt0aW1lX2xpbmUsIGZpcnN0X3NpZ10KKworICAgIGN0eCA9IEdQR01FOjpDdHgubmV3CisgICAg aWYgZnJvbV9rZXkgPSBjdHguZ2V0X2tleShzaWduYXR1cmUuZmluZ2VycHJpbnQpCisgICAgICBp ZiBmcm9tX2tleS51aWRzLmxlbmd0aCA+IDEKKyAgICAgICAgYWthX2xpc3QgPSBmcm9tX2tleS51 aWRzWzEuLi0xXQorICAgICAgICBha2FfbGlzdC5lYWNoIHsgfGFrYXwgb3V0cHV0X2xpbmVzIDw8 ICcgICAgICAgICAgICAgICAgYWthICInICsgYWthLnVpZCArICciJyB9CisgICAgICBlbmQKKyAg ICBlbmQKKyAgICBvdXRwdXRfbGluZXMKKyAgZW5kCisKICAgIyBsb2dpYyBpczoKICAgIyBpZiAg ICBncGdrZXkgc2V0IGZvciB0aGlzIGFjY291bnQsIHRoZW4gdXNlIHRoYXQKICAgIyBlbHNpZiBv bmx5IG9uZSBhY2NvdW50LCAgICAgICAgICAgIHRoZW4gbGVhdmUgYmxhbmsgc28gZ3BnIGRlZmF1 bHQgd2lsbCBiZSB1c2VyCkBAIC0yMjQsMzAgKzI2OSwxNCBAQCBwcml2YXRlCiAgIGRlZiBnZW5f c2lnbl91c2VyX29wdHMgZnJvbQogICAgIGFjY291bnQgPSBBY2NvdW50TWFuYWdlci5hY2NvdW50 X2ZvciBmcm9tCiAgICAgaWYgIWFjY291bnQuZ3Bna2V5Lm5pbD8KLSAgICAgIG9wdHMgPSAiLS1s b2NhbC11c2VyICcje2FjY291bnQuZ3Bna2V5fSciCisgICAgICBvcHRzID0gezpzaWduZXJzID0+ IGFjY291bnQuZ3Bna2V5fQogICAgIGVsc2lmIEFjY291bnRNYW5hZ2VyLnVzZXJfZW1haWxzLmxl bmd0aCA9PSAxCiAgICAgICAjIG9ubHkgb25lIGFjY291bnQKLSAgICAgIG9wdHMgPSAiIgorICAg ICAgb3B0cyA9IHt9CiAgICAgZWxzZQotICAgICAgb3B0cyA9ICItLWxvY2FsLXVzZXIgJyN7ZnJv bX0nIiAKKyAgICAgIG9wdHMgPSB7OnNpZ25lcnMgPT4gZnJvbX0KICAgICBlbmQKICAgICBvcHRz CiAgIGVuZAotCi0gIGRlZiBydW5fZ3BnIGFyZ3MsIG9wdHM9e30KLSAgICBhcmdzID0gSG9va01h bmFnZXIucnVuKCJncGctYXJncyIsIHsgOmFyZ3MgPT4gYXJncyB9KSB8fCBhcmdzCi0gICAgY21k ID0gIkxDX01FU1NBR0VTPUMgI3tAY21kfSAje2FyZ3N9IgotICAgIGlmIG9wdHNbOmludGVyYWN0 aXZlXSAmJiBCdWZmZXJNYW5hZ2VyLmluc3RhbnRpYXRlZD8KLSAgICAgIG91dHB1dF9mbiA9IFRl bXBmaWxlLm5ldyAicmVkd29vZC5vdXRwdXQiCi0gICAgICBvdXRwdXRfZm4uY2xvc2UKLSAgICAg IGNtZCArPSAiID4gI3tvdXRwdXRfZm4ucGF0aH0gMj4gL2Rldi9udWxsIgotICAgICAgZGVidWcg ImNyeXB0bzogcnVubmluZzogI3tjbWR9IgotICAgICAgQnVmZmVyTWFuYWdlci5zaGVsbF9vdXQg Y21kCi0gICAgICBJTy5yZWFkKG91dHB1dF9mbi5wYXRoKSByZXNjdWUgImNhbid0IHJlYWQgb3V0 cHV0IgotICAgIGVsc2UKLSAgICAgIGRlYnVnICJjcnlwdG86IHJ1bm5pbmc6ICN7Y21kfSIKLSAg ICAgIGAje2NtZH0gMj4gL2Rldi9udWxsYAotICAgIGVuZAotICBlbmQKIGVuZAogZW5kCi0tIAox LjcuMQoK --0016364ee022381f540494923263 Content-Type: text/x-patch; charset=US-ASCII; name="0002-catch-exception-when-no-public-key-present.patch" Content-Disposition: attachment; filename="0002-catch-exception-when-no-public-key-present.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gg9xgars1 RnJvbSA3YjlhMWVlZWFhYTI1OTMxOTYzZTJkZTQ5NDEwZDdjYjBjN2U2NzcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYW1pc2ggRG93bmVyIDxkbWlzaGRAZ21haWwuY29tPgpEYXRl OiBNb24sIDggTm92IDIwMTAgMjI6MzE6MDEgKzAwMDAKU3ViamVjdDogW1BBVENIIDIvMl0gY2F0 Y2ggZXhjZXB0aW9uIHdoZW4gbm8gcHVibGljIGtleSBwcmVzZW50CgotLS0KIGxpYi9zdXAvY3J5 cHRvLnJiIHwgICAxNiArKysrKysrKysrKystLS0tCiAxIGZpbGVzIGNoYW5nZWQsIDEyIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL3N1cC9jcnlwdG8ucmIg Yi9saWIvc3VwL2NyeXB0by5yYgppbmRleCA5ZDIxZWEwLi44MzE3NmQ5IDEwMDY0NAotLS0gYS9s aWIvc3VwL2NyeXB0by5yYgorKysgYi9saWIvc3VwL2NyeXB0by5yYgpAQCAtMjQ3LDE5ICsyNDcs MjcgQEAgcHJpdmF0ZQogICBlbmQKIAogICBkZWYgc2lnX291dHB1dF9saW5lcyBzaWduYXR1cmUK KyAgICAjIEl0IGFwcGVhcnMgdGhhdCB0aGUgc2lnbmF0dXJlLnRvX3MgY2FsbCBjYW4gbGVhZCB0 byBhIEVPRkVycm9yIGlmCisgICAgIyB0aGUga2V5IGlzIG5vdCBmb3VuZC4gU28gc3RhcnQgYnkg bG9va2luZyBmb3IgdGhlIGtleS4KKyAgICBjdHggPSBHUEdNRTo6Q3R4Lm5ldworICAgIGJlZ2lu CisgICAgICBmcm9tX2tleSA9IGN0eC5nZXRfa2V5KHNpZ25hdHVyZS5maW5nZXJwcmludCkKKyAg ICAgIGZpcnN0X3NpZyA9IHNpZ25hdHVyZS50b19zLnN1YigvZnJvbSBbMC05QS1GXXsxNn0gLywg J2Zyb20gIicpICsgJyInCisgICAgcmVzY3VlIEVPRkVycm9yID0+IGVycm9yCisgICAgICBmaXJz dF9zaWcgPSAiTm8gcHVibGljIGtleSBhdmFpbGFibGUgZm9yICN7c2lnbmF0dXJlLmZpbmdlcnBy aW50fSIKKyAgICBlbmQKKwogICAgIHRpbWVfbGluZSA9ICJTaWduYXR1cmUgbWFkZSAiICsgc2ln bmF0dXJlLnRpbWVzdGFtcC5zdHJmdGltZSgiJWEgJWQgJWIgJVkgJUg6JU06JVMgJVoiKSArCiAg ICAgICAgICAgICAgICAgIiB1c2luZyBrZXkgSUQgIiArIHNpZ25hdHVyZS5maW5nZXJwcmludFst OC4uLTFdCi0gICAgZmlyc3Rfc2lnID0gc2lnbmF0dXJlLnRvX3Muc3ViKC9mcm9tIFswLTlBLUZd ezE2fSAvLCAnZnJvbSAiJykgKyAnIicKICAgICBvdXRwdXRfbGluZXMgPSBbdGltZV9saW5lLCBm aXJzdF9zaWddCiAKLSAgICBjdHggPSBHUEdNRTo6Q3R4Lm5ldwotICAgIGlmIGZyb21fa2V5ID0g Y3R4LmdldF9rZXkoc2lnbmF0dXJlLmZpbmdlcnByaW50KQorICAgIGlmIGZyb21fa2V5IAogICAg ICAgaWYgZnJvbV9rZXkudWlkcy5sZW5ndGggPiAxCiAgICAgICAgIGFrYV9saXN0ID0gZnJvbV9r ZXkudWlkc1sxLi4tMV0KICAgICAgICAgYWthX2xpc3QuZWFjaCB7IHxha2F8IG91dHB1dF9saW5l cyA8PCAnICAgICAgICAgICAgICAgIGFrYSAiJyArIGFrYS51aWQgKyAnIicgfQogICAgICAgZW5k CiAgICAgZW5kCi0gICAgb3V0cHV0X2xpbmVzCisgICAgb3V0cHV0X2xpbmVzLmZsYXR0ZW4hCiAg IGVuZAogCiAgICMgbG9naWMgaXM6Ci0tIAoxLjcuMQoK --0016364ee022381f540494923263 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Sup-devel mailing list Sup-devel@rubyforge.org http://rubyforge.org/mailman/listinfo/sup-devel --0016364ee022381f540494923263--