version 1.39, 2019/11/13 07:53:10 |
version 1.40, 2019/11/25 00:51:37 |
|
|
#define ED25519_SK_SZ crypto_sign_ed25519_SECRETKEYBYTES |
#define ED25519_SK_SZ crypto_sign_ed25519_SECRETKEYBYTES |
#define ED25519_PK_SZ crypto_sign_ed25519_PUBLICKEYBYTES |
#define ED25519_PK_SZ crypto_sign_ed25519_PUBLICKEYBYTES |
|
|
|
/* Additional fields contained in signature */ |
|
struct sshkey_sig_details { |
|
uint32_t sk_counter; /* U2F signature counter */ |
|
uint8_t sk_flags; /* U2F signature flags; see ssh-sk.h */ |
|
}; |
|
|
struct sshkey *sshkey_new(int); |
struct sshkey *sshkey_new(int); |
void sshkey_free(struct sshkey *); |
void sshkey_free(struct sshkey *); |
int sshkey_equal_public(const struct sshkey *, |
int sshkey_equal_public(const struct sshkey *, |
|
|
int sshkey_sign(struct sshkey *, u_char **, size_t *, |
int sshkey_sign(struct sshkey *, u_char **, size_t *, |
const u_char *, size_t, const char *, const char *, u_int); |
const u_char *, size_t, const char *, const char *, u_int); |
int sshkey_verify(const struct sshkey *, const u_char *, size_t, |
int sshkey_verify(const struct sshkey *, const u_char *, size_t, |
const u_char *, size_t, const char *, u_int); |
const u_char *, size_t, const char *, u_int, struct sshkey_sig_details **); |
int sshkey_check_sigtype(const u_char *, size_t, const char *); |
int sshkey_check_sigtype(const u_char *, size_t, const char *); |
const char *sshkey_sigalg_by_name(const char *); |
const char *sshkey_sigalg_by_name(const char *); |
int sshkey_get_sigtype(const u_char *, size_t, char **); |
int sshkey_get_sigtype(const u_char *, size_t, char **); |
|
|
int sshkey_private_serialize_maxsign(struct sshkey *key, struct sshbuf *buf, |
int sshkey_private_serialize_maxsign(struct sshkey *key, struct sshbuf *buf, |
u_int32_t maxsign, sshkey_printfn *pr); |
u_int32_t maxsign, sshkey_printfn *pr); |
|
|
|
void sshkey_sig_details_free(struct sshkey_sig_details *); |
|
|
#ifdef SSHKEY_INTERNAL |
#ifdef SSHKEY_INTERNAL |
int ssh_rsa_sign(const struct sshkey *key, |
int ssh_rsa_sign(const struct sshkey *key, |
u_char **sigp, size_t *lenp, const u_char *data, size_t datalen, |
u_char **sigp, size_t *lenp, const u_char *data, size_t datalen, |
|
|
const u_char *data, size_t datalen, u_int compat); |
const u_char *data, size_t datalen, u_int compat); |
int ssh_ecdsa_sk_verify(const struct sshkey *key, |
int ssh_ecdsa_sk_verify(const struct sshkey *key, |
const u_char *signature, size_t signaturelen, |
const u_char *signature, size_t signaturelen, |
const u_char *data, size_t datalen, u_int compat); |
const u_char *data, size_t datalen, u_int compat, |
|
struct sshkey_sig_details **detailsp); |
int ssh_ed25519_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, |
int ssh_ed25519_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, |
const u_char *data, size_t datalen, u_int compat); |
const u_char *data, size_t datalen, u_int compat); |
int ssh_ed25519_verify(const struct sshkey *key, |
int ssh_ed25519_verify(const struct sshkey *key, |
|
|
const u_char *data, size_t datalen, u_int compat); |
const u_char *data, size_t datalen, u_int compat); |
int ssh_ed25519_sk_verify(const struct sshkey *key, |
int ssh_ed25519_sk_verify(const struct sshkey *key, |
const u_char *signature, size_t signaturelen, |
const u_char *signature, size_t signaturelen, |
const u_char *data, size_t datalen, u_int compat); |
const u_char *data, size_t datalen, u_int compat, |
|
struct sshkey_sig_details **detailsp); |
int ssh_xmss_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, |
int ssh_xmss_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, |
const u_char *data, size_t datalen, u_int compat); |
const u_char *data, size_t datalen, u_int compat); |
int ssh_xmss_verify(const struct sshkey *key, |
int ssh_xmss_verify(const struct sshkey *key, |