version 1.3, 2019/09/03 20:51:49 |
version 1.4, 2019/09/05 04:55:32 |
|
|
return r; |
return r; |
} |
} |
|
|
struct sigopts { |
struct sshsigopt { |
int ca; |
int ca; |
char *namespaces; |
char *namespaces; |
}; |
}; |
|
|
static struct sigopts * |
struct sshsigopt * |
sigopts_parse(const char *opts, const char *path, u_long linenum, |
sshsigopt_parse(const char *opts, const char *path, u_long linenum, |
const char **errstrp) |
const char **errstrp) |
{ |
{ |
struct sigopts *ret; |
struct sshsigopt *ret; |
int r; |
int r; |
const char *errstr = NULL; |
const char *errstr = NULL; |
|
|
|
|
return NULL; |
return NULL; |
} |
} |
|
|
static void |
void |
sigopts_free(struct sigopts *opts) |
sshsigopt_free(struct sshsigopt *opts) |
{ |
{ |
if (opts == NULL) |
if (opts == NULL) |
return; |
return; |
|
|
char *cp, *opts = NULL, *identities = NULL; |
char *cp, *opts = NULL, *identities = NULL; |
int r, found = 0; |
int r, found = 0; |
const char *reason = NULL; |
const char *reason = NULL; |
struct sigopts *sigopts = NULL; |
struct sshsigopt *sigopts = NULL; |
|
|
if ((found_key = sshkey_new(KEY_UNSPEC)) == NULL) { |
if ((found_key = sshkey_new(KEY_UNSPEC)) == NULL) { |
error("%s: sshkey_new failed", __func__); |
error("%s: sshkey_new failed", __func__); |
|
|
} |
} |
} |
} |
debug3("%s:%lu: options %s", path, linenum, opts == NULL ? "" : opts); |
debug3("%s:%lu: options %s", path, linenum, opts == NULL ? "" : opts); |
if ((sigopts = sigopts_parse(opts, path, linenum, &reason)) == NULL) { |
if ((sigopts = sshsigopt_parse(opts, path, linenum, &reason)) == NULL) { |
error("%s:%lu: bad options: %s", path, linenum, reason); |
error("%s:%lu: bad options: %s", path, linenum, reason); |
goto done; |
goto done; |
} |
} |
|
|
} |
} |
done: |
done: |
sshkey_free(found_key); |
sshkey_free(found_key); |
sigopts_free(sigopts); |
sshsigopt_free(sigopts); |
return found ? 0 : SSH_ERR_KEY_NOT_FOUND; |
return found ? 0 : SSH_ERR_KEY_NOT_FOUND; |
} |
} |
|
|