24 struct sshkey_sig_details;
26 typedef int sshsig_signer(
struct sshkey *, u_char **,
size_t *,
27 const u_char *,
size_t,
const char *,
const char *,
const char *,
37 int sshsig_signb(
struct sshkey *key,
const char *hashalg,
38 const char *sk_provider,
const char *sk_pin,
const struct sshbuf *message,
39 const char *sig_namespace,
struct sshbuf **out,
40 sshsig_signer *signer,
void *signer_ctx);
47 int sshsig_verifyb(
struct sshbuf *signature,
48 const struct sshbuf *message,
const char *sig_namespace,
49 struct sshkey **sign_keyp,
struct sshkey_sig_details **sig_details);
58 int sshsig_sign_fd(
struct sshkey *key,
const char *hashalg,
59 const char *sk_provider,
const char *sk_pin,
60 int fd,
const char *sig_namespace,
61 struct sshbuf **out, sshsig_signer *signer,
void *signer_ctx);
68 int sshsig_verify_fd(
struct sshbuf *signature,
int fd,
69 const char *sig_namespace,
struct sshkey **sign_keyp,
70 struct sshkey_sig_details **sig_details);
77 int sshsig_armor(
const struct sshbuf *blob,
struct sshbuf **out);
82 int sshsig_dearmor(
struct sshbuf *sig,
struct sshbuf **out);
88 int sshsig_check_allowed_keys(
const char *path,
const struct sshkey *sign_key,
89 const char *principal,
const char *ns, uint64_t verify_time);
92 struct sshsigopt *sshsigopt_parse(
const char *opts,
93 const char *path, u_long linenum,
const char **errstrp);
96 void sshsigopt_free(
struct sshsigopt *opts);
99 int sshsig_get_pubkey(
struct sshbuf *signature,
struct sshkey **pubkey);
104 int sshsig_find_principals(
const char *path,
const struct sshkey *sign_key,
105 uint64_t verify_time,
char **principal);