<?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>171219</bug_id>
          
          <creation_ts>2017-04-24 06:55:58 -0700</creation_ts>
          <short_desc>[GCrypt] RSAES-PKCS1-v1_5 support</short_desc>
          <delta_ts>2017-05-30 20:30:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>171213</dependson>
          <blocked>133122</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>buildbot</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1300479</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-24 06:55:58 -0700</bug_when>
    <thetext>[GCrypt] RSAES-PKCS1-v1_5 support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300481</commentid>
    <comment_count>1</comment_count>
      <attachid>307970</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-24 07:02:11 -0700</bug_when>
    <thetext>Created attachment 307970
Patch

Still has to enable the relevant layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300482</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-24 07:03:13 -0700</bug_when>
    <thetext>Attachment 307970 did not pass style-queue:


ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:126:  CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:153:  CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301538</commentid>
    <comment_count>3</comment_count>
      <attachid>308231</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-26 01:07:21 -0700</bug_when>
    <thetext>Created attachment 308231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301539</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-26 01:08:38 -0700</bug_when>
    <thetext>Attachment 308231 did not pass style-queue:


ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:126:  CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:153:  CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311049</commentid>
    <comment_count>5</comment_count>
      <attachid>308231</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-05-20 12:54:28 -0700</bug_when>
    <thetext>Comment on attachment 308231
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=308231&amp;action=review

I&apos;m surprised that WebKit supports so many crypto algorithms that are not part of the WebCryto standard. I know this is permitted, it&apos;s just unusual. Anyway, thanks for bringing us up to feature parity with the Mac port.

As with all these WebCrypto patches, you should try to get a review from Jiewen as well.

&gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:88
&gt; +    // Return MPI data of the embedded a integer.

This comment is missing something!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1311454</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-22 11:26:02 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #5)
&gt; Comment on attachment 308231 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=308231&amp;action=review
&gt; 
&gt; I&apos;m surprised that WebKit supports so many crypto algorithms that are not
&gt; part of the WebCryto standard. I know this is permitted, it&apos;s just unusual.
&gt; Anyway, thanks for bringing us up to feature parity with the Mac port.
&gt; 

We should review what we want to support -- whether we want to follow the spec closely, or whether we&apos;re fine with supporting other algorithms as well.

For instance, I think AES_CFB has been dropped from the spec, and we might not want to support it since there&apos;s been no release of libgcrypt yet that we could use to support that algorithm.

&gt; As with all these WebCrypto patches, you should try to get a review from
&gt; Jiewen as well.
&gt; 
&gt; &gt; Source/WebCore/crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:88
&gt; &gt; +    // Return MPI data of the embedded a integer.
&gt; 
&gt; This comment is missing something!

The integer is actually named as `a`. I should add quotations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312346</commentid>
    <comment_count>7</comment_count>
      <attachid>308231</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-05-24 11:57:02 -0700</bug_when>
    <thetext>Comment on attachment 308231
Patch

Looks good to me as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313659</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-30 00:45:13 -0700</bug_when>
    <thetext>Committed r217546: &lt;http://trac.webkit.org/changeset/217546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314072</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-30 20:30:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/32479867&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307970</attachid>
            <date>2017-04-24 07:02:11 -0700</date>
            <delta_ts>2017-04-26 01:07:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171219-20170424160210.patch</filename>
            <type>text/plain</type>
            <size>9144</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQ3MDdjOTBlZWFlZjk3
NTRlNjYyMmE1NGY4NGMyZjFkOTNhNjJkZS4uZWYwNDEwNzBlNTI5NzkyZGE5MDI0MGI1Yzk4YjQz
Y2Y1NjA4YzJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE3LTA0LTI0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbR0NyeXB0XSBSU0FF
Uy1QS0NTMS12MV81IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MTIxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBSU0FFUy1QS0NTMS12MV81IHN1cHBvcnQgZm9yIGNvbmZpZ3VyYXRp
b25zIHRoYXQgdXNlIGxpYmdjcnlwdC4KKworICAgICAgICBUaGUgZW5jcnlwdGlvbiBvcGVyYXRp
b24gZW1iZWRzIHRoZSBwbGFpbi10ZXh0IGRhdGEgaW50byBhIGRhdGEgcy1leHByZXNzaW9uLAor
ICAgICAgICBzcGVjaWZ5aW5nIFBLQ1MjMSBhcyB0aGUgcGFkZGluZyBtZXRob2Qgb2YgY2hvaWNl
LiBUaGF0J3MgcGFzc2VkIHRvIHRoZQorICAgICAgICBnY3J5X3BrX2VuY3J5cHQoKSBjYWxsIHRv
Z2V0aGVyIHdpdGggdGhlIHNwZWNpZmllZCBrZXkuIFRoZSByZXR1cm5lZCBlbmMtdmFsCisgICAg
ICAgIGV4cHJlc3Npb24gY29udGFpbnMgdGhlICdhJyBNUEkgZnJvbSB3aGljaCB0aGUgZGF0YSBp
cyBleHRyYWN0ZWQgYW5kIHJldHVybmVkLgorCisgICAgICAgIFRoZSBkZWNyeXB0aW9uIG9wZXJh
dGlvbiBnb2VzIGluIHJldmVyc2UgLS0gdGhlIGNpcGhlci10ZXh0IGRhdGEgaXMgZW1iZWRkZWQK
KyAgICAgICAgaW50byBhbiBlbmMtdmFsIHMtZXhwcmVzc2lvbiB0aGF0IGFnYWluIGFsc28gc3Bl
Y2lmaWVzIFBLQ1MjMSBhcyB0aGUgcGFkZGluZworICAgICAgICBtZXRob2QuIFRoZSBzLWV4cHJl
c3Npb24gaXMgcGFzc2VkIHRvIGdjcnlfcGtfZGVjcnlwdCgpIHRvZ2V0aGVyIHdpdGggdGhlCisg
ICAgICAgIHNwZWNpZmllZCBrZXkuIFRoZSByZXR1cm5lZCBkYXRhIHMtZXhwcmVzc2lvbiBjb250
YWlucyB0aGUgZGVjcnlwdGVkIHRleHQKKyAgICAgICAgaW5zaWRlIHRoZSAndmFsdWUnIHBhcmFt
ZXRlciwgc28gdGhlIGRhdGEgaXMgZXh0cmFjdGVkIGZyb20gdGhhdCBhbmQgcmV0dXJuZWQKKyAg
ICAgICAgdG8gdGhlIGNhbGxlci4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gdGhlIHJldmVs
YW50IHRlc3RzIGFyZSBwYXNzaW5nIGFuZCBhcmUgdW5za2lwcGVkIC0tIFRPRE8uCisKKyAgICAg
ICAgKiBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bXBpRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpnY3J5
cHRFbmNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OmdjcnlwdERlY3J5cHQpOgorICAgICAgICAo
V2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6cGxhdGZvcm1FbmNyeXB0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OnBs
YXRmb3JtRGVjcnlwdCk6CisKIDIwMTctMDQtMjMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTU2NTcg
YW5kIHIyMTU2NzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0Ny
eXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81R0NyeXB0LmNwcApp
bmRleCBkYmQ5Y2RiZDQxZjgzMzZhMjk3YmRmY2RmN2EwZTVmMTQ5YmM0YmQyLi5kMDU0MDEzZjg4
MDI1ZDhiOTVkN2RmMTJkMmYwNzUzYzFiNGE1ODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBRVNf
UEtDUzFfdjFfNUdDcnlwdC5jcHAKQEAgLTMxLDE3ICszMSwxNTAgQEAKICNpbmNsdWRlICJDcnlw
dG9LZXlSU0EuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVk
ZSA8cGFsL2NyeXB0by9nY3J5cHQvSGFuZGxlLmg+CisjaW5jbHVkZSA8cGFsL2NyeXB0by9nY3J5
cHQvVXRpbGl0aWVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBDcnlwdG9BbGdv
cml0aG1SU0FFU19QS0NTMV92MV81OjpwbGF0Zm9ybUVuY3J5cHQoUmVmPENyeXB0b0tleT4mJiwg
VmVjdG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVldWUmKQorc3RhdGljIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPHVpbnQ4X3Q+PiBtcGlEYXRhKGdjcnlfc2V4cF90IHBhcmFtU2V4cCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIC8vIFJldHJpZXZlIHRoZSBNUEkgdmFsdWUgc3RvcmVk
IGluIHRoZSBzLWV4cHJlc3Npb246IChuYW1lIG1waS1kYXRhKQorICAgIFBBTDo6R0NyeXB0OjpI
YW5kbGU8Z2NyeV9tcGlfdD4gcGFyYW1NUEkoZ2NyeV9zZXhwX250aF9tcGkocGFyYW1TZXhwLCAx
LCBHQ1JZTVBJX0ZNVF9VU0cpKTsKKyAgICBpZiAoIXBhcmFtTVBJKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgLy8gUXVlcnkgdGhlIGRhdGEgbGVuZ3RoIGZpcnN0IHRvIHBy
b3Blcmx5IHByZXBhcmUgdGhlIGJ1ZmZlci4KKyAgICBzaXplX3QgZGF0YUxlbmd0aCA9IDA7Cisg
ICAgZ2NyeV9lcnJvcl90IGVycm9yID0gZ2NyeV9tcGlfcHJpbnQoR0NSWU1QSV9GTVRfVVNHLCBu
dWxscHRyLCAwLCAmZGF0YUxlbmd0aCwgcGFyYW1NUEkpOworICAgIGlmIChlcnJvciAhPSBHUEdf
RVJSX05PX0VSUk9SKSB7CisgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7Cisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgLy8gRmluYWxseSwgY29w
eSB0aGUgTVBJIGRhdGEgaW50byBhIHByb3Blcmx5LXNpemVkIGJ1ZmZlci4KKyAgICBWZWN0b3I8
dWludDhfdD4gb3V0cHV0KGRhdGFMZW5ndGgpOworICAgIGVycm9yID0gZ2NyeV9tcGlfcHJpbnQo
R0NSWU1QSV9GTVRfVVNHLCBvdXRwdXQuZGF0YSgpLCBvdXRwdXQuc2l6ZSgpLCBudWxscHRyLCBw
YXJhbU1QSSk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAg
UEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICB9CisKKyAgICByZXR1cm4gb3V0cHV0OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRo
bVJTQUVTX1BLQ1MxX3YxXzU6OnBsYXRmb3JtRGVjcnlwdChSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0
b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8dWludDhfdD4+IGdjcnlwdEVuY3J5cHQoZ2NyeV9zZXhwX3Qga2V5U2V4cCwgVmVjdG9y
PHVpbnQ4X3Q+JiYgcGxhaW5UZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8g
RW1iZWQgdGhlIHBsYWluLXRleHQgZGF0YSBpbiBhIGRhdGEgcy1leHByZXNzaW9uIHVzaW5nIFBL
Q1MjMSBwYWRkaW5nLgorICAgIFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9zZXhwX3Q+IGRhdGFT
ZXhwOworICAgIGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfc2V4cF9idWlsZCgmZGF0YVNleHAs
IG51bGxwdHIsICIoZGF0YShmbGFncyBwa2NzMSkodmFsdWUgJWIpKSIsCisgICAgICAgIHBsYWlu
VGV4dC5zaXplKCksIHBsYWluVGV4dC5kYXRhKCkpOworICAgIGlmIChlcnJvciAhPSBHUEdfRVJS
X05PX0VSUk9SKSB7CisgICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgLy8gRW5jcnlwdCBkYXRhIHdp
dGggdGhlIHByb3ZpZGVkIGtleS4gVGhlIHJldHVybmVkIHMtZXhwcmVzc2lvbiBpcyBvZiB0aGlz
IGZvcm06CisgICAgLy8gKGVuYy12YWwKKyAgICAvLyAgIChyc2EKKyAgICAvLyAgICAgKGEgYS1t
cGkpKSkKKyAgICBQQUw6OkdDcnlwdDo6SGFuZGxlPGdjcnlfc2V4cF90PiBjaXBoZXJTZXhwOwor
ICAgIGVycm9yID0gZ2NyeV9wa19lbmNyeXB0KCZjaXBoZXJTZXhwLCBkYXRhU2V4cCwga2V5U2V4
cCk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpH
Q3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9CisKKyAgICAvLyBSZXR1cm4gTVBJIGRhdGEgb2YgdGhlIGVtYmVkZGVkIGEgaW50ZWdlci4K
KyAgICBQQUw6OkdDcnlwdDo6SGFuZGxlPGdjcnlfc2V4cF90PiBhU2V4cChnY3J5X3NleHBfZmlu
ZF90b2tlbihjaXBoZXJTZXhwLCAiYSIsIDApKTsKKyAgICBpZiAoIWFTZXhwKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIG1waURhdGEoYVNleHApOworfQorCitz
dGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGdjcnlwdERlY3J5cHQoZ2NyeV9z
ZXhwX3Qga2V5U2V4cCwgVmVjdG9yPHVpbnQ4X3Q+JiYgY2lwaGVyVGV4dCkKK3sKKyAgICAvLyBF
bWJlZCB0aGUgY2lwaGVyLXRleHQgZGF0YSBpbiBhbiBlbmMtdmFsIHMtZXhwcmVzc2lvbiB1c2lu
ZyBQS0NTIzEgcGFkZGluZy4KKyAgICBQQUw6OkdDcnlwdDo6SGFuZGxlPGdjcnlfc2V4cF90PiBl
bmNWYWxTZXhwOworICAgIGdjcnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfc2V4cF9idWlsZCgmZW5j
VmFsU2V4cCwgbnVsbHB0ciwgIihlbmMtdmFsKGZsYWdzIHBrY3MxKShyc2EoYSAlYikpKSIsCisg
ICAgICAgIGNpcGhlclRleHQuc2l6ZSgpLCBjaXBoZXJUZXh0LmRhdGEoKSk7CisgICAgaWYgKGVy
cm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9y
KGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICAvLyBE
ZWNyeXB0IGRhdGEgd2l0aCB0aGUgcHJvdmlkZWQga2V5LiBUaGUgcmV0dXJuZWQgcy1leHByZXNz
aW9uIGlzIG9mIHRoaXMgZm9ybToKKyAgICAvLyAoZGF0YQorICAgIC8vICAgKGZsYWdzIHBrY3Mx
KQorICAgIC8vICAgKHZhbHVlIGJsb2NrKSkKKyAgICBQQUw6OkdDcnlwdDo6SGFuZGxlPGdjcnlf
c2V4cF90PiBwbGFpblNleHA7CisgICAgZXJyb3IgPSBnY3J5X3BrX2RlY3J5cHQoJnBsYWluU2V4
cCwgZW5jVmFsU2V4cCwga2V5U2V4cCk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJS
T1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICAvLyBSZXR1cm4gTVBJIGRhdGEgb2YgdGhl
IGVtYmVkZGVkIHZhbHVlIGludGVnZXIuCisgICAgUEFMOjpHQ3J5cHQ6OkhhbmRsZTxnY3J5X3Nl
eHBfdD4gdmFsdWVTZXhwKGdjcnlfc2V4cF9maW5kX3Rva2VuKHBsYWluU2V4cCwgInZhbHVlIiwg
MCkpOworICAgIGlmICghdmFsdWVTZXhwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIG1waURhdGEodmFsdWVTZXhwKTsKK30KKwordm9pZCBDcnlwdG9BbGdvcml0
aG1SU0FFU19QS0NTMV92MV81OjpwbGF0Zm9ybUVuY3J5cHQoUmVmPENyeXB0b0tleT4mJiBrZXks
IFZlY3Rvcjx1aW50OF90PiYmIHBsYWluVGV4dCwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywg
RXhjZXB0aW9uQ2FsbGJhY2smJiBleGNlcHRpb25DYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgV29ya1F1ZXVlJiB3b3JrUXVldWUpCit7CisgICAgY29udGV4dC5yZWYo
KTsKKyAgICB3b3JrUXVldWUuZGlzcGF0Y2goCisgICAgICAgIFtrZXkgPSBXVEZNb3ZlKGtleSks
IHBsYWluVGV4dCA9IFdURk1vdmUocGxhaW5UZXh0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKSwgZXhjZXB0aW9uQ2FsbGJhY2sgPSBXVEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKSwgJmNv
bnRleHRdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvJiByc2FLZXkgPSBkb3duY2FzdDxD
cnlwdG9LZXlSU0E+KGtleS5nZXQoKSk7CisKKyAgICAgICAgICAgIGF1dG8gb3V0cHV0ID0gZ2Ny
eXB0RW5jcnlwdChyc2FLZXkucGxhdGZvcm1LZXkoKSwgV1RGTW92ZShwbGFpblRleHQpKTsKKyAg
ICAgICAgICAgIGlmICghb3V0cHV0KSB7CisgICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG9u
bHkgZGVyZWZlcmVuY2UgY2FsbGJhY2tzIGFmdGVyIGJlaW5nIGJhY2sgdG8gdGhlIERvY3VtZW50
L1dvcmtlciB0aHJlYWRzLgorICAgICAgICAgICAgICAgIGNvbnRleHQucG9zdFRhc2soCisgICAg
ICAgICAgICAgICAgICAgIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBleGNlcHRpb25D
YWxsYmFjayA9IFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2spXShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25DYWxsYmFj
ayhPcGVyYXRpb25FcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmRlcmVm
KCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgZGVyZWZlcmVuY2Ug
Y2FsbGJhY2tzIGFmdGVyIGJlaW5nIGJhY2sgdG8gdGhlIERvY3VtZW50L1dvcmtlciB0aHJlYWRz
LgorICAgICAgICAgICAgY29udGV4dC5wb3N0VGFzaygKKyAgICAgICAgICAgICAgICBbb3V0cHV0
ID0gV1RGTW92ZSgqb3V0cHV0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgZXhjZXB0
aW9uQ2FsbGJhY2sgPSBXVEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKV0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNr
KFdURk1vdmUob3V0cHV0KSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZGVyZWYoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cit9CisKK3ZvaWQgQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNTo6cGxhdGZvcm1EZWNyeXB0KFJlZjxDcnlwdG9LZXk+JiYga2V5
LCBWZWN0b3I8dWludDhfdD4mJiBjaXBoZXJUZXh0LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNr
LCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBXb3JrUXVldWUmIHdvcmtRdWV1ZSkKK3sKKyAgICBjb250ZXh0LnJl
ZigpOworICAgIHdvcmtRdWV1ZS5kaXNwYXRjaCgKKyAgICAgICAgW2tleSA9IFdURk1vdmUoa2V5
KSwgY2lwaGVyVGV4dCA9IFdURk1vdmUoY2lwaGVyVGV4dCksIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RGTW92ZShleGNlcHRpb25DYWxsYmFjayks
ICZjb250ZXh0XSgpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byYgcnNhS2V5ID0gZG93bmNh
c3Q8Q3J5cHRvS2V5UlNBPihrZXkuZ2V0KCkpOworCisgICAgICAgICAgICBhdXRvIG91dHB1dCA9
IGdjcnlwdERlY3J5cHQocnNhS2V5LnBsYXRmb3JtS2V5KCksIFdURk1vdmUoY2lwaGVyVGV4dCkp
OworICAgICAgICAgICAgaWYgKCFvdXRwdXQpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBzaG91
bGQgb25seSBkZXJlZmVyZW5jZSBjYWxsYmFja3MgYWZ0ZXIgYmVpbmcgYmFjayB0byB0aGUgRG9j
dW1lbnQvV29ya2VyIHRocmVhZHMuCisgICAgICAgICAgICAgICAgY29udGV4dC5wb3N0VGFzaygK
KyAgICAgICAgICAgICAgICAgICAgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGV4Y2Vw
dGlvbkNhbGxiYWNrID0gV1RGTW92ZShleGNlcHRpb25DYWxsYmFjayldKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkNh
bGxiYWNrKE9wZXJhdGlvbkVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQu
ZGVyZWYoKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBXZSBzaG91bGQgb25seSBkZXJlZmVy
ZW5jZSBjYWxsYmFja3MgYWZ0ZXIgYmVpbmcgYmFjayB0byB0aGUgRG9jdW1lbnQvV29ya2VyIHRo
cmVhZHMuCisgICAgICAgICAgICBjb250ZXh0LnBvc3RUYXNrKAorICAgICAgICAgICAgICAgIFtv
dXRwdXQgPSBXVEZNb3ZlKCpvdXRwdXQpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBl
eGNlcHRpb25DYWxsYmFjayA9IFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2spXShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgY2Fs
bGJhY2soV1RGTW92ZShvdXRwdXQpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kZXJl
ZigpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKIH0KIAogRXhjZXB0aW9uT3I8
dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6cGxhdGZvcm1FbmNyeXB0KGNv
bnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308231</attachid>
            <date>2017-04-26 01:07:21 -0700</date>
            <delta_ts>2017-05-20 12:54:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171219-20170426100720.patch</filename>
            <type>text/plain</type>
            <size>11587</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA1NmExYjk2MjUxOTgw
NGM2MTkzOWVhM2E1YzM5MzViZDgxMGM2YS4uMDg4OGFmMGYzOGI2ZDlhYjlkMmM3MDg5OGY4YmMz
NDg2Y2U2M2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE3LTA0LTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbR0NyeXB0XSBSU0FF
Uy1QS0NTMS12MV81IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MTIxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBSU0FFUy1QS0NTMS12MV81IHN1cHBvcnQgZm9yIGNvbmZpZ3VyYXRp
b25zIHRoYXQgdXNlIGxpYmdjcnlwdC4KKworICAgICAgICBUaGUgZW5jcnlwdGlvbiBvcGVyYXRp
b24gZW1iZWRzIHRoZSBwbGFpbi10ZXh0IGRhdGEgaW50byBhIGRhdGEgcy1leHByZXNzaW9uLAor
ICAgICAgICBzcGVjaWZ5aW5nIFBLQ1MjMSBhcyB0aGUgcGFkZGluZyBtZXRob2Qgb2YgY2hvaWNl
LiBUaGF0J3MgcGFzc2VkIHRvIHRoZQorICAgICAgICBnY3J5X3BrX2VuY3J5cHQoKSBjYWxsIHRv
Z2V0aGVyIHdpdGggdGhlIHNwZWNpZmllZCBrZXkuIFRoZSByZXR1cm5lZCBlbmMtdmFsCisgICAg
ICAgIGV4cHJlc3Npb24gY29udGFpbnMgdGhlICdhJyBNUEkgZnJvbSB3aGljaCB0aGUgZGF0YSBp
cyBleHRyYWN0ZWQgYW5kIHJldHVybmVkLgorCisgICAgICAgIFRoZSBkZWNyeXB0aW9uIG9wZXJh
dGlvbiBnb2VzIGluIHJldmVyc2UgLS0gdGhlIGNpcGhlci10ZXh0IGRhdGEgaXMgZW1iZWRkZWQK
KyAgICAgICAgaW50byBhbiBlbmMtdmFsIHMtZXhwcmVzc2lvbiB0aGF0IGFnYWluIGFsc28gc3Bl
Y2lmaWVzIFBLQ1MjMSBhcyB0aGUgcGFkZGluZworICAgICAgICBtZXRob2QuIFRoZSBzLWV4cHJl
c3Npb24gaXMgcGFzc2VkIHRvIGdjcnlfcGtfZGVjcnlwdCgpIHRvZ2V0aGVyIHdpdGggdGhlCisg
ICAgICAgIHNwZWNpZmllZCBrZXkuIFRoZSByZXR1cm5lZCBkYXRhIHMtZXhwcmVzc2lvbiBjb250
YWlucyB0aGUgZGVjcnlwdGVkIHRleHQKKyAgICAgICAgaW5zaWRlIHRoZSAndmFsdWUnIHBhcmFt
ZXRlciwgc28gdGhlIGRhdGEgaXMgZXh0cmFjdGVkIGZyb20gdGhhdCBhbmQgcmV0dXJuZWQKKyAg
ICAgICAgdG8gdGhlIGNhbGxlci4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gdGhlIHJldmVs
YW50IHRlc3RzIGFyZSBwYXNzaW5nIGFuZCBhcmUgdW5za2lwcGVkLCBhcGFydCBmcm9tCisgICAg
ICAgIHRoZSBvbmVzIHVzaW5nIFBLQ1MjOCBhbmQgU1BLSSBmb3JtYXRzLgorCisgICAgICAgICog
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81R0NyeXB0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om1waURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Z2NyeXB0RW5j
cnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpnY3J5cHREZWNyeXB0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OnBsYXRmb3JtRW5jcnlwdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjpwbGF0Zm9y
bURlY3J5cHQpOgorCisyMDE3LTA0LTI2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KKwogICAgICAgICBbR0NyeXB0XSBDcnlwdG9LZXlSU0E6IGltcGxlbWVudCBjcmVhdGUo
KSwga2V5U2l6ZUluQml0cygpLCBidWlsZEFsZ29yaXRobSgpLCBleHBvcnREYXRhKCkKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTIxMwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJTQUVT
X1BLQ1MxX3YxXzVHQ3J5cHQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9Dcnlw
dG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81R0NyeXB0LmNwcAppbmRleCBkYmQ5Y2RiZDQxZjgz
MzZhMjk3YmRmY2RmN2EwZTVmMTQ5YmM0YmQyLi5kMDU0MDEzZjg4MDI1ZDhiOTVkN2RmMTJkMmYw
NzUzYzFiNGE1ODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0Ny
eXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNUdDcnlwdC5j
cHAKQEAgLTMxLDE3ICszMSwxNTAgQEAKICNpbmNsdWRlICJDcnlwdG9LZXlSU0EuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8cGFsL2NyeXB0by9nY3J5
cHQvSGFuZGxlLmg+CisjaW5jbHVkZSA8cGFsL2NyeXB0by9nY3J5cHQvVXRpbGl0aWVzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92
MV81OjpwbGF0Zm9ybUVuY3J5cHQoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYs
IFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBXb3JrUXVldWUmKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+
PiBtcGlEYXRhKGdjcnlfc2V4cF90IHBhcmFtU2V4cCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIC8vIFJldHJpZXZlIHRoZSBNUEkgdmFsdWUgc3RvcmVkIGluIHRoZSBzLWV4cHJlc3Np
b246IChuYW1lIG1waS1kYXRhKQorICAgIFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9tcGlfdD4g
cGFyYW1NUEkoZ2NyeV9zZXhwX250aF9tcGkocGFyYW1TZXhwLCAxLCBHQ1JZTVBJX0ZNVF9VU0cp
KTsKKyAgICBpZiAoIXBhcmFtTVBJKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgLy8gUXVlcnkgdGhlIGRhdGEgbGVuZ3RoIGZpcnN0IHRvIHByb3Blcmx5IHByZXBhcmUgdGhl
IGJ1ZmZlci4KKyAgICBzaXplX3QgZGF0YUxlbmd0aCA9IDA7CisgICAgZ2NyeV9lcnJvcl90IGVy
cm9yID0gZ2NyeV9tcGlfcHJpbnQoR0NSWU1QSV9GTVRfVVNHLCBudWxscHRyLCAwLCAmZGF0YUxl
bmd0aCwgcGFyYW1NUEkpOworICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7Cisg
ICAgICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgfQorCisgICAgLy8gRmluYWxseSwgY29weSB0aGUgTVBJIGRhdGEgaW50
byBhIHByb3Blcmx5LXNpemVkIGJ1ZmZlci4KKyAgICBWZWN0b3I8dWludDhfdD4gb3V0cHV0KGRh
dGFMZW5ndGgpOworICAgIGVycm9yID0gZ2NyeV9tcGlfcHJpbnQoR0NSWU1QSV9GTVRfVVNHLCBv
dXRwdXQuZGF0YSgpLCBvdXRwdXQuc2l6ZSgpLCBudWxscHRyLCBwYXJhbU1QSSk7CisgICAgaWYg
KGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vy
cm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICBy
ZXR1cm4gb3V0cHV0OwogfQogCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6
OnBsYXRmb3JtRGVjcnlwdChSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVj
dG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFdvcmtRdWV1ZSYpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGdj
cnlwdEVuY3J5cHQoZ2NyeV9zZXhwX3Qga2V5U2V4cCwgVmVjdG9yPHVpbnQ4X3Q+JiYgcGxhaW5U
ZXh0KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8gRW1iZWQgdGhlIHBsYWluLXRl
eHQgZGF0YSBpbiBhIGRhdGEgcy1leHByZXNzaW9uIHVzaW5nIFBLQ1MjMSBwYWRkaW5nLgorICAg
IFBBTDo6R0NyeXB0OjpIYW5kbGU8Z2NyeV9zZXhwX3Q+IGRhdGFTZXhwOworICAgIGdjcnlfZXJy
b3JfdCBlcnJvciA9IGdjcnlfc2V4cF9idWlsZCgmZGF0YVNleHAsIG51bGxwdHIsICIoZGF0YShm
bGFncyBwa2NzMSkodmFsdWUgJWIpKSIsCisgICAgICAgIHBsYWluVGV4dC5zaXplKCksIHBsYWlu
VGV4dC5kYXRhKCkpOworICAgIGlmIChlcnJvciAhPSBHUEdfRVJSX05PX0VSUk9SKSB7CisgICAg
ICAgIFBBTDo6R0NyeXB0Ojpsb2dFcnJvcihlcnJvcik7CisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgfQorCisgICAgLy8gRW5jcnlwdCBkYXRhIHdpdGggdGhlIHByb3ZpZGVkIGtl
eS4gVGhlIHJldHVybmVkIHMtZXhwcmVzc2lvbiBpcyBvZiB0aGlzIGZvcm06CisgICAgLy8gKGVu
Yy12YWwKKyAgICAvLyAgIChyc2EKKyAgICAvLyAgICAgKGEgYS1tcGkpKSkKKyAgICBQQUw6OkdD
cnlwdDo6SGFuZGxlPGdjcnlfc2V4cF90PiBjaXBoZXJTZXhwOworICAgIGVycm9yID0gZ2NyeV9w
a19lbmNyeXB0KCZjaXBoZXJTZXhwLCBkYXRhU2V4cCwga2V5U2V4cCk7CisgICAgaWYgKGVycm9y
ICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVy
cm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICAvLyBSZXR1
cm4gTVBJIGRhdGEgb2YgdGhlIGVtYmVkZGVkIGEgaW50ZWdlci4KKyAgICBQQUw6OkdDcnlwdDo6
SGFuZGxlPGdjcnlfc2V4cF90PiBhU2V4cChnY3J5X3NleHBfZmluZF90b2tlbihjaXBoZXJTZXhw
LCAiYSIsIDApKTsKKyAgICBpZiAoIWFTZXhwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgcmV0dXJuIG1waURhdGEoYVNleHApOworfQorCitzdGF0aWMgc3RkOjpvcHRpb25h
bDxWZWN0b3I8dWludDhfdD4+IGdjcnlwdERlY3J5cHQoZ2NyeV9zZXhwX3Qga2V5U2V4cCwgVmVj
dG9yPHVpbnQ4X3Q+JiYgY2lwaGVyVGV4dCkKK3sKKyAgICAvLyBFbWJlZCB0aGUgY2lwaGVyLXRl
eHQgZGF0YSBpbiBhbiBlbmMtdmFsIHMtZXhwcmVzc2lvbiB1c2luZyBQS0NTIzEgcGFkZGluZy4K
KyAgICBQQUw6OkdDcnlwdDo6SGFuZGxlPGdjcnlfc2V4cF90PiBlbmNWYWxTZXhwOworICAgIGdj
cnlfZXJyb3JfdCBlcnJvciA9IGdjcnlfc2V4cF9idWlsZCgmZW5jVmFsU2V4cCwgbnVsbHB0ciwg
IihlbmMtdmFsKGZsYWdzIHBrY3MxKShyc2EoYSAlYikpKSIsCisgICAgICAgIGNpcGhlclRleHQu
c2l6ZSgpLCBjaXBoZXJUZXh0LmRhdGEoKSk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9f
RVJST1IpIHsKKyAgICAgICAgUEFMOjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9CisKKyAgICAvLyBEZWNyeXB0IGRhdGEgd2l0aCB0
aGUgcHJvdmlkZWQga2V5LiBUaGUgcmV0dXJuZWQgcy1leHByZXNzaW9uIGlzIG9mIHRoaXMgZm9y
bToKKyAgICAvLyAoZGF0YQorICAgIC8vICAgKGZsYWdzIHBrY3MxKQorICAgIC8vICAgKHZhbHVl
IGJsb2NrKSkKKyAgICBQQUw6OkdDcnlwdDo6SGFuZGxlPGdjcnlfc2V4cF90PiBwbGFpblNleHA7
CisgICAgZXJyb3IgPSBnY3J5X3BrX2RlY3J5cHQoJnBsYWluU2V4cCwgZW5jVmFsU2V4cCwga2V5
U2V4cCk7CisgICAgaWYgKGVycm9yICE9IEdQR19FUlJfTk9fRVJST1IpIHsKKyAgICAgICAgUEFM
OjpHQ3J5cHQ6OmxvZ0Vycm9yKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9CisKKyAgICAvLyBSZXR1cm4gTVBJIGRhdGEgb2YgdGhlIGVtYmVkZGVkIHZhbHVlIGlu
dGVnZXIuCisgICAgUEFMOjpHQ3J5cHQ6OkhhbmRsZTxnY3J5X3NleHBfdD4gdmFsdWVTZXhwKGdj
cnlfc2V4cF9maW5kX3Rva2VuKHBsYWluU2V4cCwgInZhbHVlIiwgMCkpOworICAgIGlmICghdmFs
dWVTZXhwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIG1waURh
dGEodmFsdWVTZXhwKTsKK30KKwordm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81
OjpwbGF0Zm9ybUVuY3J5cHQoUmVmPENyeXB0b0tleT4mJiBrZXksIFZlY3Rvcjx1aW50OF90PiYm
IHBsYWluVGV4dCwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgRXhjZXB0aW9uQ2FsbGJhY2sm
JiBleGNlcHRpb25DYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV29y
a1F1ZXVlJiB3b3JrUXVldWUpCit7CisgICAgY29udGV4dC5yZWYoKTsKKyAgICB3b3JrUXVldWUu
ZGlzcGF0Y2goCisgICAgICAgIFtrZXkgPSBXVEZNb3ZlKGtleSksIHBsYWluVGV4dCA9IFdURk1v
dmUocGxhaW5UZXh0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgZXhjZXB0aW9uQ2Fs
bGJhY2sgPSBXVEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKSwgJmNvbnRleHRdKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBhdXRvJiByc2FLZXkgPSBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleS5n
ZXQoKSk7CisKKyAgICAgICAgICAgIGF1dG8gb3V0cHV0ID0gZ2NyeXB0RW5jcnlwdChyc2FLZXku
cGxhdGZvcm1LZXkoKSwgV1RGTW92ZShwbGFpblRleHQpKTsKKyAgICAgICAgICAgIGlmICghb3V0
cHV0KSB7CisgICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgZGVyZWZlcmVuY2UgY2Fs
bGJhY2tzIGFmdGVyIGJlaW5nIGJhY2sgdG8gdGhlIERvY3VtZW50L1dvcmtlciB0aHJlYWRzLgor
ICAgICAgICAgICAgICAgIGNvbnRleHQucG9zdFRhc2soCisgICAgICAgICAgICAgICAgICAgIFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBleGNlcHRpb25DYWxsYmFjayA9IFdURk1vdmUo
ZXhjZXB0aW9uQ2FsbGJhY2spXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25DYWxsYmFjayhPcGVyYXRpb25FcnJvcik7
CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmRlcmVmKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgZGVyZWZlcmVuY2UgY2FsbGJhY2tzIGFmdGVyIGJl
aW5nIGJhY2sgdG8gdGhlIERvY3VtZW50L1dvcmtlciB0aHJlYWRzLgorICAgICAgICAgICAgY29u
dGV4dC5wb3N0VGFzaygKKyAgICAgICAgICAgICAgICBbb3V0cHV0ID0gV1RGTW92ZSgqb3V0cHV0
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgZXhjZXB0aW9uQ2FsbGJhY2sgPSBXVEZN
b3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkg
bXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUob3V0cHV0KSk7
CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZGVyZWYoKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7Cit9CisKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFf
NTo6cGxhdGZvcm1EZWNyeXB0KFJlZjxDcnlwdG9LZXk+JiYga2V5LCBWZWN0b3I8dWludDhfdD4m
JiBjaXBoZXJUZXh0LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25DYWxsYmFj
ayYmIGV4Y2VwdGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBX
b3JrUXVldWUmIHdvcmtRdWV1ZSkKK3sKKyAgICBjb250ZXh0LnJlZigpOworICAgIHdvcmtRdWV1
ZS5kaXNwYXRjaCgKKyAgICAgICAgW2tleSA9IFdURk1vdmUoa2V5KSwgY2lwaGVyVGV4dCA9IFdU
Rk1vdmUoY2lwaGVyVGV4dCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGV4Y2VwdGlv
bkNhbGxiYWNrID0gV1RGTW92ZShleGNlcHRpb25DYWxsYmFjayksICZjb250ZXh0XSgpIG11dGFi
bGUgeworICAgICAgICAgICAgYXV0byYgcnNhS2V5ID0gZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihr
ZXkuZ2V0KCkpOworCisgICAgICAgICAgICBhdXRvIG91dHB1dCA9IGdjcnlwdERlY3J5cHQocnNh
S2V5LnBsYXRmb3JtS2V5KCksIFdURk1vdmUoY2lwaGVyVGV4dCkpOworICAgICAgICAgICAgaWYg
KCFvdXRwdXQpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBzaG91bGQgb25seSBkZXJlZmVyZW5j
ZSBjYWxsYmFja3MgYWZ0ZXIgYmVpbmcgYmFjayB0byB0aGUgRG9jdW1lbnQvV29ya2VyIHRocmVh
ZHMuCisgICAgICAgICAgICAgICAgY29udGV4dC5wb3N0VGFzaygKKyAgICAgICAgICAgICAgICAg
ICAgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RG
TW92ZShleGNlcHRpb25DYWxsYmFjayldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkNhbGxiYWNrKE9wZXJhdGlvbkVy
cm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZGVyZWYoKTsKKyAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAvLyBXZSBzaG91bGQgb25seSBkZXJlZmVyZW5jZSBjYWxsYmFja3MgYWZ0
ZXIgYmVpbmcgYmFjayB0byB0aGUgRG9jdW1lbnQvV29ya2VyIHRocmVhZHMuCisgICAgICAgICAg
ICBjb250ZXh0LnBvc3RUYXNrKAorICAgICAgICAgICAgICAgIFtvdXRwdXQgPSBXVEZNb3ZlKCpv
dXRwdXQpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBleGNlcHRpb25DYWxsYmFjayA9
IFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2spXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShvdXRw
dXQpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kZXJlZigpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNTo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0tleVJTQSYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA5MzVkZDU4OGI1Mzc0YmNmN2ZhZTRhMzk0MTEwNTg1MjBmZTg1NzgxLi41
ZTJkMzA2MTFmZGJmY2RkZWI0ZDJiZTc5MjgyYjdlYmFiNzcyZWFmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTctMDQtMjYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHQ3J5cHRdIFJTQUVTLVBLQ1MxLXYxXzUgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9uczogRW5hYmxlIHRoZSBSU0FFUy1QS0NTMS12MV81IGxheW91dCB0ZXN0cyB0aGF0
IHdlIHBhc3MuCisKIDIwMTctMDQtMjUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBbbWFjLXdrMSBEZWJ1Z10gTGF5b3V0VGVzdCBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXNpemVzLW5ldHdvcmsuaHRtbCBpcyBhIGZsYWt5IGZh
aWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGFm
MTA0M2VkYTM3MmExNDE3OTY4NTg5ZWY3YzM4NDgzMmJiMjE3Yy4uNzc3NDRkODIwN2MxMjA2MTg5
ZTRhZjRhZTFkNTIyYWY0MTY4YTE4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTc2NCw2ICs3NjQsMTggQEAgY3J5cHRvL3N1YnRsZS9obWFjLWltcG9y
dC1yYXcta2V5LWN1c3RvbWl6ZWQtbGVuZ3RoLmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUv
aG1hYy1pbXBvcnQtcmF3LWtleS1leHBvcnQtandrLWtleS5odG1sIFsgUGFzcyBdCiBjcnlwdG8v
c3VidGxlL2htYWMtaW1wb3J0LXJhdy1rZXktZXhwb3J0LXJhdy1rZXkuaHRtbCBbIFBhc3MgXQog
Y3J5cHRvL3N1YnRsZS9obWFjLWltcG9ydC1yYXcta2V5Lmh0bWwgWyBQYXNzIF0KK2NyeXB0by9z
dWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1nZW5lcmF0ZS1leHBvcnQta2V5LWp3ay5odG1sIFsgUGFz
cyBdCitjcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LWVuY3J5cHQt
ZGVjcnlwdC5odG1sIFsgUGFzcyBdCitjcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZ2Vu
ZXJhdGUta2V5LWV4dHJhY3RhYmxlLmh0bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvcnNhZXMt
cGtjczEtdjFfNS1nZW5lcmF0ZS1rZXkuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9yc2Fl
cy1wa2NzMS12MV81LWltcG9ydC1qd2stcHJpdmF0ZS1rZXkuaHRtbCBbIFBhc3MgXQorY3J5cHRv
L3N1YnRsZS9yc2Flcy1wa2NzMS12MV81LWltcG9ydC1qd2stcHVibGljLWtleS1lbXB0eS11c2Fn
ZXMuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9yc2Flcy1wa2NzMS12MV81LWltcG9ydC1q
d2stcHVibGljLWtleS5odG1sIFsgUGFzcyBdCitjcnlwdG8vc3VidGxlL3JzYWVzLXBrY3MxLXYx
XzUtaW1wb3J0LWp3ay1wdWJsaWMta2V5LWxlYWRpbmctemVyby5odG1sIFsgUGFzcyBdCitjcnlw
dG8vc3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1wdWJsaWMta2V5LW1pbmltdW0u
aHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9yc2Flcy1wa2NzMS12MV81LWltcG9ydC1qd2st
cHVibGljLWtleS1ub24tZXh0cmFjdGFibGUuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9y
c2Flcy1wa2NzMS12MV81LWltcG9ydC1rZXktZGVjcnlwdC5odG1sIFsgUGFzcyBdCitjcnlwdG8v
c3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtaW1wb3J0LWtleS1lbmNyeXB0Lmh0bWwgWyBQYXNzIF0K
IHdlYmtpdC5vcmcvYi8xMzMzMTkgY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS5odG1sIFsgUGFz
cyBdCiB3ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1s
IFsgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTI1
Ni5odG1sIFsgUGFzcyBdCg==
</data>
<flag name="review"
          id="329400"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>