From patchwork Tue Apr 3 09:44:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steve Lhomme X-Patchwork-Id: 8301 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp3479060jad; Tue, 3 Apr 2018 02:44:46 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/HhsmHNugBuRxsk5QXWsxozQM0Rih3AMQMrWOSixrOvZBOVBs9hkR62c5nrn819Ul0LIqX X-Received: by 10.28.72.7 with SMTP id v7mr3186165wma.155.1522748686433; Tue, 03 Apr 2018 02:44:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522748686; cv=none; d=google.com; s=arc-20160816; b=JxCWOhhqbdoF0ynrZfZK79Nsm9j0Ncgld9p4FV3dxgiiyhuc9n6g5VnpSmByV6lvGA im83Mz8ZmeOOv2xEjwUwBTlBXdSulEilO5YPXgollPJgkJmwGfo+FD/H7sNycy0fCD0F xCzQ8eNdqK15nOMvdaun/GiKR0DwQIJeOtHX94pEyM3QcgVMX8P42C4jNlTtihudCtpV qSoI4D8b6VY6Ru4rvemP/sWmtyho4v/eOySTeStkB2sl29X4eRxRSY2Un38cpsv64AWe T3np52EFLl32906glMxOAeP9oeH4uq7pLfD5vPiiFnBWHBwTfr7PALOUai3w1va+yNhm c78Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :dkim-signature:delivered-to:arc-authentication-results; bh=0Uuozm6tfe2r2ZdF6Bxz3qfFJYvfjLJPaK7tv3EAAl4=; b=KyLDqx6nh3+7rVZPrRCehZ7kudFJ4HKc5jgevuUYUjvdEScPDfQ6wrOQLnCqS26eED WRBJWS9vjvAM95gX5ojnjR4QhJAja9m3IIWHNXWTAbF90dO1/Jw6DlPTw+PZyBu4k57h a4Dvecu/uUdiHiVWFyaeNYH8qdYM3kc+Oe73K2ab4vYi4sPP/HlW2oDGl0YvA/s5syWk GDBfn+2pwSFZeAHCEL/uVKJj3P9HUUqHzUfUWTiL5SuGIvCy/w5QaMxXfFfAAyM2xyoX Zl7HS780RscUqVG3XsOnFq88bDH1Te4UGXZJvl7KAUgP5Sd0DfHocAYHg/RgQzYXoCSM AqdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@ycbcr.xyz header.s=fm1 header.b=B/nr973h; dkim=neutral (body hash did not verify) header.i=@messagingengine.com header.s=fm2 header.b=AzgDBPh6; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o18si1762503wrg.380.2018.04.03.02.44.46; Tue, 03 Apr 2018 02:44:46 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@ycbcr.xyz header.s=fm1 header.b=B/nr973h; dkim=neutral (body hash did not verify) header.i=@messagingengine.com header.s=fm2 header.b=AzgDBPh6; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 22D2A68049B; Tue, 3 Apr 2018 12:44:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2EA12680161 for ; Tue, 3 Apr 2018 12:44:16 +0300 (EEST) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id ECE0A20B3B for ; Tue, 3 Apr 2018 05:44:33 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Tue, 03 Apr 2018 05:44:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ycbcr.xyz; h= date:from:message-id:subject:to:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=avTqQCL5ZuHf4Ehdo/DnooVH+qlmNaN35wtmkmaGQ XM=; b=B/nr973hC4O0Ft5lHAY8/bTJolQqQbEQxNTZizURM3Lc/l3n9UBNNl0Tf SquM+Hd+m36DU4kRgrsUl4lfjzJxMubNw5nd+z0OyQjBnBIMJgNHZl3w9s1hyCMC ia1CJNaXOpa61H92kI7dClM/romF7lEiy4T46FC0odYsg/xmqyXe9atM2J2CHI5f CNYsrfthqiGniYYSoDc2sJAPfeL4r8nFfAVb/Yxe+KSSzIfhOqw5SS2o2EnYhHHu b8ss/jxcUXWZ3+CcCb129eN/2dTspr3F0MzcBYh+0BplMbWTyVwimueyKm8DNuOc wdo99KhhXkD4FSl52CONYBuyisPfg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=date:from:message-id:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=avTqQCL5ZuHf4Ehdo /DnooVH+qlmNaN35wtmkmaGQXM=; b=AzgDBPh6KFTMlqDdxAxbApUn283vg7I6N xcn23eMD9hBeMnTfN9c0t9jR2lf/IoCmN0H7RMdITFWJYg3ACvE+eX9z0i1pEJFb 4/zY01+jwmIsgr2krdm9nU5hb8jpKj8/p5ULmDmXIQjYdhU5KxI2XCVmqYB2IDgQ vd4yS96A3YIA5JHrcGnYKPZlLZL4k8DveiG1ed/boxGWhxoLrox1t4r3eEQNKOFI mxRPt1X+UXZvHUik7azlYflrDX/yGzEPQLm9XyyjTk/RMH5w6KuI3wWu4+x7s6ZM UqrjlV4DMiM4d/yuixAT4QlxNfLRl9iYxM9Q62qbevcIYoLPQgF7g== X-ME-Sender: Received: from localhost.localdomain (lfbn-1-6134-202.w90-110.abo.wanadoo.fr [90.110.9.202]) by mail.messagingengine.com (Postfix) with ESMTPA id 75213E4472 for ; Tue, 3 Apr 2018 05:44:33 -0400 (EDT) From: Steve Lhomme To: ffmpeg-devel@ffmpeg.org Date: Tue, 3 Apr 2018 11:44:25 +0200 Message-Id: <20180403094425.23628-1-robux4@ycbcr.xyz> X-Mailer: git-send-email 2.16.2 Subject: [FFmpeg-devel] [PATCH] use bcrypt instead of the old wincrypt API X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Remove the wincrypt API calls since we don't support XP anymore and bcrypt is available since Vista, even on Windows Store builds. --- configure | 6 +++--- libavutil/random_seed.c | 19 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/configure b/configure index 08d6fc5983..9a85ad59ad 100755 --- a/configure +++ b/configure @@ -2141,10 +2141,10 @@ SYSTEM_FUNCS=" " SYSTEM_LIBRARIES=" + bcrypt vaapi_drm vaapi_x11 vdpau_x11 - wincrypt " TOOLCHAIN_FEATURES=" @@ -3443,7 +3443,7 @@ avformat_deps="avcodec avutil" avformat_suggest="libm network zlib" avresample_deps="avutil" avresample_suggest="libm" -avutil_suggest="clock_gettime ffnvcodec libm libdrm libmfx opencl user32 vaapi videotoolbox corefoundation corevideo coremedia wincrypt" +avutil_suggest="clock_gettime ffnvcodec libm libdrm libmfx opencl user32 vaapi videotoolbox corefoundation corevideo coremedia bcrypt" postproc_deps="avutil gpl" postproc_suggest="libm" swresample_deps="avutil" @@ -5823,9 +5823,9 @@ check_header asm/types.h check_builtin stdatomic stdatomic.h "atomic_int foo, bar = ATOMIC_VAR_INIT(-1); atomic_store(&foo, 0)" check_lib advapi32 "windows.h" RegCloseKey -ladvapi32 +check_lib bcrypt "windows.h bcrypt.h" BCryptGenRandom -lbcrypt check_lib ole32 "windows.h" CoTaskMemFree -lole32 check_lib shell32 "windows.h shellapi.h" CommandLineToArgvW -lshell32 -check_lib wincrypt "windows.h wincrypt.h" CryptGenRandom -ladvapi32 check_lib psapi "windows.h psapi.h" GetProcessMemoryInfo -lpsapi check_lib android android/native_window.h ANativeWindow_acquire -landroid diff --git a/libavutil/random_seed.c b/libavutil/random_seed.c index 881c23c8c8..70dc509d2f 100644 --- a/libavutil/random_seed.c +++ b/libavutil/random_seed.c @@ -26,9 +26,9 @@ #if HAVE_IO_H #include #endif -#if HAVE_WINCRYPT +#if HAVE_BCRYPT #include -#include +#include #endif #include #include @@ -121,13 +121,14 @@ uint32_t av_get_random_seed(void) { uint32_t seed; -#if HAVE_WINCRYPT - HCRYPTPROV provider; - if (CryptAcquireContext(&provider, NULL, NULL, PROV_RSA_FULL, - CRYPT_VERIFYCONTEXT | CRYPT_SILENT)) { - BOOL ret = CryptGenRandom(provider, sizeof(seed), (PBYTE) &seed); - CryptReleaseContext(provider, 0); - if (ret) +#if HAVE_BCRYPT + BCRYPT_ALG_HANDLE algo_handle; + NTSTATUS ret = BCryptOpenAlgorithmProvider(&algo_handle, BCRYPT_RNG_ALGORITHM, + MS_PRIMITIVE_PROVIDER, 0); + if (BCRYPT_SUCCESS(ret)) { + NTSTATUS ret = BCryptGenRandom(algo_handle, (UCHAR*)&seed, sizeof(seed), 0); + BCryptCloseAlgorithmProvider(algo_handle, 0); + if (BCRYPT_SUCCESS(ret)) return seed; } #endif