| Index: net/cert/sha256_legacy_support_win.h
|
| diff --git a/net/cert/sha256_legacy_support_win.h b/net/cert/sha256_legacy_support_win.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3e461b5e372b2cf34dfc094dc181edb3e4f63009
|
| --- /dev/null
|
| +++ b/net/cert/sha256_legacy_support_win.h
|
| @@ -0,0 +1,52 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef NET_CERT_SHA256_LEGACY_SUPPORT_WIN_H_
|
| +#define NET_CERT_SHA256_LEGACY_SUPPORT_WIN_H_
|
| +
|
| +#include <windows.h>
|
| +#include <wincrypt.h>
|
| +
|
| +#include "net/base/net_export.h"
|
| +
|
| +namespace net {
|
| +
|
| +namespace sha256_interception {
|
| +
|
| +typedef BOOL (WINAPI* CryptVerifyCertificateSignatureExFunc)(
|
| + HCRYPTPROV_LEGACY provider,
|
| + DWORD encoding_type,
|
| + DWORD subject_type,
|
| + void* subject_data,
|
| + DWORD issuer_type,
|
| + void* issuer_data,
|
| + DWORD flags,
|
| + void* extra);
|
| +
|
| +// Returns true if running on a platform that lacks SHA-256 support, and thus
|
| +// it is necessary to intercept and redirect CertVerifyCertificateSignatureEx.
|
| +NET_EXPORT bool IsNeeded();
|
| +
|
| +// Interception function meant to be called whenever
|
| +// CryptVerifyCertificateSignatureEx is called. Note that the calling
|
| +// conventions do not match, as the caller is expected to ensure that their
|
| +// interposed function handles the calling conventions and provides a pointer
|
| +// to the original CryptVerifyCertificateSignatureEx (e.g. to handle parameters
|
| +// and keys that are not supported).
|
| +NET_EXPORT BOOL CryptVerifyCertificateSignatureExHook(
|
| + CryptVerifyCertificateSignatureExFunc original_func,
|
| + HCRYPTPROV_LEGACY provider,
|
| + DWORD encoding_type,
|
| + DWORD subject_type,
|
| + void* subject_data,
|
| + DWORD issuer_type,
|
| + void* issuer_data,
|
| + DWORD flags,
|
| + void* extra);
|
| +
|
| +} // namespace sha256_interception
|
| +
|
| +} // namespace net
|
| +
|
| +#endif // NET_CERT_SHA256_LEGACY_SUPPORT_WIN_H_
|
|
|