mirror of
https://github.com/xcat2/confluent.git
synced 2024-11-22 01:22:00 +00:00
Combine genpasshmac with clortho
This permits saving on addons size by using the same binary for both networked api grant and hmac api grant.
This commit is contained in:
parent
6a30afa31e
commit
61d037ae31
@ -2,7 +2,7 @@ CC := gcc
|
||||
CFLAGS := -Os
|
||||
TARGETS := copernicus autocons start_root confluent_imginfo
|
||||
|
||||
all: $(TARGETS) clortho urlmount genpasshmac
|
||||
all: $(TARGETS) clortho urlmount
|
||||
|
||||
urlmount: urlmount.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -D_FILE_OFFSET_BITS=64 -lcurl -lm -lfuse -lpthread
|
||||
@ -12,10 +12,6 @@ clortho: clortho.c sha-256.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -lcrypt
|
||||
strip -s $@
|
||||
|
||||
genpasshmac: genpasshmac.c sha-256.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -lcrypt
|
||||
strip -s $@
|
||||
|
||||
$(TARGETS): % : %.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
strip -s $@
|
||||
|
@ -39,6 +39,42 @@ unsigned char* genpasswd(int len) {
|
||||
|
||||
}
|
||||
|
||||
int getpasshmac(int argc, char* argv[]) {
|
||||
FILE *outfile;
|
||||
uint8_t *passwd;
|
||||
uint8_t *buffer;
|
||||
uint8_t *tmps;
|
||||
uint8_t *cryptpass;
|
||||
uint8_t hmac[32];
|
||||
uint8_t hmackey[64];
|
||||
int hmackeysize;
|
||||
if (argc < 5) {
|
||||
fprintf(stderr, "Usage: %s passfile cryptfile hmacfile hmackey\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
outfile = fopen(argv[4], "r");
|
||||
hmackeysize = fread(hmackey, 1, 64, outfile);
|
||||
fclose(outfile);
|
||||
passwd = genpasswd(48);
|
||||
outfile = fopen(argv[1], "w");
|
||||
buffer = malloc(20);
|
||||
tmps = genpasswd(16);
|
||||
memcpy(buffer, "$5$", 3);
|
||||
memcpy(buffer + 3, tmps, 16);
|
||||
buffer[19] = 0;
|
||||
fwrite(passwd, 1, 48, outfile);
|
||||
fclose(outfile);
|
||||
cryptpass = crypt(passwd, buffer);
|
||||
outfile = fopen(argv[2], "w");
|
||||
fwrite(cryptpass, 1, strlen(cryptpass), outfile);
|
||||
fclose(outfile);
|
||||
hmac_sha256(hmac, cryptpass, strlen(cryptpass), hmackey, hmackeysize);
|
||||
outfile = fopen(argv[3], "w");
|
||||
fwrite(hmac, 1, 32, outfile);
|
||||
fclose(outfile);
|
||||
free(passwd);
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
int sock, ret;
|
||||
@ -64,6 +100,9 @@ int main(int argc, char* argv[]) {
|
||||
memset(&net6bind, 0, sizeof(struct sockaddr_in6));
|
||||
memset(&buffer, 0, MAXPACKET);
|
||||
memset(&timeout, 0, sizeof(struct timeval));
|
||||
if (strstr(argv[0], "genpasshmac") != NULL) {
|
||||
return getpasshmac(argc, argv);
|
||||
}
|
||||
timeout.tv_sec = 10;
|
||||
net4bind.sin_port = htons(302);
|
||||
net4bind.sin_family = AF_INET;
|
||||
|
Loading…
Reference in New Issue
Block a user