From 7b950141570829038dbc20d50cb1e07eec76f13b Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Mon, 21 Nov 2022 14:41:47 +0100 Subject: [PATCH] [winpr,crypto] Split crypto header renamed * Renamed custom winpr crypto function header * Added compatiblity header --- include/freerdp/crypto/crypto.h | 2 +- libfreerdp/core/settings.c | 1 - libfreerdp/crypto/crypto.c | 1 - winpr/include/winpr/crypto.h | 229 +--------------- winpr/include/winpr/custom-crypto.h | 251 ++++++++++++++++++ winpr/include/winpr/schannel.h | 1 - winpr/libwinpr/crypto/crypto.c | 1 - .../TestCryptoCertEnumCertificatesInStore.c | 1 - .../crypto/test/TestCryptoProtectMemory.c | 1 - winpr/libwinpr/ncrypt/ncrypt_pkcs11.c | 1 - winpr/libwinpr/sspi/Schannel/schannel.c | 1 - 11 files changed, 254 insertions(+), 236 deletions(-) create mode 100644 winpr/include/winpr/custom-crypto.h diff --git a/include/freerdp/crypto/crypto.h b/include/freerdp/crypto/crypto.h index 257eb0098..55221ec1f 100644 --- a/include/freerdp/crypto/crypto.h +++ b/include/freerdp/crypto/crypto.h @@ -22,7 +22,7 @@ /* OpenSSL includes windows.h */ #include -#include +#include #include #include diff --git a/libfreerdp/core/settings.c b/libfreerdp/core/settings.c index fd00df6d2..48f6c96c6 100644 --- a/libfreerdp/core/settings.c +++ b/libfreerdp/core/settings.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include diff --git a/libfreerdp/crypto/crypto.c b/libfreerdp/crypto/crypto.c index 3d04833f5..3416dd750 100644 --- a/libfreerdp/crypto/crypto.c +++ b/libfreerdp/crypto/crypto.c @@ -23,7 +23,6 @@ #include #include -#include #include #include diff --git a/winpr/include/winpr/crypto.h b/winpr/include/winpr/crypto.h index 5868a8579..df38fedb7 100644 --- a/winpr/include/winpr/crypto.h +++ b/winpr/include/winpr/crypto.h @@ -20,232 +20,7 @@ #ifndef WINPR_CRYPTO_H #define WINPR_CRYPTO_H -#include -#include - -#include - -/** - * Custom Crypto API Abstraction Layer - */ - -#define WINPR_MD4_DIGEST_LENGTH 16 -#define WINPR_MD5_DIGEST_LENGTH 16 -#define WINPR_SHA1_DIGEST_LENGTH 20 -#define WINPR_SHA224_DIGEST_LENGTH 28 -#define WINPR_SHA256_DIGEST_LENGTH 32 -#define WINPR_SHA384_DIGEST_LENGTH 48 -#define WINPR_SHA512_DIGEST_LENGTH 64 -#define WINPR_RIPEMD160_DIGEST_LENGTH 20 -#define WINPR_SHA3_224_DIGEST_LENGTH 28 -#define WINPR_SHA3_256_DIGEST_LENGTH 32 -#define WINPR_SHA3_384_DIGEST_LENGTH 48 -#define WINPR_SHA3_512_DIGEST_LENGTH 64 -#define WINPR_SHAKE128_DIGEST_LENGTH 16 -#define WINPR_SHAKE256_DIGEST_LENGTH 32 - -/** - * HMAC - */ -typedef enum -{ - WINPR_MD_NONE = 0, - WINPR_MD_MD2 = 1, - WINPR_MD_MD4 = 2, - WINPR_MD_MD5 = 3, - WINPR_MD_SHA1 = 4, - WINPR_MD_SHA224 = 5, - WINPR_MD_SHA256 = 6, - WINPR_MD_SHA384 = 7, - WINPR_MD_SHA512 = 8, - WINPR_MD_RIPEMD160 = 9, - WINPR_MD_SHA3_224 = 10, - WINPR_MD_SHA3_256 = 11, - WINPR_MD_SHA3_384 = 12, - WINPR_MD_SHA3_512 = 13, - WINPR_MD_SHAKE128 = 14, - WINPR_MD_SHAKE256 = 15 -} WINPR_MD_TYPE; - -typedef struct winpr_hmac_ctx_private_st WINPR_HMAC_CTX; - -#ifdef __cplusplus -extern "C" -{ -#endif - - WINPR_API WINPR_MD_TYPE winpr_md_type_from_string(const char* name); - WINPR_API const char* winpr_md_type_to_string(WINPR_MD_TYPE md); - - WINPR_API WINPR_HMAC_CTX* winpr_HMAC_New(void); - WINPR_API BOOL winpr_HMAC_Init(WINPR_HMAC_CTX* ctx, WINPR_MD_TYPE md, const BYTE* key, - size_t keylen); - WINPR_API BOOL winpr_HMAC_Update(WINPR_HMAC_CTX* ctx, const BYTE* input, size_t ilen); - WINPR_API BOOL winpr_HMAC_Final(WINPR_HMAC_CTX* ctx, BYTE* output, size_t ilen); - WINPR_API void winpr_HMAC_Free(WINPR_HMAC_CTX* ctx); - WINPR_API BOOL winpr_HMAC(WINPR_MD_TYPE md, const BYTE* key, size_t keylen, const BYTE* input, - size_t ilen, BYTE* output, size_t olen); - -#ifdef __cplusplus -} -#endif - -/** - * Generic Digest API - */ - -typedef struct winpr_digest_ctx_private_st WINPR_DIGEST_CTX; - -#ifdef __cplusplus -extern "C" -{ -#endif - - WINPR_API WINPR_DIGEST_CTX* winpr_Digest_New(void); - WINPR_API BOOL winpr_Digest_Init_Allow_FIPS(WINPR_DIGEST_CTX* ctx, WINPR_MD_TYPE md); - WINPR_API BOOL winpr_Digest_Init(WINPR_DIGEST_CTX* ctx, WINPR_MD_TYPE md); - WINPR_API BOOL winpr_Digest_Update(WINPR_DIGEST_CTX* ctx, const BYTE* input, size_t ilen); - WINPR_API BOOL winpr_Digest_Final(WINPR_DIGEST_CTX* ctx, BYTE* output, size_t ilen); - WINPR_API void winpr_Digest_Free(WINPR_DIGEST_CTX* ctx); - WINPR_API BOOL winpr_Digest_Allow_FIPS(WINPR_MD_TYPE md, const BYTE* input, size_t ilen, - BYTE* output, size_t olen); - WINPR_API BOOL winpr_Digest(WINPR_MD_TYPE md, const BYTE* input, size_t ilen, BYTE* output, - size_t olen); - -#ifdef __cplusplus -} -#endif - -/** - * Random Number Generation - */ - -#ifdef __cplusplus -extern "C" -{ -#endif - - WINPR_API int winpr_RAND(void* output, size_t len); - WINPR_API int winpr_RAND_pseudo(void* output, size_t len); - -#ifdef __cplusplus -} -#endif - -/** - * RC4 - */ - -typedef struct winpr_rc4_ctx_private_st WINPR_RC4_CTX; - -#ifdef __cplusplus -extern "C" -{ -#endif - - WINPR_API WINPR_RC4_CTX* winpr_RC4_New_Allow_FIPS(const BYTE* key, size_t keylen); - WINPR_API WINPR_RC4_CTX* winpr_RC4_New(const BYTE* key, size_t keylen); - WINPR_API BOOL winpr_RC4_Update(WINPR_RC4_CTX* ctx, size_t length, const BYTE* input, - BYTE* output); - WINPR_API void winpr_RC4_Free(WINPR_RC4_CTX* ctx); - -#ifdef __cplusplus -} -#endif - -/** - * Generic Cipher API - */ - -#define WINPR_AES_BLOCK_SIZE 16 - -/* cipher operation types */ -#define WINPR_ENCRYPT 0 -#define WINPR_DECRYPT 1 - -/* cipher types */ -#define WINPR_CIPHER_NONE 0 -#define WINPR_CIPHER_NULL 1 -#define WINPR_CIPHER_AES_128_ECB 2 -#define WINPR_CIPHER_AES_192_ECB 3 -#define WINPR_CIPHER_AES_256_ECB 4 -#define WINPR_CIPHER_AES_128_CBC 5 -#define WINPR_CIPHER_AES_192_CBC 6 -#define WINPR_CIPHER_AES_256_CBC 7 -#define WINPR_CIPHER_AES_128_CFB128 8 -#define WINPR_CIPHER_AES_192_CFB128 9 -#define WINPR_CIPHER_AES_256_CFB128 10 -#define WINPR_CIPHER_AES_128_CTR 11 -#define WINPR_CIPHER_AES_192_CTR 12 -#define WINPR_CIPHER_AES_256_CTR 13 -#define WINPR_CIPHER_AES_128_GCM 14 -#define WINPR_CIPHER_AES_192_GCM 15 -#define WINPR_CIPHER_AES_256_GCM 16 -#define WINPR_CIPHER_CAMELLIA_128_ECB 17 -#define WINPR_CIPHER_CAMELLIA_192_ECB 18 -#define WINPR_CIPHER_CAMELLIA_256_ECB 19 -#define WINPR_CIPHER_CAMELLIA_128_CBC 20 -#define WINPR_CIPHER_CAMELLIA_192_CBC 21 -#define WINPR_CIPHER_CAMELLIA_256_CBC 22 -#define WINPR_CIPHER_CAMELLIA_128_CFB128 23 -#define WINPR_CIPHER_CAMELLIA_192_CFB128 24 -#define WINPR_CIPHER_CAMELLIA_256_CFB128 25 -#define WINPR_CIPHER_CAMELLIA_128_CTR 26 -#define WINPR_CIPHER_CAMELLIA_192_CTR 27 -#define WINPR_CIPHER_CAMELLIA_256_CTR 28 -#define WINPR_CIPHER_CAMELLIA_128_GCM 29 -#define WINPR_CIPHER_CAMELLIA_192_GCM 30 -#define WINPR_CIPHER_CAMELLIA_256_GCM 31 -#define WINPR_CIPHER_DES_ECB 32 -#define WINPR_CIPHER_DES_CBC 33 -#define WINPR_CIPHER_DES_EDE_ECB 34 -#define WINPR_CIPHER_DES_EDE_CBC 35 -#define WINPR_CIPHER_DES_EDE3_ECB 36 -#define WINPR_CIPHER_DES_EDE3_CBC 37 -#define WINPR_CIPHER_BLOWFISH_ECB 38 -#define WINPR_CIPHER_BLOWFISH_CBC 39 -#define WINPR_CIPHER_BLOWFISH_CFB64 40 -#define WINPR_CIPHER_BLOWFISH_CTR 41 -#define WINPR_CIPHER_ARC4_128 42 -#define WINPR_CIPHER_AES_128_CCM 43 -#define WINPR_CIPHER_AES_192_CCM 44 -#define WINPR_CIPHER_AES_256_CCM 45 -#define WINPR_CIPHER_CAMELLIA_128_CCM 46 -#define WINPR_CIPHER_CAMELLIA_192_CCM 47 -#define WINPR_CIPHER_CAMELLIA_256_CCM 48 - -typedef struct winpr_cipher_ctx_private_st WINPR_CIPHER_CTX; - -#ifdef __cplusplus -extern "C" -{ -#endif - - WINPR_API WINPR_CIPHER_CTX* winpr_Cipher_New(int cipher, int op, const BYTE* key, - const BYTE* iv); - WINPR_API BOOL winpr_Cipher_Update(WINPR_CIPHER_CTX* ctx, const BYTE* input, size_t ilen, - BYTE* output, size_t* olen); - WINPR_API BOOL winpr_Cipher_Final(WINPR_CIPHER_CTX* ctx, BYTE* output, size_t* olen); - WINPR_API void winpr_Cipher_Free(WINPR_CIPHER_CTX* ctx); - -#ifdef __cplusplus -} -#endif - -/** - * Key Generation - */ - -#ifdef __cplusplus -extern "C" -{ -#endif - - WINPR_API int winpr_Cipher_BytesToKey(int cipher, int md, const BYTE* salt, const BYTE* data, - int datal, int count, BYTE* key, BYTE* iv); - -#ifdef __cplusplus -} -#endif +#include +#include #endif /* WINPR_CRYPTO_H */ diff --git a/winpr/include/winpr/custom-crypto.h b/winpr/include/winpr/custom-crypto.h new file mode 100644 index 000000000..54f6165e6 --- /dev/null +++ b/winpr/include/winpr/custom-crypto.h @@ -0,0 +1,251 @@ +/** + * WinPR: Windows Portable Runtime + * Cryptography API (CryptoAPI) + * + * Copyright 2012 Marc-Andre Moreau + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WINPR_CUSTOM_CRYPTO_H +#define WINPR_CUSTOM_CRYPTO_H + +#include +#include + +#include + +/** + * Custom Crypto API Abstraction Layer + */ + +#define WINPR_MD4_DIGEST_LENGTH 16 +#define WINPR_MD5_DIGEST_LENGTH 16 +#define WINPR_SHA1_DIGEST_LENGTH 20 +#define WINPR_SHA224_DIGEST_LENGTH 28 +#define WINPR_SHA256_DIGEST_LENGTH 32 +#define WINPR_SHA384_DIGEST_LENGTH 48 +#define WINPR_SHA512_DIGEST_LENGTH 64 +#define WINPR_RIPEMD160_DIGEST_LENGTH 20 +#define WINPR_SHA3_224_DIGEST_LENGTH 28 +#define WINPR_SHA3_256_DIGEST_LENGTH 32 +#define WINPR_SHA3_384_DIGEST_LENGTH 48 +#define WINPR_SHA3_512_DIGEST_LENGTH 64 +#define WINPR_SHAKE128_DIGEST_LENGTH 16 +#define WINPR_SHAKE256_DIGEST_LENGTH 32 + +/** + * HMAC + */ +typedef enum +{ + WINPR_MD_NONE = 0, + WINPR_MD_MD2 = 1, + WINPR_MD_MD4 = 2, + WINPR_MD_MD5 = 3, + WINPR_MD_SHA1 = 4, + WINPR_MD_SHA224 = 5, + WINPR_MD_SHA256 = 6, + WINPR_MD_SHA384 = 7, + WINPR_MD_SHA512 = 8, + WINPR_MD_RIPEMD160 = 9, + WINPR_MD_SHA3_224 = 10, + WINPR_MD_SHA3_256 = 11, + WINPR_MD_SHA3_384 = 12, + WINPR_MD_SHA3_512 = 13, + WINPR_MD_SHAKE128 = 14, + WINPR_MD_SHAKE256 = 15 +} WINPR_MD_TYPE; + +typedef struct winpr_hmac_ctx_private_st WINPR_HMAC_CTX; + +#ifdef __cplusplus +extern "C" +{ +#endif + + WINPR_API WINPR_MD_TYPE winpr_md_type_from_string(const char* name); + WINPR_API const char* winpr_md_type_to_string(WINPR_MD_TYPE md); + + WINPR_API WINPR_HMAC_CTX* winpr_HMAC_New(void); + WINPR_API BOOL winpr_HMAC_Init(WINPR_HMAC_CTX* ctx, WINPR_MD_TYPE md, const BYTE* key, + size_t keylen); + WINPR_API BOOL winpr_HMAC_Update(WINPR_HMAC_CTX* ctx, const BYTE* input, size_t ilen); + WINPR_API BOOL winpr_HMAC_Final(WINPR_HMAC_CTX* ctx, BYTE* output, size_t ilen); + WINPR_API void winpr_HMAC_Free(WINPR_HMAC_CTX* ctx); + WINPR_API BOOL winpr_HMAC(WINPR_MD_TYPE md, const BYTE* key, size_t keylen, const BYTE* input, + size_t ilen, BYTE* output, size_t olen); + +#ifdef __cplusplus +} +#endif + +/** + * Generic Digest API + */ + +typedef struct winpr_digest_ctx_private_st WINPR_DIGEST_CTX; + +#ifdef __cplusplus +extern "C" +{ +#endif + + WINPR_API WINPR_DIGEST_CTX* winpr_Digest_New(void); + WINPR_API BOOL winpr_Digest_Init_Allow_FIPS(WINPR_DIGEST_CTX* ctx, WINPR_MD_TYPE md); + WINPR_API BOOL winpr_Digest_Init(WINPR_DIGEST_CTX* ctx, WINPR_MD_TYPE md); + WINPR_API BOOL winpr_Digest_Update(WINPR_DIGEST_CTX* ctx, const BYTE* input, size_t ilen); + WINPR_API BOOL winpr_Digest_Final(WINPR_DIGEST_CTX* ctx, BYTE* output, size_t ilen); + WINPR_API void winpr_Digest_Free(WINPR_DIGEST_CTX* ctx); + WINPR_API BOOL winpr_Digest_Allow_FIPS(WINPR_MD_TYPE md, const BYTE* input, size_t ilen, + BYTE* output, size_t olen); + WINPR_API BOOL winpr_Digest(WINPR_MD_TYPE md, const BYTE* input, size_t ilen, BYTE* output, + size_t olen); + +#ifdef __cplusplus +} +#endif + +/** + * Random Number Generation + */ + +#ifdef __cplusplus +extern "C" +{ +#endif + + WINPR_API int winpr_RAND(void* output, size_t len); + WINPR_API int winpr_RAND_pseudo(void* output, size_t len); + +#ifdef __cplusplus +} +#endif + +/** + * RC4 + */ + +typedef struct winpr_rc4_ctx_private_st WINPR_RC4_CTX; + +#ifdef __cplusplus +extern "C" +{ +#endif + + WINPR_API WINPR_RC4_CTX* winpr_RC4_New_Allow_FIPS(const BYTE* key, size_t keylen); + WINPR_API WINPR_RC4_CTX* winpr_RC4_New(const BYTE* key, size_t keylen); + WINPR_API BOOL winpr_RC4_Update(WINPR_RC4_CTX* ctx, size_t length, const BYTE* input, + BYTE* output); + WINPR_API void winpr_RC4_Free(WINPR_RC4_CTX* ctx); + +#ifdef __cplusplus +} +#endif + +/** + * Generic Cipher API + */ + +#define WINPR_AES_BLOCK_SIZE 16 + +/* cipher operation types */ +#define WINPR_ENCRYPT 0 +#define WINPR_DECRYPT 1 + +/* cipher types */ +#define WINPR_CIPHER_NONE 0 +#define WINPR_CIPHER_NULL 1 +#define WINPR_CIPHER_AES_128_ECB 2 +#define WINPR_CIPHER_AES_192_ECB 3 +#define WINPR_CIPHER_AES_256_ECB 4 +#define WINPR_CIPHER_AES_128_CBC 5 +#define WINPR_CIPHER_AES_192_CBC 6 +#define WINPR_CIPHER_AES_256_CBC 7 +#define WINPR_CIPHER_AES_128_CFB128 8 +#define WINPR_CIPHER_AES_192_CFB128 9 +#define WINPR_CIPHER_AES_256_CFB128 10 +#define WINPR_CIPHER_AES_128_CTR 11 +#define WINPR_CIPHER_AES_192_CTR 12 +#define WINPR_CIPHER_AES_256_CTR 13 +#define WINPR_CIPHER_AES_128_GCM 14 +#define WINPR_CIPHER_AES_192_GCM 15 +#define WINPR_CIPHER_AES_256_GCM 16 +#define WINPR_CIPHER_CAMELLIA_128_ECB 17 +#define WINPR_CIPHER_CAMELLIA_192_ECB 18 +#define WINPR_CIPHER_CAMELLIA_256_ECB 19 +#define WINPR_CIPHER_CAMELLIA_128_CBC 20 +#define WINPR_CIPHER_CAMELLIA_192_CBC 21 +#define WINPR_CIPHER_CAMELLIA_256_CBC 22 +#define WINPR_CIPHER_CAMELLIA_128_CFB128 23 +#define WINPR_CIPHER_CAMELLIA_192_CFB128 24 +#define WINPR_CIPHER_CAMELLIA_256_CFB128 25 +#define WINPR_CIPHER_CAMELLIA_128_CTR 26 +#define WINPR_CIPHER_CAMELLIA_192_CTR 27 +#define WINPR_CIPHER_CAMELLIA_256_CTR 28 +#define WINPR_CIPHER_CAMELLIA_128_GCM 29 +#define WINPR_CIPHER_CAMELLIA_192_GCM 30 +#define WINPR_CIPHER_CAMELLIA_256_GCM 31 +#define WINPR_CIPHER_DES_ECB 32 +#define WINPR_CIPHER_DES_CBC 33 +#define WINPR_CIPHER_DES_EDE_ECB 34 +#define WINPR_CIPHER_DES_EDE_CBC 35 +#define WINPR_CIPHER_DES_EDE3_ECB 36 +#define WINPR_CIPHER_DES_EDE3_CBC 37 +#define WINPR_CIPHER_BLOWFISH_ECB 38 +#define WINPR_CIPHER_BLOWFISH_CBC 39 +#define WINPR_CIPHER_BLOWFISH_CFB64 40 +#define WINPR_CIPHER_BLOWFISH_CTR 41 +#define WINPR_CIPHER_ARC4_128 42 +#define WINPR_CIPHER_AES_128_CCM 43 +#define WINPR_CIPHER_AES_192_CCM 44 +#define WINPR_CIPHER_AES_256_CCM 45 +#define WINPR_CIPHER_CAMELLIA_128_CCM 46 +#define WINPR_CIPHER_CAMELLIA_192_CCM 47 +#define WINPR_CIPHER_CAMELLIA_256_CCM 48 + +typedef struct winpr_cipher_ctx_private_st WINPR_CIPHER_CTX; + +#ifdef __cplusplus +extern "C" +{ +#endif + + WINPR_API WINPR_CIPHER_CTX* winpr_Cipher_New(int cipher, int op, const BYTE* key, + const BYTE* iv); + WINPR_API BOOL winpr_Cipher_Update(WINPR_CIPHER_CTX* ctx, const BYTE* input, size_t ilen, + BYTE* output, size_t* olen); + WINPR_API BOOL winpr_Cipher_Final(WINPR_CIPHER_CTX* ctx, BYTE* output, size_t* olen); + WINPR_API void winpr_Cipher_Free(WINPR_CIPHER_CTX* ctx); + +#ifdef __cplusplus +} +#endif + +/** + * Key Generation + */ + +#ifdef __cplusplus +extern "C" +{ +#endif + + WINPR_API int winpr_Cipher_BytesToKey(int cipher, int md, const BYTE* salt, const BYTE* data, + int datal, int count, BYTE* key, BYTE* iv); + +#ifdef __cplusplus +} +#endif + +#endif /* WINPR_CUSTOM_CRYPTO_H */ diff --git a/winpr/include/winpr/schannel.h b/winpr/include/winpr/schannel.h index 67564f7ca..e4d5fabd3 100644 --- a/winpr/include/winpr/schannel.h +++ b/winpr/include/winpr/schannel.h @@ -22,7 +22,6 @@ #include #include -#include #if defined(_WIN32) && !defined(_UWP) diff --git a/winpr/libwinpr/crypto/crypto.c b/winpr/libwinpr/crypto/crypto.c index 15bb0f3a5..e3757c8f3 100644 --- a/winpr/libwinpr/crypto/crypto.c +++ b/winpr/libwinpr/crypto/crypto.c @@ -20,7 +20,6 @@ #include #include -#include /** * CryptAcquireCertificatePrivateKey diff --git a/winpr/libwinpr/crypto/test/TestCryptoCertEnumCertificatesInStore.c b/winpr/libwinpr/crypto/test/TestCryptoCertEnumCertificatesInStore.c index 73849e3fb..071fe6fb7 100644 --- a/winpr/libwinpr/crypto/test/TestCryptoCertEnumCertificatesInStore.c +++ b/winpr/libwinpr/crypto/test/TestCryptoCertEnumCertificatesInStore.c @@ -3,7 +3,6 @@ #include #include #include -#include #ifdef _WIN32 //#define WITH_CRYPTUI 1 diff --git a/winpr/libwinpr/crypto/test/TestCryptoProtectMemory.c b/winpr/libwinpr/crypto/test/TestCryptoProtectMemory.c index 9ee0f0522..fea9f5f66 100644 --- a/winpr/libwinpr/crypto/test/TestCryptoProtectMemory.c +++ b/winpr/libwinpr/crypto/test/TestCryptoProtectMemory.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include diff --git a/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c b/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c index f8979f849..33f764d40 100644 --- a/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c +++ b/winpr/libwinpr/ncrypt/ncrypt_pkcs11.c @@ -25,7 +25,6 @@ #include #include #include -#include #include "../log.h" #include "ncrypt.h" diff --git a/winpr/libwinpr/sspi/Schannel/schannel.c b/winpr/libwinpr/sspi/Schannel/schannel.c index 1c41a357b..3f2cb99cf 100644 --- a/winpr/libwinpr/sspi/Schannel/schannel.c +++ b/winpr/libwinpr/sspi/Schannel/schannel.c @@ -21,7 +21,6 @@ #include #include -#include #include "schannel.h"