summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/crypto/arc4random_win.h
diff options
context:
space:
mode:
authorbeck <>2016-09-03 11:33:43 +0000
committerbeck <>2016-09-03 11:33:43 +0000
commit839327196dbc0dd6ca80811d25a0b2bf18060cb7 (patch)
treebda3f96ee18135da341fa9b72de3608609a4f2b7 /src/lib/libcrypto/crypto/arc4random_win.h
parent68562b91f88d1a8511c997984c90fcdf0e29fc1f (diff)
downloadopenbsd-839327196dbc0dd6ca80811d25a0b2bf18060cb7.tar.gz
openbsd-839327196dbc0dd6ca80811d25a0b2bf18060cb7.tar.bz2
openbsd-839327196dbc0dd6ca80811d25a0b2bf18060cb7.zip
Remove the libcrypto/crypto directory
Diffstat (limited to 'src/lib/libcrypto/crypto/arc4random_win.h')
-rw-r--r--src/lib/libcrypto/crypto/arc4random_win.h78
1 files changed, 0 insertions, 78 deletions
diff --git a/src/lib/libcrypto/crypto/arc4random_win.h b/src/lib/libcrypto/crypto/arc4random_win.h
deleted file mode 100644
index deec8a1efe..0000000000
--- a/src/lib/libcrypto/crypto/arc4random_win.h
+++ /dev/null
@@ -1,78 +0,0 @@
1/* $OpenBSD: arc4random_win.h,v 1.6 2016/06/30 12:17:29 bcook Exp $ */
2
3/*
4 * Copyright (c) 1996, David Mazieres <dm@uun.org>
5 * Copyright (c) 2008, Damien Miller <djm@openbsd.org>
6 * Copyright (c) 2013, Markus Friedl <markus@openbsd.org>
7 * Copyright (c) 2014, Theo de Raadt <deraadt@openbsd.org>
8 *
9 * Permission to use, copy, modify, and distribute this software for any
10 * purpose with or without fee is hereby granted, provided that the above
11 * copyright notice and this permission notice appear in all copies.
12 *
13 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
14 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
16 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
18 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
19 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * Stub functions for portability.
24 */
25
26#include <windows.h>
27
28static volatile HANDLE arc4random_mtx = NULL;
29
30/*
31 * Initialize the mutex on the first lock attempt. On collision, each thread
32 * will attempt to allocate a mutex and compare-and-swap it into place as the
33 * global mutex. On failure to swap in the global mutex, the mutex is closed.
34 */
35#define _ARC4_LOCK() { \
36 if (!arc4random_mtx) { \
37 HANDLE p = CreateMutex(NULL, FALSE, NULL); \
38 if (InterlockedCompareExchangePointer((void **)&arc4random_mtx, (void *)p, NULL)) \
39 CloseHandle(p); \
40 } \
41 WaitForSingleObject(arc4random_mtx, INFINITE); \
42} \
43
44#define _ARC4_UNLOCK() ReleaseMutex(arc4random_mtx)
45
46static inline void
47_getentropy_fail(void)
48{
49 TerminateProcess(GetCurrentProcess(), 0);
50}
51
52static inline int
53_rs_allocate(struct _rs **rsp, struct _rsx **rsxp)
54{
55 *rsp = VirtualAlloc(NULL, sizeof(**rsp),
56 MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
57 if (*rsp == NULL)
58 return (-1);
59
60 *rsxp = VirtualAlloc(NULL, sizeof(**rsxp),
61 MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
62 if (*rsxp == NULL) {
63 VirtualFree(*rsp, 0, MEM_RELEASE);
64 *rsp = NULL;
65 return (-1);
66 }
67 return (0);
68}
69
70static inline void
71_rs_forkhandler(void)
72{
73}
74
75static inline void
76_rs_forkdetect(void)
77{
78}