Build server password now obfuscated in config file. Obfuscation is per-machine so passing the file to someone else won't reveal the password.
This commit is contained in:
parent
7d116c6706
commit
6ac1f11291
4 changed files with 60 additions and 2 deletions
|
@ -39,6 +39,7 @@
|
|||
|
||||
char *utilCreateString(char *format, ...);
|
||||
char *utilCreateStringVArgs(char *format, va_list args);
|
||||
char *utilDeobfuscateASCII(char *obfuscated);
|
||||
void utilEnsureBufferSize(unsigned char **buffer, int *length, int wanted);
|
||||
gboolean utilFileExists(char *filename);
|
||||
gboolean utilFileOpen(WindowDataT *self, char *extension, char *what);
|
||||
|
@ -46,6 +47,7 @@ gboolean utilFileSaveAs(WindowDataT *self, char *extension, char *what);
|
|||
WindowDataT *utilGetWindowData(GtkWidget *window);
|
||||
gboolean utilGetWidgetsFromMemory(char *resource, char *name[], GtkWidget **widgets[], gpointer userData);
|
||||
gboolean utilMkDirP(const char *dir, const mode_t mode);
|
||||
char *utilObfuscateASCII(char *clearText);
|
||||
gboolean utilQuestionDialog(GtkWidget *parent, char *title, char *question);
|
||||
void utilSetDirty(WindowDataT *self, gboolean dirty);
|
||||
void utilWindowRegister(gpointer windowData);
|
||||
|
|
|
@ -185,7 +185,7 @@ static void loadConfig(ProjectDataT *self) {
|
|||
|
||||
case 6: // Password
|
||||
DEL(self->buildPassword);
|
||||
self->buildPassword = strdup(line);
|
||||
self->buildPassword = utilDeobfuscateASCII(line);
|
||||
break;
|
||||
|
||||
default: // Oops
|
||||
|
@ -564,7 +564,9 @@ static void saveConfig(ProjectDataT *self) {
|
|||
fprintf(out, "%d\n", self->buildHTTPPort);
|
||||
fprintf(out, "%d\n", self->buildSSHPort);
|
||||
fprintf(out, "%s\n", self->buildUser);
|
||||
fprintf(out, "%s\n", self->buildPassword); //***TODO*** This is hardly secure.
|
||||
temp = utilObfuscateASCII(self->buildPassword);
|
||||
fprintf(out, "%s\n", temp);
|
||||
DEL(temp);
|
||||
fclose(out);
|
||||
} else {
|
||||
//***TODO*** Something bad happened.
|
||||
|
|
54
src/utils.c
54
src/utils.c
|
@ -70,6 +70,33 @@ char *utilCreateStringVArgs(char *format, va_list args) {
|
|||
}
|
||||
|
||||
|
||||
char *utilDeobfuscateASCII(char *obfuscated) {
|
||||
char *deobfuscated = NULL;
|
||||
char *hostname;
|
||||
int i;
|
||||
int j;
|
||||
int c;
|
||||
|
||||
// Valid ASCII 32 - 126 (94 chars)
|
||||
|
||||
hostname = strdup(g_get_host_name());
|
||||
|
||||
// Decrypt.
|
||||
j = 0;
|
||||
deobfuscated = (char *)malloc((strlen(obfuscated) + 1) * sizeof(char));
|
||||
for (i=0; i<strlen(obfuscated); i++) {
|
||||
c = obfuscated[i] - hostname[j] - 32;
|
||||
while (c < 0) c += 94;
|
||||
deobfuscated[i] = c + 32;
|
||||
j++;
|
||||
if (j >= strlen(hostname)) j = 0;
|
||||
}
|
||||
deobfuscated[i] = 0;
|
||||
|
||||
return deobfuscated;
|
||||
}
|
||||
|
||||
|
||||
void utilEnsureBufferSize(unsigned char **buffer, int *length, int wanted) {
|
||||
unsigned char *temp = NULL;
|
||||
|
||||
|
@ -268,6 +295,33 @@ gboolean utilMkDirP(const char *dir, const mode_t mode) {
|
|||
}
|
||||
|
||||
|
||||
char *utilObfuscateASCII(char *clearText) {
|
||||
char *obfuscated = NULL;
|
||||
char *hostname;
|
||||
int i;
|
||||
int j;
|
||||
int c;
|
||||
|
||||
// Valid ASCII 32 - 126 (94 chars)
|
||||
|
||||
hostname = strdup(g_get_host_name());
|
||||
|
||||
// Obfuscate.
|
||||
j = 0;
|
||||
obfuscated = (char *)malloc((strlen(clearText) + 1) * sizeof(char));
|
||||
for (i=0; i<strlen(clearText); i++) {
|
||||
c = clearText[i] + hostname[j] - 32;
|
||||
while (c > 94) c -= 94;
|
||||
obfuscated[i] = c + 32;
|
||||
j++;
|
||||
if (j >= strlen(hostname)) j = 0;
|
||||
}
|
||||
obfuscated[i] = 0;
|
||||
|
||||
return obfuscated;
|
||||
}
|
||||
|
||||
|
||||
gboolean utilQuestionDialog(GtkWidget *parent, char *title, char *question) {
|
||||
GtkWidget *dialog;
|
||||
int response;
|
||||
|
|
Loading…
Add table
Reference in a new issue