diff options
Diffstat (limited to 'net/cert/sha256_legacy_support_win.h')
-rw-r--r-- | net/cert/sha256_legacy_support_win.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/net/cert/sha256_legacy_support_win.h b/net/cert/sha256_legacy_support_win.h new file mode 100644 index 0000000..c98414c --- /dev/null +++ b/net/cert/sha256_legacy_support_win.h @@ -0,0 +1,48 @@ +// 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); + +// 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_
\ No newline at end of file |