<?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>210540</bug_id>
          
          <creation_ts>2020-04-15 01:33:08 -0700</creation_ts>
          <short_desc>Fix an integer overflow in WebCrypto AES-CTR Mac implementation, which may detect a false loop</short_desc>
          <delta_ts>2020-04-17 00:35:08 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.15</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=208186</see_also>
          <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="Tomoki Imai">tomoki.imai</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>don.olmstead</cc>
    
    <cc>fujii</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yoshiaki.jitsukawa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641715</commentid>
    <comment_count>0</comment_count>
    <who name="Tomoki Imai">tomoki.imai</who>
    <bug_when>2020-04-15 01:33:08 -0700</bug_when>
    <thetext>(1 &lt;&lt; counterLength) causes an integer overflow, and the undefined behavior.
The longest valid counterLength on 64 bit machine is 63, and the literal 1 is considered as 32-bit signed integer.
Left shifting 1 beyond or to sign-bit is undefined behavior in C++ spec.

This issue is originally found in https://bugs.webkit.org/show_bug.cgi?id=208186#c2

Unfortunately, I don&apos;t own Mac so I can&apos;t test this locally.
For OpenSSL implementation the added test case could catch this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641716</commentid>
    <comment_count>1</comment_count>
      <attachid>396514</attachid>
    <who name="Tomoki Imai">tomoki.imai</who>
    <bug_when>2020-04-15 01:35:57 -0700</bug_when>
    <thetext>Created attachment 396514
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641908</commentid>
    <comment_count>2</comment_count>
      <attachid>396514</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-04-15 12:16:41 -0700</bug_when>
    <thetext>Comment on attachment 396514
patch

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

Good catch! Please address my comments below.

&gt; Source/WebCore/ChangeLog:6
&gt; +        (1 &lt;&lt; counterLength) causes an integer overflow, and the undefined behavior.

Maybe you could reference here: https://en.cppreference.com/w/cpp/language/integer_literal.

&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:48
&gt; +    if (counterLength &lt; sizeof(size_t) * 8 &amp;&amp; numberOfBlocks &gt; ((size_t)1 &lt;&lt; counterLength))

((size_t)1 =&gt; 1ull</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642050</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-15 17:13:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/61857969&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642144</commentid>
    <comment_count>4</comment_count>
    <who name="Tomoki Imai">tomoki.imai</who>
    <bug_when>2020-04-15 22:17:17 -0700</bug_when>
    <thetext>(In reply to Jiewen Tan from comment #2)
&gt; Comment on attachment 396514 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396514&amp;action=review
&gt; 
&gt; Good catch! Please address my comments below.

Thanks for your review!

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; +        (1 &lt;&lt; counterLength) causes an integer overflow, and the undefined behavior.
&gt; 
&gt; Maybe you could reference here:
&gt; https://en.cppreference.com/w/cpp/language/integer_literal.

Will do.

&gt; 
&gt; &gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:48
&gt; &gt; +    if (counterLength &lt; sizeof(size_t) * 8 &amp;&amp; numberOfBlocks &gt; ((size_t)1 &lt;&lt; counterLength))
&gt; 
&gt; ((size_t)1 =&gt; 1ull

I used ((size_t) 1) rather than 1ull, because I thought using size_t type makes more sense than &quot;unsigned long long&quot;.
- &quot;counterLength &lt; sizeof(size_t) * 8&quot; checks whether size_t has enough size to store (1 &lt;&lt; counterLength)
- In 32-bit environment, 1ull, which is 64-bit or larger, is a bit overkill, because counterLength &lt; 31 in 32-bit environment.

How do you think about it?
Of course, 1ull should work fine both on 32-bit and 64-bit environment, so I&apos;m fine to change it to 1ull.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642365</commentid>
    <comment_count>5</comment_count>
      <attachid>396514</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-04-16 11:33:27 -0700</bug_when>
    <thetext>Comment on attachment 396514
patch

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

&gt;&gt;&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:48
&gt;&gt;&gt; +    if (counterLength &lt; sizeof(size_t) * 8 &amp;&amp; numberOfBlocks &gt; ((size_t)1 &lt;&lt; counterLength))
&gt;&gt; 
&gt;&gt; ((size_t)1 =&gt; 1ull
&gt; 
&gt; I used ((size_t) 1) rather than 1ull, because I thought using size_t type makes more sense than &quot;unsigned long long&quot;.
&gt; - &quot;counterLength &lt; sizeof(size_t) * 8&quot; checks whether size_t has enough size to store (1 &lt;&lt; counterLength)
&gt; - In 32-bit environment, 1ull, which is 64-bit or larger, is a bit overkill, because counterLength &lt; 31 in 32-bit environment.
&gt; 
&gt; How do you think about it?
&gt; Of course, 1ull should work fine both on 32-bit and 64-bit environment, so I&apos;m fine to change it to 1ull.

I was not aware we are still supporting 32 bit machines. Doing a C style cast is not appropriate in WebKit, please change it to static_cast&lt;size_t&gt;(1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642565</commentid>
    <comment_count>6</comment_count>
      <attachid>396737</attachid>
    <who name="Tomoki Imai">tomoki.imai</who>
    <bug_when>2020-04-16 21:17:36 -0700</bug_when>
    <thetext>Created attachment 396737
patch

Reflected the review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642569</commentid>
    <comment_count>7</comment_count>
    <who name="Tomoki Imai">tomoki.imai</who>
    <bug_when>2020-04-16 21:22:51 -0700</bug_when>
    <thetext>(In reply to Jiewen Tan from comment #5)
&gt; Comment on attachment 396514 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396514&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:48
&gt; &gt;&gt;&gt; +    if (counterLength &lt; sizeof(size_t) * 8 &amp;&amp; numberOfBlocks &gt; ((size_t)1 &lt;&lt; counterLength))
&gt; &gt;&gt; 
&gt; &gt;&gt; ((size_t)1 =&gt; 1ull
&gt; &gt; 
&gt; &gt; I used ((size_t) 1) rather than 1ull, because I thought using size_t type makes more sense than &quot;unsigned long long&quot;.
&gt; &gt; - &quot;counterLength &lt; sizeof(size_t) * 8&quot; checks whether size_t has enough size to store (1 &lt;&lt; counterLength)
&gt; &gt; - In 32-bit environment, 1ull, which is 64-bit or larger, is a bit overkill, because counterLength &lt; 31 in 32-bit environment.
&gt; &gt; 
&gt; &gt; How do you think about it?
&gt; &gt; Of course, 1ull should work fine both on 32-bit and 64-bit environment, so I&apos;m fine to change it to 1ull.
&gt; 
&gt; I was not aware we are still supporting 32 bit machines. Doing a C style
&gt; cast is not appropriate in WebKit, please change it to
&gt; static_cast&lt;size_t&gt;(1).

I changed it to static_cast&lt;size_t&gt;(1).
I don&apos;t know about Mac implementation, but the other code seems to try to support 32-bit by using size_t.

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; +        (1 &lt;&lt; counterLength) causes an integer overflow, and the undefined behavior.
&gt; 
&gt; Maybe you could reference here:
&gt; https://en.cppreference.com/w/cpp/language/integer_literal.

I added 
- https://en.cppreference.com/w/cpp/language/integer_literal and 
- https://en.cppreference.com/w/cpp/language/operator_arithmetic#Bitwise_shift_operators 
as references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642593</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-04-17 00:30:58 -0700</bug_when>
    <thetext>(In reply to Tomoki Imai from comment #7)
&gt; (In reply to Jiewen Tan from comment #5)
&gt; &gt; Comment on attachment 396514 [details]
&gt; &gt; patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=396514&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebCore/crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:48
&gt; &gt; &gt;&gt;&gt; +    if (counterLength &lt; sizeof(size_t) * 8 &amp;&amp; numberOfBlocks &gt; ((size_t)1 &lt;&lt; counterLength))
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; ((size_t)1 =&gt; 1ull
&gt; &gt; &gt; 
&gt; &gt; &gt; I used ((size_t) 1) rather than 1ull, because I thought using size_t type makes more sense than &quot;unsigned long long&quot;.
&gt; &gt; &gt; - &quot;counterLength &lt; sizeof(size_t) * 8&quot; checks whether size_t has enough size to store (1 &lt;&lt; counterLength)
&gt; &gt; &gt; - In 32-bit environment, 1ull, which is 64-bit or larger, is a bit overkill, because counterLength &lt; 31 in 32-bit environment.
&gt; &gt; &gt; 
&gt; &gt; &gt; How do you think about it?
&gt; &gt; &gt; Of course, 1ull should work fine both on 32-bit and 64-bit environment, so I&apos;m fine to change it to 1ull.
&gt; &gt; 
&gt; &gt; I was not aware we are still supporting 32 bit machines. Doing a C style
&gt; &gt; cast is not appropriate in WebKit, please change it to
&gt; &gt; static_cast&lt;size_t&gt;(1).
&gt; 
&gt; I changed it to static_cast&lt;size_t&gt;(1).
&gt; I don&apos;t know about Mac implementation, but the other code seems to try to
&gt; support 32-bit by using size_t.
&gt; 

That was true 4 years ago for Apple ports but not now. Anyway, I think it is better to keep the consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642594</commentid>
    <comment_count>9</comment_count>
      <attachid>396737</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2020-04-17 00:32:37 -0700</bug_when>
    <thetext>Comment on attachment 396737
patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642595</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-17 00:35:07 -0700</bug_when>
    <thetext>Committed r260238: &lt;https://trac.webkit.org/changeset/260238&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396737.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396514</attachid>
            <date>2020-04-15 01:35:57 -0700</date>
            <delta_ts>2020-04-16 21:17:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>aes-ctr-mac-1.patch</filename>
            <type>text/plain</type>
            <size>4985</size>
            <attacher name="Tomoki Imai">tomoki.imai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTQ0ZmUwYTVjM2MuLjMxMDk0MmY0OWY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA0LTE1ICBUb21va2kgSW1haSAgPFRvbW9raS5JbWFpQHNvbnkuY29tPgorCisgICAg
ICAgIEZpeCBhbiBpbnRlZ2VyIG92ZXJmbG93IGluIFdlYkNyeXB0byBBRVMtQ1RSIE1hYyBpbXBs
ZW1lbnRhdGlvbiwgd2hpY2ggbWF5IGRldGVjdCBhIGZhbHNlIGxvb3AKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDU0MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG1vcmUgQUVTLUNUUiB0ZXN0
cyBmb3IgQWVzQ3RyUGFyYW1zLmxlbmd0aCBsYXJnZXIgdGhhbiAzMi4KKyAgICAgICAgKiBjcnlw
dG8vc3VidGxlL2Flcy1jdHItaW1wb3J0LWtleS1lbmNyeXB0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBjcnlwdG8vc3VidGxlL2Flcy1jdHItaW1wb3J0LWtleS1lbmNyeXB0Lmh0bWw6CisKIDIw
MjAtMDQtMTMgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBHYXJkZW5pbmcsIFdlYlJUQyBmbGFreSBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWltcG9ydC1rZXktZW5jcnlwdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jdHItaW1wb3J0LWtleS1lbmNy
eXB0LWV4cGVjdGVkLnR4dAppbmRleCAwYjAzY2Y2Nzk0YjQuLjE2YjI5ZDFhMjA4YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWltcG9ydC1rZXktZW5jcnlw
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWlt
cG9ydC1rZXktZW5jcnlwdC1leHBlY3RlZC50eHQKQEAgLTI5LDYgKzI5LDEwIEBAIExlbmd0aCA9
IDEyOCwgb3ZlcmZsb3cKIFBBU1MgYnl0ZXNUb0hleFN0cmluZyhjaXBoZXJUZXh0KSBpcyBleHBl
Y3RlZENpcGhlclRleHQxMgogTGVuZ3RoID0gMTI4LCBvdmVyZmxvdwogUEFTUyBieXRlc1RvSGV4
U3RyaW5nKGNpcGhlclRleHQpIGlzIGV4cGVjdGVkQ2lwaGVyVGV4dDEzCitMZW5ndGggPSAzMwor
UEFTUyBieXRlc1RvSGV4U3RyaW5nKGNpcGhlclRleHQpIGlzIGV4cGVjdGVkQ2lwaGVyVGV4dAor
TGVuZ3RoID0gNjMKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhjaXBoZXJUZXh0KSBpcyBleHBlY3Rl
ZENpcGhlclRleHQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWltcG9y
dC1rZXktZW5jcnlwdC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWlt
cG9ydC1rZXktZW5jcnlwdC5odG1sCmluZGV4IDlmYmM3ZTAwZmE1Zi4uOTNjNmUxMzA2NjM4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jdHItaW1wb3J0LWtleS1l
bmNyeXB0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWltcG9y
dC1rZXktZW5jcnlwdC5odG1sCkBAIC04MCw2ICs4MCwxNyBAQCB2YXIgYWVzQ3RyUGFyYW1zMTM9
IHsKICAgICBjb3VudGVyOiBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImZmZmZmZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmZmZlIiksCiAgICAgbGVuZ3RoOiAxMjgsCiB9Cit2YXIgYWVzQ3RyUGFyYW1z
MTQgPSB7CisgICAgbmFtZTogImFlcy1jdHIiLAorICAgIGNvdW50ZXI6IGFzY2lpVG9VaW50OEFy
cmF5KCJqbk93OTlvT1pGTElFUE1yIiksCisgICAgbGVuZ3RoOiAzMywKK30KK3ZhciBhZXNDdHJQ
YXJhbXMxNSA9IHsKKyAgICBuYW1lOiAiYWVzLWN0ciIsCisgICAgY291bnRlcjogYXNjaWlUb1Vp
bnQ4QXJyYXkoImpuT3c5OW9PWkZMSUVQTXIiKSwKKyAgICBsZW5ndGg6IDYzLAorfQorCiB2YXIg
cmF3S2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoImpuT3c5OW9PWkZMSUVQTXIiKTsKIHZhciBleHBl
Y3RlZENpcGhlclRleHQgPSAiYTVmOTQwZTkzNDA2ZDRiZDliNzMxOGU2NTNkNGNiOWQxYWY0OTdm
NTJmY2JiNjU5YTAzOGU3MTFlOGJkNjFmYjQ4NjM5MzFkMjU5MTFlMmU5ZmYzMGNmMzdlYzI3ZGQ4
MTNhNjI4MzAiOwogdmFyIGV4cGVjdGVkQ2lwaGVyVGV4dDQgPSAiNmE0NjFlYjNmNjRlZjRjNDY2
NTk3YmE4NzdhOTUxMmI1YWI0MWI0MzM4ZWRjMjgyMmQxZjBkZmFjMGNlYzA3MTQ5NzY2ZTE4OWZh
NDI2ZDVlYTMwZmU1NDEwMTgzNjIwODhkYjIxMTciOwpAQCAtMTg3LDYgKzE5OCwyMCBAQCBjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgcmF3S2V5LCAiYWVzLWN0ciIsIGV4dHJhY3RhYmxl
LCBbImVuY3J5cHQiXSkudGhlbgogCiAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoY2lw
aGVyVGV4dCkiLCAiZXhwZWN0ZWRDaXBoZXJUZXh0MTMiKTsKIAorICAgIGRlYnVnKCJMZW5ndGgg
PSAzMyIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoYWVzQ3RyUGFyYW1zMTQs
IGtleSwgcGxhaW5UZXh0KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgY2lwaGVy
VGV4dCA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGNpcGhlclRl
eHQpIiwgImV4cGVjdGVkQ2lwaGVyVGV4dCIpOworCisgICAgZGVidWcoIkxlbmd0aCA9IDYzIik7
CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZW5jcnlwdChhZXNDdHJQYXJhbXMxNSwga2V5LCBw
bGFpblRleHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBjaXBoZXJUZXh0ID0g
cmVzdWx0OworCisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoY2lwaGVyVGV4dCkiLCAi
ZXhwZWN0ZWRDaXBoZXJUZXh0Iik7CisKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMTNmZWVjNzU4N2VkLi5kZDM2NTA1MDBmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAyMC0wNC0xNSAgVG9tb2tpIEltYWkgIDxUb21va2kuSW1haUBzb255LmNvbT4K
KworICAgICAgICBGaXggYW4gaW50ZWdlciBvdmVyZmxvdyBpbiBXZWJDcnlwdG8gQUVTLUNUUiBN
YWMgaW1wbGVtZW50YXRpb24sIHdoaWNoIG1heSBkZXRlY3QgYSBmYWxzZSBsb29wCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA1NDAKKworICAgICAg
ICAoMSA8PCBjb3VudGVyTGVuZ3RoKSBjYXVzZXMgYW4gaW50ZWdlciBvdmVyZmxvdywgYW5kIHRo
ZSB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICAgIFRoZSBsb25nZXN0IHZhbGlkIGNvdW50ZXJM
ZW5ndGggb24gNjQgYml0IG1hY2hpbmUgaXMgNjMsCisgICAgICAgIGFuZCB0aGUgbGl0ZXJhbCAx
IGlzIGNvbnNpZGVyZWQgYXMgMzItYml0IHNpZ25lZCBpbnRlZ2VyLgorICAgICAgICBMZWZ0IHNo
aWZ0aW5nIDEgYmV5b25kIG9yIHRvIHNpZ24tYml0IGlzIHVuZGVmaW5lZCBiZWhhdmlvciBpbiBD
Kysgc3BlYy4KKworICAgICAgICBUaGlzIGlzc3VlIGlzIG9yaWdpbmFsbHkgZm91bmQgaW4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE4NiNjMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNyeXB0by9zdWJ0
bGUvYWVzLWN0ci1pbXBvcnQta2V5LWVuY3J5cHQuaHRtbAorCisgICAgICAgICogY3J5cHRvL21h
Yy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5z
Zm9ybUFFU19DVFIpOgorCiAyMDIwLTA0LTEzICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZW1vdmUgdW51c2VkIFVUVHlwZSBzd2l6emxlciBj
b2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRo
bUFFU19DVFJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0
aG1BRVNfQ1RSTWFjLmNwcAppbmRleCBjZGI5ZGI3Y2M3NjAuLmZmZjYxODMxMWE5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSTWFj
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19D
VFJNYWMuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWlu
dDhfdD4+IHRyYW5zZm9ybUFFU19DVFIoQ0NPcGVyYXRpb24gb3BlcmF0aW9uLCBjb25zCiAgICAg
c2l6ZV90IG51bWJlck9mQmxvY2tzID0gZGF0YS5zaXplKCkgJSBrQ0NCbG9ja1NpemVBRVMxMjgg
PyBkYXRhLnNpemUoKSAvIGtDQ0Jsb2NrU2l6ZUFFUzEyOCArIDEgOiBkYXRhLnNpemUoKSAvIGtD
Q0Jsb2NrU2l6ZUFFUzEyODsKIAogICAgIC8vIERldGVjdCBsb29wCi0gICAgaWYgKGNvdW50ZXJM
ZW5ndGggPCBzaXplb2Yoc2l6ZV90KSAqIDggJiYgbnVtYmVyT2ZCbG9ja3MgPiAoMSA8PCBjb3Vu
dGVyTGVuZ3RoKSkKKyAgICBpZiAoY291bnRlckxlbmd0aCA8IHNpemVvZihzaXplX3QpICogOCAm
JiBudW1iZXJPZkJsb2NrcyA+ICgoc2l6ZV90KTEgPDwgY291bnRlckxlbmd0aCkpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCiAgICAgLy8gQ2FsY3VsYXRl
IGNhcGFjaXR5IGJlZm9yZSBvdmVyZmxvdwo=
</data>
<flag name="review"
          id="411917"
          type_id="1"
          status="-"
          setter="jiewen_tan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396737</attachid>
            <date>2020-04-16 21:17:36 -0700</date>
            <delta_ts>2020-04-17 00:35:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>aes-ctr-mac-2.patch</filename>
            <type>text/plain</type>
            <size>5166</size>
            <attacher name="Tomoki Imai">tomoki.imai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTQ0ZmUwYTVjM2MuLjMxMDk0MmY0OWY3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTA0LTE1ICBUb21va2kgSW1haSAgPFRvbW9raS5JbWFpQHNvbnkuY29tPgorCisgICAg
ICAgIEZpeCBhbiBpbnRlZ2VyIG92ZXJmbG93IGluIFdlYkNyeXB0byBBRVMtQ1RSIE1hYyBpbXBs
ZW1lbnRhdGlvbiwgd2hpY2ggbWF5IGRldGVjdCBhIGZhbHNlIGxvb3AKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDU0MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG1vcmUgQUVTLUNUUiB0ZXN0
cyBmb3IgQWVzQ3RyUGFyYW1zLmxlbmd0aCBsYXJnZXIgdGhhbiAzMi4KKyAgICAgICAgKiBjcnlw
dG8vc3VidGxlL2Flcy1jdHItaW1wb3J0LWtleS1lbmNyeXB0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBjcnlwdG8vc3VidGxlL2Flcy1jdHItaW1wb3J0LWtleS1lbmNyeXB0Lmh0bWw6CisKIDIw
MjAtMDQtMTMgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBHYXJkZW5pbmcsIFdlYlJUQyBmbGFreSBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWltcG9ydC1rZXktZW5jcnlwdC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jdHItaW1wb3J0LWtleS1lbmNy
eXB0LWV4cGVjdGVkLnR4dAppbmRleCAwYjAzY2Y2Nzk0YjQuLjE2YjI5ZDFhMjA4YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWltcG9ydC1rZXktZW5jcnlw
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWlt
cG9ydC1rZXktZW5jcnlwdC1leHBlY3RlZC50eHQKQEAgLTI5LDYgKzI5LDEwIEBAIExlbmd0aCA9
IDEyOCwgb3ZlcmZsb3cKIFBBU1MgYnl0ZXNUb0hleFN0cmluZyhjaXBoZXJUZXh0KSBpcyBleHBl
Y3RlZENpcGhlclRleHQxMgogTGVuZ3RoID0gMTI4LCBvdmVyZmxvdwogUEFTUyBieXRlc1RvSGV4
U3RyaW5nKGNpcGhlclRleHQpIGlzIGV4cGVjdGVkQ2lwaGVyVGV4dDEzCitMZW5ndGggPSAzMwor
UEFTUyBieXRlc1RvSGV4U3RyaW5nKGNpcGhlclRleHQpIGlzIGV4cGVjdGVkQ2lwaGVyVGV4dAor
TGVuZ3RoID0gNjMKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhjaXBoZXJUZXh0KSBpcyBleHBlY3Rl
ZENpcGhlclRleHQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWltcG9y
dC1rZXktZW5jcnlwdC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWlt
cG9ydC1rZXktZW5jcnlwdC5odG1sCmluZGV4IDlmYmM3ZTAwZmE1Zi4uOTNjNmUxMzA2NjM4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Flcy1jdHItaW1wb3J0LWtleS1l
bmNyeXB0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9hZXMtY3RyLWltcG9y
dC1rZXktZW5jcnlwdC5odG1sCkBAIC04MCw2ICs4MCwxNyBAQCB2YXIgYWVzQ3RyUGFyYW1zMTM9
IHsKICAgICBjb3VudGVyOiBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImZmZmZmZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmZmZlIiksCiAgICAgbGVuZ3RoOiAxMjgsCiB9Cit2YXIgYWVzQ3RyUGFyYW1z
MTQgPSB7CisgICAgbmFtZTogImFlcy1jdHIiLAorICAgIGNvdW50ZXI6IGFzY2lpVG9VaW50OEFy
cmF5KCJqbk93OTlvT1pGTElFUE1yIiksCisgICAgbGVuZ3RoOiAzMywKK30KK3ZhciBhZXNDdHJQ
YXJhbXMxNSA9IHsKKyAgICBuYW1lOiAiYWVzLWN0ciIsCisgICAgY291bnRlcjogYXNjaWlUb1Vp
bnQ4QXJyYXkoImpuT3c5OW9PWkZMSUVQTXIiKSwKKyAgICBsZW5ndGg6IDYzLAorfQorCiB2YXIg
cmF3S2V5ID0gYXNjaWlUb1VpbnQ4QXJyYXkoImpuT3c5OW9PWkZMSUVQTXIiKTsKIHZhciBleHBl
Y3RlZENpcGhlclRleHQgPSAiYTVmOTQwZTkzNDA2ZDRiZDliNzMxOGU2NTNkNGNiOWQxYWY0OTdm
NTJmY2JiNjU5YTAzOGU3MTFlOGJkNjFmYjQ4NjM5MzFkMjU5MTFlMmU5ZmYzMGNmMzdlYzI3ZGQ4
MTNhNjI4MzAiOwogdmFyIGV4cGVjdGVkQ2lwaGVyVGV4dDQgPSAiNmE0NjFlYjNmNjRlZjRjNDY2
NTk3YmE4NzdhOTUxMmI1YWI0MWI0MzM4ZWRjMjgyMmQxZjBkZmFjMGNlYzA3MTQ5NzY2ZTE4OWZh
NDI2ZDVlYTMwZmU1NDEwMTgzNjIwODhkYjIxMTciOwpAQCAtMTg3LDYgKzE5OCwyMCBAQCBjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgcmF3S2V5LCAiYWVzLWN0ciIsIGV4dHJhY3RhYmxl
LCBbImVuY3J5cHQiXSkudGhlbgogCiAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoY2lw
aGVyVGV4dCkiLCAiZXhwZWN0ZWRDaXBoZXJUZXh0MTMiKTsKIAorICAgIGRlYnVnKCJMZW5ndGgg
PSAzMyIpOworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoYWVzQ3RyUGFyYW1zMTQs
IGtleSwgcGxhaW5UZXh0KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgY2lwaGVy
VGV4dCA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGNpcGhlclRl
eHQpIiwgImV4cGVjdGVkQ2lwaGVyVGV4dCIpOworCisgICAgZGVidWcoIkxlbmd0aCA9IDYzIik7
CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZW5jcnlwdChhZXNDdHJQYXJhbXMxNSwga2V5LCBw
bGFpblRleHQpOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBjaXBoZXJUZXh0ID0g
cmVzdWx0OworCisgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoY2lwaGVyVGV4dCkiLCAi
ZXhwZWN0ZWRDaXBoZXJUZXh0Iik7CisKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0pOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMTNmZWVjNzU4N2VkLi5iOTY5MTVjOGY2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAyMC0wNC0xNSAgVG9tb2tpIEltYWkgIDxUb21va2kuSW1haUBzb255LmNvbT4K
KworICAgICAgICBGaXggYW4gaW50ZWdlciBvdmVyZmxvdyBpbiBXZWJDcnlwdG8gQUVTLUNUUiBN
YWMgaW1wbGVtZW50YXRpb24sIHdoaWNoIG1heSBkZXRlY3QgYSBmYWxzZSBsb29wCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA1NDAKKworICAgICAg
ICAoMSA8PCBjb3VudGVyTGVuZ3RoKSBjYXVzZXMgYW4gaW50ZWdlciBvdmVyZmxvdywgYW5kIHRo
ZSB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICAgIFRoZSBsb25nZXN0IHZhbGlkIGNvdW50ZXJM
ZW5ndGggb24gNjQgYml0IG1hY2hpbmUgaXMgNjMsCisgICAgICAgIGFuZCB0aGUgbGl0ZXJhbCAx
IGlzIGNvbnNpZGVyZWQgYXMgMzItYml0IHNpZ25lZCBpbnRlZ2VyLgorICAgICAgICBMZWZ0IHNo
aWZ0aW5nIDEgYmV5b25kIG9yIHRvIHNpZ24tYml0IGlzIHVuZGVmaW5lZCBiZWhhdmlvciBpbiBD
Kysgc3BlYy4KKyAgICAgICAgLSBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvbGFu
Z3VhZ2UvaW50ZWdlcl9saXRlcmFsCisgICAgICAgIC0gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2Uu
Y29tL3cvY3BwL2xhbmd1YWdlL29wZXJhdG9yX2FyaXRobWV0aWMjQml0d2lzZV9zaGlmdF9vcGVy
YXRvcnMKKworICAgICAgICBUaGlzIGlzc3VlIGlzIG9yaWdpbmFsbHkgZm91bmQgaW4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODE4NiNjMgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNyeXB0by9zdWJ0bGUv
YWVzLWN0ci1pbXBvcnQta2V5LWVuY3J5cHQuaHRtbAorCisgICAgICAgICogY3J5cHRvL21hYy9D
cnlwdG9BbGdvcml0aG1BRVNfQ1RSTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyYW5zZm9y
bUFFU19DVFIpOgorCiAyMDIwLTA0LTEzICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBSZW1vdmUgdW51c2VkIFVUVHlwZSBzd2l6emxlciBjb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFF
U19DVFJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1B
RVNfQ1RSTWFjLmNwcAppbmRleCBjZGI5ZGI3Y2M3NjAuLmNjNDFkYTY1YjBkYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSTWFjLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DVFJN
YWMuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IHRyYW5zZm9ybUFFU19DVFIoQ0NPcGVyYXRpb24gb3BlcmF0aW9uLCBjb25zCiAgICAgc2l6
ZV90IG51bWJlck9mQmxvY2tzID0gZGF0YS5zaXplKCkgJSBrQ0NCbG9ja1NpemVBRVMxMjggPyBk
YXRhLnNpemUoKSAvIGtDQ0Jsb2NrU2l6ZUFFUzEyOCArIDEgOiBkYXRhLnNpemUoKSAvIGtDQ0Js
b2NrU2l6ZUFFUzEyODsKIAogICAgIC8vIERldGVjdCBsb29wCi0gICAgaWYgKGNvdW50ZXJMZW5n
dGggPCBzaXplb2Yoc2l6ZV90KSAqIDggJiYgbnVtYmVyT2ZCbG9ja3MgPiAoMSA8PCBjb3VudGVy
TGVuZ3RoKSkKKyAgICBpZiAoY291bnRlckxlbmd0aCA8IHNpemVvZihzaXplX3QpICogOCAmJiBu
dW1iZXJPZkJsb2NrcyA+IChzdGF0aWNfY2FzdDxzaXplX3Q+KDEpIDw8IGNvdW50ZXJMZW5ndGgp
KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKIAogICAgIC8v
IENhbGN1bGF0ZSBjYXBhY2l0eSBiZWZvcmUgb3ZlcmZsb3cK
</data>

          </attachment>
      

    </bug>

</bugzilla>