⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winrand.c

📁 mediastreamer2是开源的网络传输媒体流的库
💻 C
字号:
/* apps/winrand.c *//* ==================================================================== * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer.  * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. All advertising materials mentioning features or use of this *    software must display the following acknowledgment: *    "This product includes software developed by the OpenSSL Project *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)" * * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to *    endorse or promote products derived from this software without *    prior written permission. For written permission, please contact *    openssl-core@openssl.org. * * 5. Products derived from this software may not be called "OpenSSL" *    nor may "OpenSSL" appear in their names without prior written *    permission of the OpenSSL Project. * * 6. Redistributions of any form whatsoever must retain the following *    acknowledgment: *    "This product includes software developed by the OpenSSL Project *    for use in the OpenSSL Toolkit (http://www.openssl.org/)" * * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This product includes cryptographic software written by Eric Young * (eay@cryptsoft.com).  This product includes software written by Tim * Hudson (tjh@cryptsoft.com). * *//* Usage: winrand [filename] * * Collects entropy from mouse movements and other events and writes * random data to filename or .rnd */#include <windows.h>#include <openssl/opensslv.h>#include <openssl/rand.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);const char *filename;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,        PSTR cmdline, int iCmdShow)	{	static char appname[] = "OpenSSL";	HWND hwnd;	MSG msg;	WNDCLASSEX wndclass;        char buffer[200];        if (cmdline[0] == '\0')                filename = RAND_file_name(buffer, sizeof buffer);        else                filename = cmdline;        RAND_load_file(filename, -1);	wndclass.cbSize = sizeof(wndclass);	wndclass.style = CS_HREDRAW | CS_VREDRAW;	wndclass.lpfnWndProc = WndProc;	wndclass.cbClsExtra = 0;	wndclass.cbWndExtra = 0;	wndclass.hInstance = hInstance;	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);	wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);	wndclass.lpszMenuName = NULL;        wndclass.lpszClassName = appname;	wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);	RegisterClassEx(&wndclass);        hwnd = CreateWindow(appname, OPENSSL_VERSION_TEXT,		WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,		CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);	ShowWindow(hwnd, iCmdShow);	UpdateWindow(hwnd);	while (GetMessage(&msg, NULL, 0, 0))		{		TranslateMessage(&msg);		DispatchMessage(&msg);		}	return msg.wParam;	}LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)	{        HDC hdc;	PAINTSTRUCT ps;        RECT rect;        static int seeded = 0;	switch (iMsg)		{	case WM_PAINT:		hdc = BeginPaint(hwnd, &ps);		GetClientRect(hwnd, &rect);                DrawText(hdc, "Seeding the PRNG. Please move the mouse!", -1,			&rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);		EndPaint(hwnd, &ps);		return 0;		        case WM_DESTROY:                PostQuitMessage(0);                return 0;                }        if (RAND_event(iMsg, wParam, lParam) == 1 && seeded == 0)                {                seeded = 1;                if (RAND_write_file(filename) <= 0)                        MessageBox(hwnd, "Couldn't write random file!",				"OpenSSL", MB_OK | MB_ICONERROR);                PostQuitMessage(0);                }	return DefWindowProc(hwnd, iMsg, wParam, lParam);	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -