[Webkit-unassigned] [Bug 162554] REGRESSION (Safari 10): Unable to store WebCrypto keys in IndexedDB database

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Sep 29 16:24:05 PDT 2016


--- Comment #5 from Brady Eidson <beidson at apple.com> ---
(In reply to comment #4)
> Using old archive builds we've tracked this to
> https://trac.webkit.org/changeset/191810 (bizarrely)

Never mind this, it's actually because Safari 10 started using WKPageNavigationClient, but does NOT implement the copyWebCryptoMasterKey callback.

Combine that with this code in WK2:
void WebPageProxy::wrapCryptoKey(const Vector<uint8_t>& key, bool& succeeded, Vector<uint8_t>& wrappedKey)
    PageClientProtector protector(m_pageClient);

    Vector<uint8_t> masterKey;

    if (m_navigationClient) {
        if (RefPtr<API::Data> keyData = m_navigationClient->webCryptoMasterKey(*this))
            masterKey = keyData->dataReference().vector();
    } else if (RefPtr<API::Data> keyData = m_loaderClient->webCryptoMasterKey(*this))
        masterKey = keyData->dataReference().vector();
    else if (!getDefaultWebCryptoMasterKey(masterKey)) {
        succeeded = false;

    succeeded = wrapSerializedCryptoKey(masterKey, key, wrappedKey);

If there *is* a nav client but it does *not* return a master key, this always fails.

I think this method should always fallback to the default key.

You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160929/ac3372a7/attachment-0001.html>

More information about the webkit-unassigned mailing list