Handle key generation with empty challenge string
authorwilander@apple.com <wilander@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 14 Dec 2016 20:30:51 +0000 (20:30 +0000)
committerwilander@apple.com <wilander@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 14 Dec 2016 20:30:51 +0000 (20:30 +0000)
commitb9d57d6024d26f914875e7a2021f8e739b8ddd9a
tree0ed25eb3bcb604636444e986de50cd565d2730e8
parent0f66a96b32873cad61c8587d5c5235cafad9fe14
Handle key generation with empty challenge string
https://bugs.webkit.org/show_bug.cgi?id=165835
<rdar://problem/29128710>

Reviewed by Anders Carlsson.

https://bugs.webkit.org/show_bug.cgi?id=160945 didn't set the challenge length to
1 for empty challenge strings. Thus the null terminator was not included. Empty
challenge strings are allowed:
"If the element has a challenge attribute, then let challenge be that attribute's
value. Otherwise, let challenge be the empty string."
https://www.w3.org/TR/html5/forms.html#the-keygen-element (fetched 2016-12-13)

Email certificate generation at
https://www.comodo.com/home/email-security/free-email-certificate.php broke
because of https://bugs.webkit.org/show_bug.cgi?id=160945.

No new tests. The original patch did not have tests and the breakage was in the
produced key material so a test would have to validate the crypto output.

* platform/mac/SSLKeyGeneratorMac.mm:
(WebCore::signedPublicKeyAndChallengeString):
    Now adds 1 to the length of the challenge to account for its null terminator.
    This matches the old behavior.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@209822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/mac/SSLKeyGeneratorMac.mm