Changeset: 4206ee19db39 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4206ee19db39
Modified Files:
        gdk/gdk_utils.c
        monetdb5/mal/mal_embedded.c
Branch: default
Log Message:

add vault initilisation


diffs (57 lines):

diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -1247,6 +1247,7 @@ GDKunlockHome(int farmid)
                BBPfarms[farmid].lock_file = NULL;
                GDKfree(gdklockpath);
        }
+       BBPfarms[farmid].dirname = NULL;
 }
 
 /*
diff --git a/monetdb5/mal/mal_embedded.c b/monetdb5/mal/mal_embedded.c
--- a/monetdb5/mal/mal_embedded.c
+++ b/monetdb5/mal/mal_embedded.c
@@ -48,6 +48,42 @@ malEmbeddedBoot(int workerlimit, int mem
        if( embeddedinitialized )
                return MAL_SUCCEED;
 
+       {
+               /* unlock the vault, first see if we can find the file which
+                * holds the secret */
+               char secret[1024];
+               char *secretp = secret;
+               FILE *secretf;
+               size_t len;
+
+               if (GDKinmemory() || GDKgetenv("monet_vault_key") == NULL) {
+                       /* use a default (hard coded, non safe) key */
+                       snprintf(secret, sizeof(secret), "%s", 
"Xas632jsi2whjds8");
+               } else {
+                       if ((secretf = fopen(GDKgetenv("monet_vault_key"), 
"r")) == NULL) {
+                               throw(MAL, "malEmbeddedBoot",
+                                       "unable to open vault_key_file %s: 
%s\n",
+                                       GDKgetenv("monet_vault_key"), 
strerror(errno));
+                       }
+                       len = fread(secret, 1, sizeof(secret), secretf);
+                       secret[len] = '\0';
+                       len = strlen(secret); /* secret can contain null-bytes 
*/
+                       if (len == 0) {
+                               throw(MAL, "malEmbeddedBoot", "vault key has 
zero-length!\n");
+                       } else if (len < 5) {
+                               throw(MAL, "malEmbeddedBoot",
+                                       "#warning: your vault key is too short "
+                                       "(%zu), enlarge your vault key!\n", 
len);
+                       }
+                       fclose(secretf);
+               }
+               if ((msg = AUTHunlockVault(secretp)) != MAL_SUCCEED) {
+                       /* don't show this as a crash */
+                       if (!GDKinmemory())
+                               msab_registerStop();
+                       return msg;
+               }
+       }
        if ((msg = AUTHinitTables(NULL)) != MAL_SUCCEED)
                return msg;
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to