17242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
27242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// Use of this source code is governed by a BSD-style license that can be
37242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci// found in the LICENSE file.
47242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
57242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#ifndef SubresourceIntegrity_h
67242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#define SubresourceIntegrity_h
77242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
87242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "platform/Crypto.h"
97242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
107242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccinamespace WTF {
117242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciclass String;
127242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci};
137242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
147242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccinamespace blink {
157242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
167242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciclass Element;
177242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciclass KURL;
187242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
197242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciclass SubresourceIntegrity {
207242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccipublic:
217242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    static bool CheckSubresourceIntegrity(const Element&, const WTF::String&, const KURL& resourceUrl);
227242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
237242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciprivate:
247242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    // FIXME: After the merge with the Chromium repo, this should be refactored
257242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    // to use FRIEND_TEST in base/gtest_prod_util.h.
267242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    friend class SubresourceIntegrityTest_Parsing_Test;
277242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
287242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    static bool parseIntegrityAttribute(const WTF::String& attribute, WTF::String& integrity, HashAlgorithm&);
297242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci};
307242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
317242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} // namespace blink
327242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
337242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#endif
34