<?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>238293</bug_id>
          
          <creation_ts>2022-03-23 15:02:51 -0700</creation_ts>
          <short_desc>[WebAuthn] Maintain last modification time separate from last used time for platform credentials</short_desc>
          <delta_ts>2022-03-25 13:17:43 -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>WebKit Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="pascoe@apple.com">pascoe</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>pascoe</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1854428</commentid>
    <comment_count>0</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-23 15:02:51 -0700</bug_when>
    <thetext>This splits _WKLocalAuthenticatorCredentialLastModificationDateKey (that signifies the last time it was modified or used) into _WKLocalAuthenticatorCredentialLastModificationDateKey (signifying the last modification) and _WKLocalAuthenticatorCredentialLastUsedDateKey (the last time a key was used).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854429</commentid>
    <comment_count>1</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-23 15:03:23 -0700</bug_when>
    <thetext>rdar://90655676</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854435</commentid>
    <comment_count>2</comment_count>
      <attachid>455567</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-23 15:10:51 -0700</bug_when>
    <thetext>Created attachment 455567
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855176</commentid>
    <comment_count>3</comment_count>
      <attachid>455567</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-03-25 11:15:23 -0700</bug_when>
    <thetext>Comment on attachment 455567
Patch

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

r=me

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:285
&gt; +            attributes[bridge_cast(kSecAttrModificationDate)], _WKLocalAuthenticatorCredentialLastUsedDateKey,

It&apos;s kind of strange that we are using kSecAttrModifiedationDate to hold the _WKLocalAuthenticatorCredentialLastUsedDateKey. I guess this is a limitation of the Security framework API we are using?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855177</commentid>
    <comment_count>4</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-25 11:22:53 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 455567 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=455567&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:285
&gt; &gt; +            attributes[bridge_cast(kSecAttrModificationDate)], _WKLocalAuthenticatorCredentialLastUsedDateKey,
&gt; 
&gt; It&apos;s kind of strange that we are using kSecAttrModificationDate to hold the
&gt; _WKLocalAuthenticatorCredentialLastUsedDateKey. I guess this is a limitation
&gt; of the Security framework API we are using?

Currently we &quot;modify&quot; the rpId in the label to the same value every time we do an assertion to later sort options by most recently used.

We could create a new field in the applicationTag to store the last assertion, but it would still the same as kSecAttrModificationDate. Another idea I had was to store the last used time outside of the keychain, however it&apos;s nice to have all the state within one keychain item.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855221</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-25 13:17:40 -0700</bug_when>
    <thetext>Committed r291882 (248881@main): &lt;https://commits.webkit.org/248881@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455567.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455567</attachid>
            <date>2022-03-23 15:10:51 -0700</date>
            <delta_ts>2022-03-25 13:17:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238293-20220323151050.patch</filename>
            <type>text/plain</type>
            <size>13030</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdkY2NiZjk2MGFmMGE2
MGM0NDkxNTE4YWYzYzJkZTg4MTRjNDBkOC4uOTA4YmJhMzNhMjFlMmE1MzY0YmQwOTVhMGUyZDQw
MmYyNDZkYWM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTAzLTIzICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIE1haW50YWlu
IGxhc3QgbW9kaWZpY2F0aW9uIHRpbWUgc2VwYXJhdGUgZnJvbSBsYXN0IHVzZWQgdGltZSBmb3Ig
cGxhdGZvcm0gY3JlZGVudGlhbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODI5MworICAgICAgICByZGFyOi8vOTA2NTU2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHNwbGl0cyBh
IGtleSByZXR1cm5lZCBmcm9tIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGdldEFsbExvY2Fs
QXV0aGVudGljYXRvckNyZWRlbnRpYWxzLi4uXSwKKyAgICAgICAgX1dLTG9jYWxBdXRoZW50aWNh
dG9yQ3JlZGVudGlhbExhc3RNb2RpZmljYXRpb25EYXRlS2V5LCB3aGljaCBwcmV2aW91c2x5IHNp
Z25pZmllZCB0aGUgbGFzdCB0aW1lIGEKKyAgICAgICAgY3JlZGVudGlhbCB3YXMgbW9kaWZpZWQg
b3IgdXNlZCBpbiBhbiBhc3NlcnRpb24sIHRvIGp1c3QgdGhlIGxhc3QgdGltZSB0aGUgY3JlZGVu
dGlhbCB3YXMgbW9kaWZpZWQuCisKKyAgICAgICAgQSBuZXcga2V5LCBfV0tMb2NhbEF1dGhlbnRp
Y2F0b3JDcmVkZW50aWFsTGFzdFVzZWREYXRlS2V5IHJlcHJlc2VudHMgdGhlIG9sZCBkZWZpbml0
aW9uLCB0aGUgbGFzdAorICAgICAgICB0aW1lIGEga2V5IHdhcyB1c2VkIG9yIG1vZGlmaWVkLgor
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvbkNvbnN0YW50cy5o
OgorCiAyMDIyLTAzLTIyICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgogCiAgICAgICAgIFtXaW5DYWlyb10gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaCg3OCk6IGVy
cm9yIEMyMDI3OiB1c2Ugb2YgdW5kZWZpbmVkIHR5cGUgJ1dlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMJwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAxYjIxNDA0OTdlZjU5NjcwMGI2MDA1MWY0MDkyZGRkMzdkMGEyOWIz
Li4zMjIzOTkzNDM1ODlhYTI4NzZmMDIzYWY5YjhhMTg3MzY4N2I3NjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDIyLTAzLTIzICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4K
KyAgICAgICAgW1dlYkF1dGhuXSBNYWludGFpbiBsYXN0IG1vZGlmaWNhdGlvbiB0aW1lIHNlcGFy
YXRlIGZyb20gbGFzdCB1c2VkIHRpbWUgZm9yIHBsYXRmb3JtIGNyZWRlbnRpYWxzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgyOTMKKyAgICAgICAg
cmRhcjovLzkwNjU1Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBzcGxpdHMgYSBrZXkgcmV0dXJuZWQgZnJvbSBbX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbCBnZXRBbGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscy4uLl0s
CisgICAgICAgIF9XS0xvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxMYXN0TW9kaWZpY2F0aW9u
RGF0ZUtleSwgd2hpY2ggcHJldmlvdXNseSBzaWduaWZpZWQgdGhlIGxhc3QgdGltZSBhCisgICAg
ICAgIGNyZWRlbnRpYWwgd2FzIG1vZGlmaWVkIG9yIHVzZWQgaW4gYW4gYXNzZXJ0aW9uLCB0byBq
dXN0IHRoZSBsYXN0IHRpbWUgdGhlIGNyZWRlbnRpYWwgd2FzIG1vZGlmaWVkLgorCisgICAgICAg
IEEgbmV3IGtleSwgX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExhc3RVc2VkRGF0ZUtl
eSByZXByZXNlbnRzIHRoZSBvbGQgZGVmaW5pdGlvbiwgdGhlIGxhc3QKKyAgICAgICAgdGltZSBh
IGtleSB3YXMgdXNlZCBvciBtb2RpZmllZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKGdldEFsbExvY2Fs
QXV0aGVudGljYXRvckNyZWRlbnRpYWxzSW1wbCk6CisgICAgICAgICgrW19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwgc2V0VXNlcm5hbWVGb3JMb2NhbENyZWRlbnRpYWxXaXRoR3JvdXBBbmRJRDpj
cmVkZW50aWFsOnVzZXJuYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2Fs
QXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyVXNlclZlcmlmaWNhdGlv
bik6CisKIDIwMjItMDMtMjIgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTC5oKDc4KTog
ZXJyb3IgQzIwMjc6IHVzZSBvZiB1bmRlZmluZWQgdHlwZSAnV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0wnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1
dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1dlYkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmgKaW5kZXggY2M0MDZhYTU4ODcxYTllYWZmNzdl
NTQxOWUwMTgwZTU1NTk3ZmMxZi4uZjg1ZjFmYWJjZmNjMjI3ZDA2M2I4ZDE0ZDE1ZDU2Nzc5NzQz
NTU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRo
ZW50aWNhdGlvbkNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vV2ViQXV0aGVudGljYXRpb25Db25zdGFudHMuaApAQCAtODMsNiArODMsOSBAQCBjb25zdCBj
aGFyIExvY2FsQXV0aGVudGljYXRpb3JBY2Nlc3NHcm91cFtdID0gImNvbS5hcHBsZS53ZWJraXQu
d2ViYXV0aG4iOwogCiBjb25zdGV4cHIgY29uc3QgY2hhciBMb2NhbEF1dGhlbnRpY2F0b3JBY2Nl
c3NHcm91cFtdID0gImNvbS5hcHBsZS53ZWJraXQud2ViYXV0aG4iOwogCisvLyBVc2VyIGVudGl0
eSBleHRlbnNpb24KK2NvbnN0ZXhwciBjb25zdCBjaGFyIHVzZXJFbnRpdHlMYXN0TW9kaWZpZWRL
ZXlbXSA9ICJsYXN0X21vZGlmaWVkIjsKKwogLy8gQ3JlZGVudGlhbCBzZXJpYWxpemF0aW9uCiBj
b25zdGV4cHIgY29uc3QgY2hhciBwcml2YXRlS2V5S2V5W10gPSAicHJpdiI7CiBjb25zdGV4cHIg
Y29uc3QgY2hhciBrZXlUeXBlS2V5W10gPSAia2V5X3R5cGUiOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLmgKaW5kZXggM2VmYTczZGY5N2FiODViOTlhMWZiYTc3MzM4MDc0MWQxZDI4YWJiMi4uMzdl
OGI5NDZkMzZhNDk5ODAyMzhjYjk4ZDJiMmE0OTJjOGEwNGZhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5oCkBAIC0xMDEsNiArMTAxLDcgQEAgV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
X1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbENyZWF0aW9uRGF0ZUtleTsKIFdLX0VYVEVS
TiBOU1N0cmluZyAqIGNvbnN0IF9XS0xvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxHcm91cEtl
eTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0xvY2FsQXV0aGVudGljYXRvckNyZWRl
bnRpYWxTeW5jaHJvbml6YWJsZUtleTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0xv
Y2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxVc2VySGFuZGxlS2V5OworV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExhc3RVc2VkRGF0ZUtl
eTsKIAogQHByb3RvY29sIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSA8TlNPYmpl
Y3Q+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZjU5YTg1OTdlZGU1Mjc1MzQy
NmVjOTg5MDRkMmRlYTM3MDc1YWNiZi4uZDdmZDFhNjgzNjMyZTkxYjU2ODVlNzMyNGRlZmRhNTc3
OTQ4YjFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTExNiw2ICsxMTYsNyBA
QCBOU1N0cmluZyAqIGNvbnN0IF9XS0xvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxDcmVhdGlv
bkRhdGVLZXkgPSBAIl9XS0xvY2FsQXV0aAogTlNTdHJpbmcgKiBjb25zdCBfV0tMb2NhbEF1dGhl
bnRpY2F0b3JDcmVkZW50aWFsR3JvdXBLZXkgPSBAIl9XS0xvY2FsQXV0aGVudGljYXRvckNyZWRl
bnRpYWxHcm91cEtleSI7CiBOU1N0cmluZyAqIGNvbnN0IF9XS0xvY2FsQXV0aGVudGljYXRvckNy
ZWRlbnRpYWxTeW5jaHJvbml6YWJsZUtleSA9IEAiX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVu
dGlhbFN5bmNocm9uaXphYmxlS2V5IjsKIE5TU3RyaW5nICogY29uc3QgX1dLTG9jYWxBdXRoZW50
aWNhdG9yQ3JlZGVudGlhbFVzZXJIYW5kbGVLZXkgPSBAIl9XS0xvY2FsQXV0aGVudGljYXRvckNy
ZWRlbnRpYWxVc2VySGFuZGxlS2V5IjsKK05TU3RyaW5nICogY29uc3QgX1dLTG9jYWxBdXRoZW50
aWNhdG9yQ3JlZGVudGlhbExhc3RVc2VkRGF0ZUtleSA9IEAiX1dLTG9jYWxBdXRoZW50aWNhdG9y
Q3JlZGVudGlhbExhc3RVc2VkRGF0ZUtleSI7CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsIHsKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQpAQCAtMjgxLDcgKzI4Miw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZ2V0QWxsTG9jYWxBdXRoZW50aWNhdG9yQ3Jl
ZGVudGlhbHNJbXBsKE5TU3RyaW5nICphY2NlCiAgICAgICAgICAgICB1c2VybmFtZSwgX1dLTG9j
YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbE5hbWVLZXksCiAgICAgICAgICAgICBhdHRyaWJ1dGVz
W2JyaWRnZV9jYXN0KGtTZWNBdHRyQXBwbGljYXRpb25MYWJlbCldLCBfV0tMb2NhbEF1dGhlbnRp
Y2F0b3JDcmVkZW50aWFsSURLZXksCiAgICAgICAgICAgICBhdHRyaWJ1dGVzW2JyaWRnZV9jYXN0
KGtTZWNBdHRyTGFiZWwpXSwgX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbFJlbHlpbmdQ
YXJ0eUlES2V5LAotICAgICAgICAgICAgYXR0cmlidXRlc1ticmlkZ2VfY2FzdChrU2VjQXR0ck1v
ZGlmaWNhdGlvbkRhdGUpXSwgX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExhc3RNb2Rp
ZmljYXRpb25EYXRlS2V5LAorICAgICAgICAgICAgYXR0cmlidXRlc1ticmlkZ2VfY2FzdChrU2Vj
QXR0ck1vZGlmaWNhdGlvbkRhdGUpXSwgX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExh
c3RVc2VkRGF0ZUtleSwKICAgICAgICAgICAgIGF0dHJpYnV0ZXNbYnJpZGdlX2Nhc3Qoa1NlY0F0
dHJDcmVhdGlvbkRhdGUpXSwgX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbENyZWF0aW9u
RGF0ZUtleSwKICAgICAgICAgICAgIG5pbAogICAgICAgICBdKTsKQEAgLTI5Miw2ICsyOTMsMTIg
QEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiBnZXRBbGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVk
ZW50aWFsc0ltcGwoTlNTdHJpbmcgKmFjY2UKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBb
Y3JlZGVudGlhbCBzZXRPYmplY3Q6W05TTnVsbCBudWxsXSBmb3JLZXk6X1dLTG9jYWxBdXRoZW50
aWNhdG9yQ3JlZGVudGlhbFVzZXJIYW5kbGVLZXldOwogCisgICAgICAgIGl0ID0gcmVzcG9uc2VN
YXAuZmluZChjYm9yOjpDQk9SVmFsdWUoV2ViQ29yZTo6dXNlckVudGl0eUxhc3RNb2RpZmllZEtl
eSkpOworICAgICAgICBpZiAoaXQgIT0gcmVzcG9uc2VNYXAuZW5kKCkgJiYgaXQtPnNlY29uZC5p
c1Vuc2lnbmVkKCkpCisgICAgICAgICAgICBbY3JlZGVudGlhbCBzZXRPYmplY3Q6W05TRGF0ZSBk
YXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDppdC0+c2Vjb25kLmdldFVuc2lnbmVkKCldIGZv
cktleTpfV0tMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsTGFzdE1vZGlmaWNhdGlvbkRhdGVL
ZXldOworICAgICAgICBlbHNlCisgICAgICAgICAgICBbY3JlZGVudGlhbCBzZXRPYmplY3Q6YXR0
cmlidXRlc1ticmlkZ2VfY2FzdChrU2VjQXR0ckNyZWF0aW9uRGF0ZSldIGZvcktleTpfV0tMb2Nh
bEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsTGFzdE1vZGlmaWNhdGlvbkRhdGVLZXldOworCiAgICAg
ICAgIHVwZGF0ZUNyZWRlbnRpYWxJZk5lY2Vzc2FyeShjcmVkZW50aWFsLmdldCgpLCBhdHRyaWJ1
dGVzKTsKIAogICAgICAgICBpdCA9IHJlc3BvbnNlTWFwLmZpbmQoY2Jvcjo6Q0JPUlZhbHVlKGZp
ZG86OmtEaXNwbGF5TmFtZU1hcEtleSkpOwpAQCAtMzk3LDYgKzQwNCw3IEBAIHN0YXRpYyBSZXRh
aW5QdHI8TlNBcnJheT4gZ2V0QWxsTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbHNJbXBsKE5T
U3RyaW5nICphY2NlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQorICAgIHVwZGF0ZWRVc2VyTWFwW2Nib3I6OkNCT1JWYWx1ZShXZWJDb3JlOjp1
c2VyRW50aXR5TGFzdE1vZGlmaWVkS2V5KV0gPSBjYm9yOjpDQk9SVmFsdWUoKGludDY0X3QpV2Fs
bFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CiAgICAgYXV0byB1cGRh
dGVkVGFnID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUo
dXBkYXRlZFVzZXJNYXApKSk7CiAKICAgICBhdXRvIHNlY0F0dHJBcHBsaWNhdGlvblRhZyA9IGFk
b3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dXBkYXRlZFRhZy0+ZGF0YSgpIGxl
bmd0aDp1cGRhdGVkVGFnLT5zaXplKCldKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVu
dGljYXRvci5tbQppbmRleCBiZWU2YjkyMzgyY2FhZjNiNGY5ZjBlN2NlODJjMDFhNzY3MzMyODJj
Li43ZTllZGY1ZTk2NjY4M2Y2OGEwYTNjODk0MTZhYzI0ZjkyOTI3MDk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhl
bnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCkBAIC0zNzQsNiArMzc0LDcgQEAgdm9pZCBM
b2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmlj
YXRpb24oU2VjQWNjZXNzQ28KICAgICB1c2VyRW50aXR5TWFwW2Nib3I6OkNCT1JWYWx1ZShmaWRv
OjprRW50aXR5SWRNYXBLZXkpXSA9IGNib3I6OkNCT1JWYWx1ZShjcmVhdGlvbk9wdGlvbnMudXNl
ci5pZCk7CiAgICAgdXNlckVudGl0eU1hcFtjYm9yOjpDQk9SVmFsdWUoZmlkbzo6a0VudGl0eU5h
bWVNYXBLZXkpXSA9IGNib3I6OkNCT1JWYWx1ZShjcmVhdGlvbk9wdGlvbnMudXNlci5uYW1lKTsK
ICAgICB1c2VyRW50aXR5TWFwW2Nib3I6OkNCT1JWYWx1ZShmaWRvOjprRGlzcGxheU5hbWVNYXBL
ZXkpXSA9IGNib3I6OkNCT1JWYWx1ZShjcmVhdGlvbk9wdGlvbnMudXNlci5kaXNwbGF5TmFtZSk7
CisgICAgdXNlckVudGl0eU1hcFtjYm9yOjpDQk9SVmFsdWUodXNlckVudGl0eUxhc3RNb2RpZmll
ZEtleSldID0gY2Jvcjo6Q0JPUlZhbHVlKChpbnQ2NF90KVdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLnZhbHVlKCkpOwogICAgIGF1dG8gdXNlckVudGl0eSA9IGNib3I6OkNCT1JX
cml0ZXI6OndyaXRlKGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKHVzZXJFbnRpdHlNYXApKSk7CiAg
ICAgQVNTRVJUKHVzZXJFbnRpdHkpOwogICAgIGF1dG8gc2VjQXR0ckFwcGxpY2F0aW9uVGFnID0g
dG9OU0RhdGEoKnVzZXJFbnRpdHkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGIzZTZhZDRiMjNkZmU2NTRhOTJlYzNlZDdiZWM3NTcxN2E4Nzk0
ZTYuLjQxMTExMGQ2NTZjOGNiZjlmNGQ4NDBhYmJmODBhNGE4NWEyMDRlYWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAyMi0wMy0yMyAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YkF1dGhuXSBNYWludGFpbiBsYXN0IG1vZGlmaWNhdGlvbiB0aW1lIHNlcGFyYXRlIGZyb20gbGFz
dCB1c2VkIHRpbWUgZm9yIHBsYXRmb3JtIGNyZWRlbnRpYWxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgyOTMKKyAgICAgICAgcmRhcjovLzkwNjU1
Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBzcGxpdHMgYSBrZXkgcmV0dXJuZWQgZnJvbSBbX1dLV2ViQXV0aGVudGljYXRpb25Q
YW5lbCBnZXRBbGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscy4uLl0sCisgICAgICAgIF9X
S0xvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxMYXN0TW9kaWZpY2F0aW9uRGF0ZUtleSwgd2hp
Y2ggcHJldmlvdXNseSBzaWduaWZpZWQgdGhlIGxhc3QgdGltZSBhCisgICAgICAgIGNyZWRlbnRp
YWwgd2FzIG1vZGlmaWVkIG9yIHVzZWQgaW4gYW4gYXNzZXJ0aW9uLCB0byBqdXN0IHRoZSBsYXN0
IHRpbWUgdGhlIGNyZWRlbnRpYWwgd2FzIG1vZGlmaWVkLgorCisgICAgICAgIEEgbmV3IGtleSwg
X1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExhc3RVc2VkRGF0ZUtleSByZXByZXNlbnRz
IHRoZSBvbGQgZGVmaW5pdGlvbiwgdGhlIGxhc3QKKyAgICAgICAgdGltZSBhIGtleSB3YXMgdXNl
ZCBvciBtb2RpZmllZC4KKworICAgICAgICBVcGRhdGVkIEFQSSB0ZXN0IHRvIHZlcmlmeSBkaWZm
ZXJlbmNlcyBiZXR3ZWVuIF9XS0xvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxMYXN0TW9kaWZp
Y2F0aW9uRGF0ZUtleQorICAgICAgICBhbmQgX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlh
bExhc3RNb2RpZmljYXRpb25EYXRlS2V5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjItMDMtMjIgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRh
cmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNZXJnZS1RdWV1ZV0gQWRkIFZhbGlkYXRlU3F1YXNo
ZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCA0YTkwZjdjM2U2ODVh
YWIyZjc2ZDUzMWM5NDA5OGI3ZmJiNjI1ZTM2Li44NWI4NmYxMGZlNTU1YTM3Y2E5MWY4NmJkNDI0
Nzc5YjhhYjZjYzVkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC0y
MDQyLDggKzIwNDIsMTcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRp
b25TUElUaW1lb3V0KQogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25M
QSkKIHsKICAgICByZXNldCgpOworICAgIGF1dG8gYmVmb3JlVGltZSA9IGFkb3B0TlMoW1tOU0Rh
dGUgYWxsb2NdIGluaXRdKTsKIAogICAgIEFTU0VSVF9UUlVFKGFkZEtleVRvS2V5Y2hhaW4odGVz
dEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgImV4YW1wbGUuY29tIiwgdGVzdFVzZXJFbnRpdHlCdW5k
bGVCYXNlNjQpKTsKKyAgICAKKyAgICBhdXRvICpjcmVkZW50aWFsc0JlZm9yZSA9IFtfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsIGdldEFsbExvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzV2l0
aEFjY2Vzc0dyb3VwOkAiY29tLmFwcGxlLlRlc3RXZWJLaXRBUEkiXTsKKyAgICBFWFBFQ1RfTk9U
X05VTEwoY3JlZGVudGlhbHNCZWZvcmUpOworICAgIEVYUEVDVF9FUShbY3JlZGVudGlhbHNCZWZv
cmUgY291bnRdLCAxbHUpOworICAgIEVYUEVDVF9OT1RfTlVMTChbY3JlZGVudGlhbHNCZWZvcmUg
Zmlyc3RPYmplY3RdKTsKKyAgICBFWFBFQ1RfRVEoW1tjcmVkZW50aWFsc0JlZm9yZSBmaXJzdE9i
amVjdF1bX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExhc3RNb2RpZmljYXRpb25EYXRl
S2V5XSBjb21wYXJlOltjcmVkZW50aWFsc0JlZm9yZSBmaXJzdE9iamVjdF1bX1dLTG9jYWxBdXRo
ZW50aWNhdG9yQ3JlZGVudGlhbENyZWF0aW9uRGF0ZUtleV1dLCAwKTsKKyAgICBFWFBFQ1RfRVEo
W1tjcmVkZW50aWFsc0JlZm9yZSBmaXJzdE9iamVjdF1bX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3Jl
ZGVudGlhbExhc3RNb2RpZmljYXRpb25EYXRlS2V5XSBjb21wYXJlOltjcmVkZW50aWFsc0JlZm9y
ZSBmaXJzdE9iamVjdF1bX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExhc3RVc2VkRGF0
ZUtleV1dLCAwKTsKKyAgICBFWFBFQ1RfR0UoW1tjcmVkZW50aWFsc0JlZm9yZSBmaXJzdE9iamVj
dF1bX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExhc3RNb2RpZmljYXRpb25EYXRlS2V5
XSBjb21wYXJlOmJlZm9yZVRpbWUuZ2V0KCldLCAwKTsKIAogICAgIHVpbnQ4X3QgaGFzaFtdID0g
eyAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDAxLCAw
eDAyLCAweDAzLCAweDA0LCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDAxLCAweDAyLCAweDAz
LCAweDA0LCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAw
eDAxLCAweDAyLCAweDAzLCAweDA0IH07CiAgICAgTlNEYXRhICpuc0hhc2ggPSBbTlNEYXRhIGRh
dGFXaXRoQnl0ZXM6aGFzaCBsZW5ndGg6c2l6ZW9mKGhhc2gpXTsKQEAgLTIwNTgsNiArMjA2Nywx
NCBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvbkxBKQogCiAgICAg
W3BhbmVsIGdldEFzc2VydGlvbldpdGhDaGFsbGVuZ2U6bnNIYXNoIG9yaWdpbjpAImh0dHBzOi8v
ZXhhbXBsZS5jb20iIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKF9X
S0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSAqcmVzcG9uc2UsIE5TRXJyb3IgKmVycm9y
KSB7CiAgICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4gPSB0cnVlOworCisgICAgICAg
IGF1dG8gKmNyZWRlbnRpYWxzQWZ0ZXIgPSBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBnZXRB
bGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsc1dpdGhBY2Nlc3NHcm91cDpAImNvbS5hcHBs
ZS5UZXN0V2ViS2l0QVBJIl07CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChjcmVkZW50aWFsc0Fm
dGVyKTsKKyAgICAgICAgRVhQRUNUX0VRKFtjcmVkZW50aWFsc0FmdGVyIGNvdW50XSwgMWx1KTsK
KyAgICAgICAgRVhQRUNUX05PVF9OVUxMKFtjcmVkZW50aWFsc0FmdGVyIGZpcnN0T2JqZWN0XSk7
CisgICAgICAgIEVYUEVDVF9FUShbW2NyZWRlbnRpYWxzQWZ0ZXIgZmlyc3RPYmplY3RdW19XS0xv
Y2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxMYXN0TW9kaWZpY2F0aW9uRGF0ZUtleV0gY29tcGFy
ZTpbY3JlZGVudGlhbHNBZnRlciBmaXJzdE9iamVjdF1bX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3Jl
ZGVudGlhbENyZWF0aW9uRGF0ZUtleV1dLCAwKTsKKyAgICAgICAgRVhQRUNUX0xFKFtbY3JlZGVu
dGlhbHNBZnRlciBmaXJzdE9iamVjdF1bX1dLTG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExh
c3RNb2RpZmljYXRpb25EYXRlS2V5XSBjb21wYXJlOltjcmVkZW50aWFsc0FmdGVyIGZpcnN0T2Jq
ZWN0XVtfV0tMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsTGFzdFVzZWREYXRlS2V5XV0sIDAp
OworICAgICAgICBFWFBFQ1RfR0UoW1tjcmVkZW50aWFsc0JlZm9yZSBmaXJzdE9iamVjdF1bX1dL
TG9jYWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbExhc3RVc2VkRGF0ZUtleV0gY29tcGFyZTpiZWZv
cmVUaW1lLmdldCgpXSwgMCk7CiAgICAgICAgIGNsZWFuVXBLZXljaGFpbigiZXhhbXBsZS5jb20i
KTsKIAogICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>