<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>31825</bug_id>
          
          <creation_ts>2009-11-24 04:47:20 -0800</creation_ts>
          <short_desc>[Android] Android is missing implementation of SSL Key generator functions.</short_desc>
          <delta_ts>2009-11-25 08:07:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrei Popescu">andreip</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>android-webkit-unforking</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>166033</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2009-11-24 04:47:20 -0800</bug_when>
    <thetext>WebCore requires the varioius platform ports to implement 

void getSupportedKeySizes(Vector&lt;String&gt;&amp; keys)

and

String signedPublicKeyAndChallengeString(unsigned index, const String&amp; challenge, const KURL&amp; url)

Android is missing the implementation for these functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166038</commentid>
    <comment_count>1</comment_count>
      <attachid>43760</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2009-11-24 05:00:25 -0800</bug_when>
    <thetext>Created attachment 43760
Add implementation of SSL Key Generator functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166043</commentid>
    <comment_count>2</comment_count>
      <attachid>43762</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2009-11-24 05:40:22 -0800</bug_when>
    <thetext>Created attachment 43762
Add implementation of SSL Key Generator functions.

Fixed a style problem (indent inside a namespace).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166135</commentid>
    <comment_count>3</comment_count>
      <attachid>43762</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 10:11:06 -0800</bug_when>
    <thetext>Comment on attachment 43762
Add implementation of SSL Key Generator functions.

Bah!  ChromiumBridge was bad enough.  Sad that this model has infected android too.  Why wouldn&apos;t these be a Client interface hung off of Page?  Or why do these need to be implemented in WebKit at all instead of a library which WebCore could directly link to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166141</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-11-24 10:16:00 -0800</bug_when>
    <thetext>&gt; Bah!  ChromiumBridge was bad enough.  Sad that this model has infected android
&gt; too.  Why wouldn&apos;t these be a Client interface hung off of Page?  Or why do
&gt; these need to be implemented in WebKit at all instead of a library which
&gt; WebCore could directly link to?

Andrei is trying to move the Android port to match the same model as Chromium so that we can share the WebKit API.  In that world, the methods contained by ChromiumBridge correspond to WebKitClient method.  It seems to me of little value to introduce an intermediate Client interface hung off of Page for this.  The value of ChromiumBridge (or PlatformBridge) is that it provides a grouping for these methods.  I don&apos;t understand you want more layers here.

Andrei and I discussed renaming ChromiumBridge to PlatformBridge.  I would personally prefer to see that change happen first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166148</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 10:24:22 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Andrei is trying to move the Android port to match the same model as Chromium
&gt; so that we can share the WebKit API.  In that world, the methods contained by
&gt; ChromiumBridge correspond to WebKitClient method.  It seems to me of little
&gt; value to introduce an intermediate Client interface hung off of Page for this. 
&gt; The value of ChromiumBridge (or PlatformBridge) is that it provides a grouping
&gt; for these methods.  I don&apos;t understand you want more layers here.

Yeah, I think you and I have fallen out of step wrt to ChromiumBridge design.  I&apos;ll make a point of syncing up with you about such when I&apos;m in MTV next week.

WebCore in the Apple ports is self-contained.  It only has down-dependencies.  It feels strange to me that in the Chromium port it has hard up-dependencies (no default implementation), but maybe that makes sense given the sandboxing model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166149</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 10:26:13 -0800</bug_when>
    <thetext>More aptly said: I&apos;ve fallen behind in my understanding of the grand vision of ChromiumBridge.  I thought it was meant as a temporary step before better Clients could be designed.  It no longer seems that way, if we&apos;re encouraging other ports to use it.  My understanding of WebCore/WebKit design is that Clients were the way to talk up, and platform was the way to talk down.  Chromium bridge is a linking shim which allows Platform to talk up to WebKit.  Which feels strange to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166202</commentid>
    <comment_count>7</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2009-11-24 11:37:33 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; More aptly said: I&apos;ve fallen behind in my understanding of the grand vision of
&gt; ChromiumBridge.  I thought it was meant as a temporary step before better
&gt; Clients could be designed.  It no longer seems that way, if we&apos;re encouraging
&gt; other ports to use it.  My understanding of WebCore/WebKit design is that
&gt; Clients were the way to talk up, and platform was the way to talk down. 
&gt; Chromium bridge is a linking shim which allows Platform to talk up to WebKit. 
&gt; Which feels strange to me.

Ok, but do you think we could go with this design for now (given we already have a precedent) and then change once we agree if and how having individual clients for the various features in the Chromium/Platform Bridges would help? I think that&apos;s a discussion that could perhaps happen on its own bug and the solution that will be reached should be applied to both Android and Chromium. I don&apos;t think we should block the Android code upstreaming on this.

Thanks,
Andrei</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166208</commentid>
    <comment_count>8</comment_count>
      <attachid>43762</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-24 11:47:29 -0800</bug_when>
    <thetext>Comment on attachment 43762
Add implementation of SSL Key Generator functions.

&quot;url&quot; is technically against webkit style, as it should be removed since it&apos;s not necessary:
 44     static String getSignedPublicKeyAndChallengeString(unsigned index, const String&amp; challenge, const KURL&amp; url);

I don&apos;t like the design as I currently understand it, but I agree, that&apos;s a discussion for another bug.  Can you document why it is that this needs to use a PlatformBridge shim like this?  Does Andriod use a sandbox like Chromium?  Does this call reach across an IPC layer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166240</commentid>
    <comment_count>9</comment_count>
      <attachid>43798</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2009-11-24 12:20:44 -0800</bug_when>
    <thetext>Created attachment 43798
Add implementation of SSL Key Generator functions v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166241</commentid>
    <comment_count>10</comment_count>
      <attachid>43799</attachid>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2009-11-24 12:22:50 -0800</bug_when>
    <thetext>Created attachment 43799
Add implementation of SSL Key Generator functions v3

Uploading the right patch this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166242</commentid>
    <comment_count>11</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2009-11-24 12:24:19 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 43762 [details])
&gt; &quot;url&quot; is technically against webkit style, as it should be removed since it&apos;s
&gt; not necessary:
&gt;  44     static String getSignedPublicKeyAndChallengeString(unsigned index,
&gt; const String&amp; challenge, const KURL&amp; url);
&gt; 

Removed.

&gt; I don&apos;t like the design as I currently understand it, but I agree, that&apos;s a
&gt; discussion for another bug.  Can you document why it is that this needs to use
&gt; a PlatformBridge shim like this?  Does Andriod use a sandbox like Chromium? 
&gt; Does this call reach across an IPC layer?

Added appropriate comment in PlatformBridge.h

Thanks,
Andrei</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166449</commentid>
    <comment_count>12</comment_count>
      <attachid>43799</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-25 07:56:32 -0800</bug_when>
    <thetext>Comment on attachment 43799
Add implementation of SSL Key Generator functions v3

OK.  Andrei is not in committers.py, so marking cq+ as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166455</commentid>
    <comment_count>13</comment_count>
      <attachid>43799</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-25 08:07:06 -0800</bug_when>
    <thetext>Comment on attachment 43799
Add implementation of SSL Key Generator functions v3

Clearing flags on attachment: 43799

Committed r51384: &lt;http://trac.webkit.org/changeset/51384&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166456</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-25 08:07:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43760</attachid>
            <date>2009-11-24 05:00:25 -0800</date>
            <delta_ts>2009-11-24 05:40:22 -0800</delta_ts>
            <desc>Add implementation of SSL Key Generator functions.</desc>
            <filename>31825.patch</filename>
            <type>text/plain</type>
            <size>5378</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTMzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMTEtMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFuZHJvaWQgaXMgbWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBTU0wgS2V5IGdlbmVyYXRvciBm
dW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTgyNQorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgdGhlIFBsYXRmb3JtQnJpZGdlIGNs
YXNzIHRvIHBsYXRmb3JtL2FuZHJvaWQuCisgICAgICAgIFBsYXJmb3JtQnJpZGdlIGlzIHVzZWQg
dG8gYWNjZXNzIHRoZSBlbWJlZGRpbmcgbGF5ZXIgZm9yIHRoaW5ncworICAgICAgICBzdWNoIGFz
IGtleSBnZW5lcmF0b3IsIGNvb2tpZXMsIHBsdWdpbnMsIGV0Yy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgcmVxdWlyZWQsIHRoaXMgaXMgcGxhdGZvcm0gY29kZS4KKworICAgICAgICAqIHBsYXRm
b3JtL2FuZHJvaWQvUGxhdGZvcm1CcmlkZ2UuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
YW5kcm9pZC9TU0xLZXlHZW5lcmF0b3JBbmRyb2lkLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpnZXRTdXBwb3J0ZWRLZXlTaXplcyk6CisgICAgICAgIChXZWJDb3JlOjpzaWduZWRQdWJs
aWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOgorCiAyMDA5LTExLTI0ICBNYXJrIFJvd2UgIDxtcm93
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHByb2R1Y3Rpb24gYnVpbGRzIHdoZXJlIHRoZSBz
b3VyY2UgdHJlZSBtYXkgYmUgcmVhZC1vbmx5LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1BsYXRmb3JtQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1BsYXRmb3JtQnJpZGdlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Fu
ZHJvaWQvUGxhdGZvcm1CcmlkZ2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9X
TkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBQbGF0Zm9ybUJyaWRnZV9oCisjZGVmaW5lIFBsYXRmb3JtQnJpZGdlX2gKKwor
I2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICAvLyBBbiBpbnRl
cmZhY2UgdG8gdGhlIGVtYmVkZGluZyBsYXllciwgd2hpY2ggaGFzIHRoZSBhYmlsaXR5IHRvIGFu
c3dlcgorICAgIC8vIHF1ZXN0aW9ucyBhYm91dCB0aGUgc3lzdGVtIGFuZCBzbyBvbi4uLgorICAg
IC8vIFRoaXMgaXMgdmVyeSBzaW1pbGFyIHRvIENocm9taXVtQnJpZGdlIGFuZCB0aGUgdHdvIGFy
ZSBsaWtlbHkgdG8gY29udmVyZ2UKKyAgICAvLyBpbiB0aGUgZnV0dXJlLgorICAgIGNsYXNzIFBs
YXRmb3JtQnJpZGdlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIC8vIEtleUdlbmVyYXRvcgorICAg
ICAgICBzdGF0aWMgV1RGOjpWZWN0b3I8U3RyaW5nPiBnZXRTdXBwb3J0ZWRLZXlTdHJlbmd0aExp
c3QoKTsKKyAgICAgICAgc3RhdGljIFN0cmluZyBnZXRTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVu
Z2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlLCBjb25zdCBL
VVJMJiB1cmwpOworICAgIH07Cit9CisjZW5kaWYgLy8gUGxhdGZvcm1CcmlkZ2VfaApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1NTTEtleUdlbmVyYXRvckFuZHJvaWQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9TU0xLZXlHZW5lcmF0b3JBbmRyb2lk
LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9TU0xLZXlHZW5l
cmF0b3JBbmRyb2lkLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNTTEtleUdlbmVyYXRvci5oIgorCisjaW5jbHVk
ZSAiUGxhdGZvcm1CcmlkZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGdldFN1
cHBvcnRlZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiBrZXlzKQoreworICAgIGtleXMgPSBQbGF0
Zm9ybUJyaWRnZTo6Z2V0U3VwcG9ydGVkS2V5U3RyZW5ndGhMaXN0KCk7Cit9CisKK1N0cmluZyBz
aWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0
cmluZyYgY2hhbGxlbmdlLCBjb25zdCBLVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFBsYXRmb3Jt
QnJpZGdlOjpnZXRTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoaW5kZXgsIGNoYWxs
ZW5nZSwgdXJsKTsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43762</attachid>
            <date>2009-11-24 05:40:22 -0800</date>
            <delta_ts>2009-11-24 12:20:44 -0800</delta_ts>
            <desc>Add implementation of SSL Key Generator functions.</desc>
            <filename>31825.patch.v2</filename>
            <type>text/plain</type>
            <size>5338</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTMzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMTEtMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFuZHJvaWQgaXMgbWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBTU0wgS2V5IGdlbmVyYXRvciBm
dW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTgyNQorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgdGhlIFBsYXRmb3JtQnJpZGdlIGNs
YXNzIHRvIHBsYXRmb3JtL2FuZHJvaWQuCisgICAgICAgIFBsYXJmb3JtQnJpZGdlIGlzIHVzZWQg
dG8gYWNjZXNzIHRoZSBlbWJlZGRpbmcgbGF5ZXIgZm9yIHRoaW5ncworICAgICAgICBzdWNoIGFz
IGtleSBnZW5lcmF0b3IsIGNvb2tpZXMsIHBsdWdpbnMsIGV0Yy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgcmVxdWlyZWQsIHRoaXMgaXMgcGxhdGZvcm0gY29kZS4KKworICAgICAgICAqIHBsYXRm
b3JtL2FuZHJvaWQvUGxhdGZvcm1CcmlkZ2UuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
YW5kcm9pZC9TU0xLZXlHZW5lcmF0b3JBbmRyb2lkLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpnZXRTdXBwb3J0ZWRLZXlTaXplcyk6CisgICAgICAgIChXZWJDb3JlOjpzaWduZWRQdWJs
aWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOgorCiAyMDA5LTExLTI0ICBNYXJrIFJvd2UgIDxtcm93
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHByb2R1Y3Rpb24gYnVpbGRzIHdoZXJlIHRoZSBz
b3VyY2UgdHJlZSBtYXkgYmUgcmVhZC1vbmx5LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1BsYXRmb3JtQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1BsYXRmb3JtQnJpZGdlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Fu
ZHJvaWQvUGxhdGZvcm1CcmlkZ2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9X
TkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBQbGF0Zm9ybUJyaWRnZV9oCisjZGVmaW5lIFBsYXRmb3JtQnJpZGdlX2gKKwor
I2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEFuIGludGVyZmFj
ZSB0byB0aGUgZW1iZWRkaW5nIGxheWVyLCB3aGljaCBoYXMgdGhlIGFiaWxpdHkgdG8gYW5zd2Vy
CisvLyBxdWVzdGlvbnMgYWJvdXQgdGhlIHN5c3RlbSBhbmQgc28gb24uLi4KKy8vIFRoaXMgaXMg
dmVyeSBzaW1pbGFyIHRvIENocm9taXVtQnJpZGdlIGFuZCB0aGUgdHdvIGFyZSBsaWtlbHkgdG8g
Y29udmVyZ2UKKy8vIGluIHRoZSBmdXR1cmUuCitjbGFzcyBQbGF0Zm9ybUJyaWRnZSB7CitwdWJs
aWM6CisgICAgLy8gS2V5R2VuZXJhdG9yCisgICAgc3RhdGljIFdURjo6VmVjdG9yPFN0cmluZz4g
Z2V0U3VwcG9ydGVkS2V5U3RyZW5ndGhMaXN0KCk7CisgICAgc3RhdGljIFN0cmluZyBnZXRTaWdu
ZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgY2hhbGxlbmdlLCBjb25zdCBLVVJMJiB1cmwpOworfTsKK30KKyNlbmRpZiAvLyBQbGF0Zm9y
bUJyaWRnZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvU1NMS2V5R2VuZXJhdG9y
QW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1NTTEtl
eUdlbmVyYXRvckFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9h
bmRyb2lkL1NTTEtleUdlbmVyYXRvckFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFBy
b2plY3QKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU1NMS2V5R2VuZXJh
dG9yLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3ZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIGtleXMpCit7
CisgICAga2V5cyA9IFBsYXRmb3JtQnJpZGdlOjpnZXRTdXBwb3J0ZWRLZXlTdHJlbmd0aExpc3Qo
KTsKK30KKworU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25l
ZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNvbnN0IEtVUkwmIHVybCkKK3sKKyAg
ICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmdldFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0
cmluZyhpbmRleCwgY2hhbGxlbmdlLCB1cmwpOworfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43798</attachid>
            <date>2009-11-24 12:20:44 -0800</date>
            <delta_ts>2009-11-24 12:22:50 -0800</delta_ts>
            <desc>Add implementation of SSL Key Generator functions v3</desc>
            <filename>31825.patch.v3</filename>
            <type>text/plain</type>
            <size>5338</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTMzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMTEtMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFuZHJvaWQgaXMgbWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBTU0wgS2V5IGdlbmVyYXRvciBm
dW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTgyNQorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgdGhlIFBsYXRmb3JtQnJpZGdlIGNs
YXNzIHRvIHBsYXRmb3JtL2FuZHJvaWQuCisgICAgICAgIFBsYXJmb3JtQnJpZGdlIGlzIHVzZWQg
dG8gYWNjZXNzIHRoZSBlbWJlZGRpbmcgbGF5ZXIgZm9yIHRoaW5ncworICAgICAgICBzdWNoIGFz
IGtleSBnZW5lcmF0b3IsIGNvb2tpZXMsIHBsdWdpbnMsIGV0Yy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgcmVxdWlyZWQsIHRoaXMgaXMgcGxhdGZvcm0gY29kZS4KKworICAgICAgICAqIHBsYXRm
b3JtL2FuZHJvaWQvUGxhdGZvcm1CcmlkZ2UuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
YW5kcm9pZC9TU0xLZXlHZW5lcmF0b3JBbmRyb2lkLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpnZXRTdXBwb3J0ZWRLZXlTaXplcyk6CisgICAgICAgIChXZWJDb3JlOjpzaWduZWRQdWJs
aWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOgorCiAyMDA5LTExLTI0ICBNYXJrIFJvd2UgIDxtcm93
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHByb2R1Y3Rpb24gYnVpbGRzIHdoZXJlIHRoZSBz
b3VyY2UgdHJlZSBtYXkgYmUgcmVhZC1vbmx5LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1BsYXRmb3JtQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1BsYXRmb3JtQnJpZGdlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Fu
ZHJvaWQvUGxhdGZvcm1CcmlkZ2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9X
TkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBQbGF0Zm9ybUJyaWRnZV9oCisjZGVmaW5lIFBsYXRmb3JtQnJpZGdlX2gKKwor
I2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEFuIGludGVyZmFj
ZSB0byB0aGUgZW1iZWRkaW5nIGxheWVyLCB3aGljaCBoYXMgdGhlIGFiaWxpdHkgdG8gYW5zd2Vy
CisvLyBxdWVzdGlvbnMgYWJvdXQgdGhlIHN5c3RlbSBhbmQgc28gb24uLi4KKy8vIFRoaXMgaXMg
dmVyeSBzaW1pbGFyIHRvIENocm9taXVtQnJpZGdlIGFuZCB0aGUgdHdvIGFyZSBsaWtlbHkgdG8g
Y29udmVyZ2UKKy8vIGluIHRoZSBmdXR1cmUuCitjbGFzcyBQbGF0Zm9ybUJyaWRnZSB7CitwdWJs
aWM6CisgICAgLy8gS2V5R2VuZXJhdG9yCisgICAgc3RhdGljIFdURjo6VmVjdG9yPFN0cmluZz4g
Z2V0U3VwcG9ydGVkS2V5U3RyZW5ndGhMaXN0KCk7CisgICAgc3RhdGljIFN0cmluZyBnZXRTaWdu
ZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgY2hhbGxlbmdlLCBjb25zdCBLVVJMJiB1cmwpOworfTsKK30KKyNlbmRpZiAvLyBQbGF0Zm9y
bUJyaWRnZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvU1NMS2V5R2VuZXJhdG9y
QW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1NTTEtl
eUdlbmVyYXRvckFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9h
bmRyb2lkL1NTTEtleUdlbmVyYXRvckFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQzIEBACisvKgorICogQ29weXJpZ2h0IDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFBy
b2plY3QKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU1NMS2V5R2VuZXJh
dG9yLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3ZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIGtleXMpCit7
CisgICAga2V5cyA9IFBsYXRmb3JtQnJpZGdlOjpnZXRTdXBwb3J0ZWRLZXlTdHJlbmd0aExpc3Qo
KTsKK30KKworU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25l
ZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNvbnN0IEtVUkwmIHVybCkKK3sKKyAg
ICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmdldFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0
cmluZyhpbmRleCwgY2hhbGxlbmdlLCB1cmwpOworfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43799</attachid>
            <date>2009-11-24 12:22:50 -0800</date>
            <delta_ts>2009-11-25 08:07:06 -0800</delta_ts>
            <desc>Add implementation of SSL Key Generator functions v3</desc>
            <filename>31825.patch.v3</filename>
            <type>text/plain</type>
            <size>5740</size>
            <attacher name="Andrei Popescu">andreip</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTMzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMTEtMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFuZHJvaWQgaXMgbWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBTU0wgS2V5IGdlbmVyYXRvciBm
dW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTgyNQorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgdGhlIFBsYXRmb3JtQnJpZGdlIGNs
YXNzIHRvIHBsYXRmb3JtL2FuZHJvaWQuCisgICAgICAgIFBsYXJmb3JtQnJpZGdlIGlzIHVzZWQg
dG8gYWNjZXNzIHRoZSBlbWJlZGRpbmcgbGF5ZXIgZm9yIHRoaW5ncworICAgICAgICBzdWNoIGFz
IGtleSBnZW5lcmF0b3IsIGNvb2tpZXMsIHBsdWdpbnMsIGV0Yy4KKworICAgICAgICBObyBuZXcg
dGVzdHMgcmVxdWlyZWQsIHRoaXMgaXMgcGxhdGZvcm0gY29kZS4KKworICAgICAgICAqIHBsYXRm
b3JtL2FuZHJvaWQvUGxhdGZvcm1CcmlkZ2UuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
YW5kcm9pZC9TU0xLZXlHZW5lcmF0b3JBbmRyb2lkLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpnZXRTdXBwb3J0ZWRLZXlTaXplcyk6CisgICAgICAgIChXZWJDb3JlOjpzaWduZWRQdWJs
aWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOgorCiAyMDA5LTExLTI0ICBNYXJrIFJvd2UgIDxtcm93
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHByb2R1Y3Rpb24gYnVpbGRzIHdoZXJlIHRoZSBz
b3VyY2UgdHJlZSBtYXkgYmUgcmVhZC1vbmx5LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1BsYXRmb3JtQnJpZGdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRy
b2lkL1BsYXRmb3JtQnJpZGdlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Fu
ZHJvaWQvUGxhdGZvcm1CcmlkZ2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAyMDA5LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9X
TkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBQbGF0Zm9ybUJyaWRnZV9oCisjZGVmaW5lIFBsYXRmb3JtQnJpZGdlX2gKKwor
I2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEFuIGludGVyZmFj
ZSB0byB0aGUgZW1iZWRkaW5nIGxheWVyLCB3aGljaCBoYXMgdGhlIGFiaWxpdHkgdG8gYW5zd2Vy
CisvLyBxdWVzdGlvbnMgYWJvdXQgdGhlIHN5c3RlbSBhbmQgc28gb24uLi4KKy8vIFRoaXMgaXMg
dmVyeSBzaW1pbGFyIHRvIENocm9taXVtQnJpZGdlIGFuZCB0aGUgdHdvIGFyZSBsaWtlbHkgdG8g
Y29udmVyZ2UKKy8vIGluIHRoZSBmdXR1cmUuCisvLworLy8gVGhlIG1ldGhvZHMgaW4gdGhpcyBj
bGFzcyBhbGwgbmVlZCB0byByZWFjaCBhY3Jvc3MgYSBKTkkgbGF5ZXIgdG8gdGhlIEphdmEgVk0K
Ky8vIHdoZXJlIHRoZSBlbWJlZGRlciBydW5zLiBUaGUgSk5JIG1hY2hpbmVyeSBpcyBjdXJyZW50
bHkgYWxsIGluIFdlYktpdC9hbmRyb2lkCisvLyBidXQgdGhlIGxvbmcgdGVybSBwbGFuIGlzIHRv
IG1vdmUgdG8gdGhlIFdlYktpdCBBUEkgYW5kIHNoYXJlIHRoZSBicmlkZ2UgYW5kIGl0cworLy8g
aW1wbGVtZW50YXRpb24gd2l0aCBDaHJvbWl1bS4gVGhlIEpOSSBtYWNoaW5lcnkgd2lsbCB0aGVu
IG1vdmUgb3V0c2lkZSBvZiBXZWJLaXQsCisvLyBzaW1pbGFybHkgdG8gaG93IENocm9taXVtJ3Mg
SVBDIGxheWVyIGxpdmVzIG91dHNpZGUgb2YgV2ViS2l0LgorY2xhc3MgUGxhdGZvcm1CcmlkZ2Ug
eworcHVibGljOgorICAgIC8vIEtleUdlbmVyYXRvcgorICAgIHN0YXRpYyBXVEY6OlZlY3RvcjxT
dHJpbmc+IGdldFN1cHBvcnRlZEtleVN0cmVuZ3RoTGlzdCgpOworICAgIHN0YXRpYyBTdHJpbmcg
Z2V0U2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25z
dCBTdHJpbmcmIGNoYWxsZW5nZSwgY29uc3QgS1VSTCYpOworfTsKK30KKyNlbmRpZiAvLyBQbGF0
Zm9ybUJyaWRnZV9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvU1NMS2V5R2VuZXJh
dG9yQW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1NT
TEtleUdlbmVyYXRvckFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9hbmRyb2lkL1NTTEtleUdlbmVyYXRvckFuZHJvaWQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IDIwMDksIFRoZSBBbmRyb2lkIE9wZW4gU291cmNl
IFByb2plY3QKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU1NMS2V5R2Vu
ZXJhdG9yLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybUJyaWRnZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3ZvaWQgZ2V0U3VwcG9ydGVkS2V5U2l6ZXMoVmVjdG9yPFN0cmluZz4mIGtleXMp
Cit7CisgICAga2V5cyA9IFBsYXRmb3JtQnJpZGdlOjpnZXRTdXBwb3J0ZWRLZXlTdHJlbmd0aExp
c3QoKTsKK30KKworU3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNp
Z25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBjaGFsbGVuZ2UsIGNvbnN0IEtVUkwmIHVybCkKK3sK
KyAgICByZXR1cm4gUGxhdGZvcm1CcmlkZ2U6OmdldFNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5n
ZVN0cmluZyhpbmRleCwgY2hhbGxlbmdlLCB1cmwpOworfQorCit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>