Ver código fonte

Handle view only password in vncpasswd filter mode

tags/v1.8.90
Pierre Ossman 6 anos atrás
pai
commit
e58fcb99b0
2 arquivos alterados com 18 adições e 5 exclusões
  1. 15
    5
      unix/vncpasswd/vncpasswd.cxx
  2. 3
    0
      unix/vncpasswd/vncpasswd.man

+ 15
- 5
unix/vncpasswd/vncpasswd.cxx Ver arquivo

@@ -67,18 +67,28 @@ static char* getpassword(const char* prompt) {
return 0;
}

// Reads password from stdin and prints encrypted password to stdout.
// Reads passwords from stdin and prints encrypted passwords to stdout.
static int encrypt_pipe() {
char *result = getpassword(NULL);
if (result) {
int i;

// We support a maximum of two passwords right now
for (i = 0;i < 2;i++) {
char *result = getpassword(NULL);
if (!result)
break;

ObfuscatedPasswd obfuscated(result);
if (fwrite(obfuscated.buf, obfuscated.length, 1, stdout) != 1) {
fprintf(stderr,"Writing to stdout failed\n");
return 1;
}
return 0;
}
else return 1;

// Did we fail to produce even one password?
if (i == 0)
return 1;

return 0;
}

static ObfuscatedPasswd* readpassword() {

+ 3
- 0
unix/vncpasswd/vncpasswd.man Ver arquivo

@@ -32,6 +32,9 @@ Filter mode. Read a plain-text password from stdin and write an encrypted
version to stdout. Note that in filter mode, short or even empty passwords
will be silently accepted.

A view-only password must be separated from the normal password by a newline
character.


.SH FILES
.TP

Carregando…
Cancelar
Salvar