blob: 9d8aaca7f9873165a3d0c9ce321e8194c6ba4ae6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
/* WIN32 getpassphrase */
#include <config.h>
#include <stdio.h>
char *
getpassphrase(const char *prompt) {
static char buf[128];
HANDLE h;
DWORD cc, mode;
int cnt;
h = GetStdHandle(STD_INPUT_HANDLE);
fputs(prompt, stderr);
fflush(stderr);
fflush(stdout);
FlushConsoleInputBuffer(h);
GetConsoleMode(h, &mode);
SetConsoleMode(h, ENABLE_PROCESSED_INPUT);
for (cnt = 0; cnt < sizeof(buf) - 1; cnt++)
{
ReadFile(h, buf + cnt, 1, &cc, NULL);
if (buf[cnt] == '\r')
break;
fputc('*', stdout);
fflush(stderr);
fflush(stdout);
}
SetConsoleMode(h, mode);
buf[cnt] = '\0';
fputs("\n", stderr);
return (buf);
}
|