Compare commits

..

No commits in common. "07c0aec7d8c535ed50c5c2572b3ba52b9b32d85a" and "dcc126300c9e09786357c443e097ee56e579559a" have entirely different histories.

View file

@ -27,7 +27,6 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <signal.h>
#include <openssl/err.h> #include <openssl/err.h>
#include <openssl/rsa.h> #include <openssl/rsa.h>
#include <openssl/pem.h> #include <openssl/pem.h>
@ -36,8 +35,6 @@
#include <sys/time.h> #include <sys/time.h>
#include <sys/resource.h> #include <sys/resource.h>
RSA *rsa = NULL;
void nodumps() void nodumps()
{ {
struct rlimit r; struct rlimit r;
@ -45,37 +42,31 @@ void nodumps()
setrlimit(RLIMIT_CORE, &r); setrlimit(RLIMIT_CORE, &r);
} }
void byebye(int sig)
{
memset(rsa, 0, sizeof rsa);
exit(0);
}
static int called_passcb = 0; static int called_passcb = 0;
static int pass_cb(char *buf, int size, int rwflag, void *u) static int pass_cb(char *buf, int size, int rwflag, void *u)
{ {
int len; int len;
char *tmp; char *tmp;
called_passcb++; called_passcb++;
if(!isatty(fileno(stdin))) if(!isatty(fileno(stdin)))
{ {
if(fgets(buf, size, stdin) == NULL) if(fgets(buf, size, stdin) == NULL)
return 0; return 0;
tmp = strpbrk(buf, "\r\n"); tmp = strpbrk(buf, "\r\n");
if(tmp != NULL) if(tmp != NULL)
*tmp = '\0'; *tmp = '\0';
return strlen(buf); return strlen(buf);
} }
tmp = getpass("Enter passphrase for private key: "); tmp = getpass("Enter passphrase for private key: ");
len = strlen(tmp); len = strlen(tmp);
if (len <= 0) if (len <= 0)
return 0; return 0;
if (len > size) if (len > size)
len = size; len = size;
memcpy(buf, tmp, len); memcpy(buf, tmp, len);
return len; return len;
} }
@ -219,7 +210,7 @@ read_challenge(FILE *f)
} }
} }
fgets((char *)buf, sizeof(buf), stdin); fgets((char *)buf, sizeof(buf), stdin);
tmp = strpbrk((char *)buf, "\r\n"); tmp = strpbrk((char *)buf, "\r\n");
if(tmp != NULL) if(tmp != NULL)
@ -233,17 +224,10 @@ read_challenge(FILE *f)
int int
main(int argc, char **argv) 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(); nodumps();
FILE *kfile; FILE *kfile;
RSA *rsa = NULL;
SHA_CTX ctx; SHA_CTX ctx;
unsigned char *ptr; unsigned char *ptr;
unsigned char *ndata, ddata[512]; unsigned char *ndata, ddata[512];
@ -299,5 +283,5 @@ main(int argc, char **argv)
puts((char *)ndata); puts((char *)ndata);
fflush(NULL); fflush(NULL);
} }
byebye(0); return 0;
} }