Compare commits
2 commits
dcc126300c
...
07c0aec7d8
Author | SHA1 | Date | |
---|---|---|---|
07c0aec7d8 | |||
1ee0b7e2a3 |
1 changed files with 30 additions and 14 deletions
|
@ -27,6 +27,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/pem.h>
|
||||
|
@ -35,6 +36,8 @@
|
|||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
|
||||
RSA *rsa = NULL;
|
||||
|
||||
void nodumps()
|
||||
{
|
||||
struct rlimit r;
|
||||
|
@ -42,31 +45,37 @@ void nodumps()
|
|||
setrlimit(RLIMIT_CORE, &r);
|
||||
}
|
||||
|
||||
void byebye(int sig)
|
||||
{
|
||||
memset(rsa, 0, sizeof rsa);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
static int called_passcb = 0;
|
||||
static int pass_cb(char *buf, int size, int rwflag, void *u)
|
||||
{
|
||||
int len;
|
||||
char *tmp;
|
||||
char *tmp;
|
||||
|
||||
called_passcb++;
|
||||
|
||||
if(!isatty(fileno(stdin)))
|
||||
if(!isatty(fileno(stdin)))
|
||||
{
|
||||
if(fgets(buf, size, stdin) == NULL)
|
||||
return 0;
|
||||
if(fgets(buf, size, stdin) == NULL)
|
||||
return 0;
|
||||
tmp = strpbrk(buf, "\r\n");
|
||||
if(tmp != NULL)
|
||||
*tmp = '\0';
|
||||
return strlen(buf);
|
||||
}
|
||||
}
|
||||
tmp = getpass("Enter passphrase for private key: ");
|
||||
len = strlen(tmp);
|
||||
if (len <= 0)
|
||||
len = strlen(tmp);
|
||||
if (len <= 0)
|
||||
return 0;
|
||||
if (len > size)
|
||||
len = size;
|
||||
memcpy(buf, tmp, len);
|
||||
return len;
|
||||
if (len > size)
|
||||
len = size;
|
||||
memcpy(buf, tmp, len);
|
||||
return len;
|
||||
}
|
||||
|
||||
|
||||
|
@ -210,7 +219,7 @@ read_challenge(FILE *f)
|
|||
}
|
||||
}
|
||||
|
||||
fgets((char *)buf, sizeof(buf), stdin);
|
||||
fgets((char *)buf, sizeof(buf), stdin);
|
||||
|
||||
tmp = strpbrk((char *)buf, "\r\n");
|
||||
if(tmp != NULL)
|
||||
|
@ -224,10 +233,17 @@ read_challenge(FILE *f)
|
|||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
struct sigaction act;
|
||||
|
||||
act.sa_handler = byebye;
|
||||
|
||||
sigaction(SIGHUP, &act, 0);
|
||||
sigaction(SIGINT, &act, 0);
|
||||
sigaction(SIGTERM, &act, 0);
|
||||
|
||||
nodumps();
|
||||
|
||||
FILE *kfile;
|
||||
RSA *rsa = NULL;
|
||||
SHA_CTX ctx;
|
||||
unsigned char *ptr;
|
||||
unsigned char *ndata, ddata[512];
|
||||
|
@ -283,5 +299,5 @@ main(int argc, char **argv)
|
|||
puts((char *)ndata);
|
||||
fflush(NULL);
|
||||
}
|
||||
return 0;
|
||||
byebye(0);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue