X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=rsa.c;h=145df5e464fc98b431534fed0dc49e2ff614f65a;hb=686e21aa2afbd14c3e59962f02a31c4dcd62e5d8;hp=8fc976b9fdc4c964d600cd88bd0f7e7bc520b320;hpb=9fe002edfab58aac700bb3b5a8ada0f38e3ac5ea;p=secnet.git diff --git a/rsa.c b/rsa.c index 8fc976b..145df5e 100644 --- a/rsa.c +++ b/rsa.c @@ -53,6 +53,7 @@ struct load_ctx { const char *message, va_list args); bool_t (*postreadcheck)(struct load_ctx *l, FILE *f); const char *what; + dict_t *deprdict; /* used only to look up hash */ struct cloc loc; union { struct { @@ -85,7 +86,7 @@ static void verror_cfgfatal(struct load_ctx *l, struct cloc loc, FILE *maybe_f, const char *message, va_list args) { - vcfgfatal_maybefile(maybe_f,l->loc,l->what,message,args); + vcfgfatal_maybefile(maybe_f,l->loc,l->what,message,args,""); } struct rsapriv { @@ -378,6 +379,7 @@ static list_t *rsapub_apply(closure_t *self, struct cloc loc, dict_t *context, l->verror=verror_cfgfatal; l->postreadcheck=0; l->what="rsa-public"; + l->deprdict=context; l->loc=loc; #define RSAPUB_APPLY_GETBN(ix,en,what) \ @@ -413,6 +415,7 @@ bool_t rsa1_loadpub(const struct sigscheme_info *algo, l->verror=verror_tryload; l->postreadcheck=0; l->what="rsa1_loadpub"; + l->deprdict=0; l->loc=loc; l->u.tryload.log=log; @@ -719,6 +722,7 @@ static bool_t postreadcheck_tryload(struct load_ctx *l, FILE *f) bool_t rsa1_loadpriv(const struct sigscheme_info *algo, struct buffer_if *privkeydata, struct sigprivkey_if **sigpriv_r, + closure_t **closure_r, struct log_if *log, struct cloc loc) { FILE *f=0; @@ -734,6 +738,7 @@ bool_t rsa1_loadpriv(const struct sigscheme_info *algo, l->what="rsa1priv load"; l->verror=verror_tryload; l->postreadcheck=postreadcheck_tryload; + l->deprdict=0; l->loc=loc; l->u.tryload.log=log; @@ -747,6 +752,7 @@ bool_t rsa1_loadpriv(const struct sigscheme_info *algo, if (f) fclose(f); if (!st) return False; *sigpriv_r=&st->ops; + *closure_r=&st->cl; return True; } @@ -768,6 +774,7 @@ static list_t *rsapriv_apply(closure_t *self, struct cloc loc, dict_t *context, l->what="rsa-private"; l->verror=verror_cfgfatal; l->postreadcheck=postreadcheck_apply; + l->deprdict=context; l->loc=loc; /* Argument is filename pointing to SSH1 private key file */