diff options
Diffstat (limited to 'sshkey.h')
-rw-r--r-- | sshkey.h | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshkey.h,v 1.34 2019/09/03 08:31:20 djm Exp $ */ | 1 | /* $OpenBSD: sshkey.h,v 1.35 2019/10/31 21:15:14 djm Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. | 4 | * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. |
@@ -65,6 +65,8 @@ enum sshkey_types { | |||
65 | KEY_ED25519_CERT, | 65 | KEY_ED25519_CERT, |
66 | KEY_XMSS, | 66 | KEY_XMSS, |
67 | KEY_XMSS_CERT, | 67 | KEY_XMSS_CERT, |
68 | KEY_ECDSA_SK, | ||
69 | KEY_ECDSA_SK_CERT, | ||
68 | KEY_UNSPEC | 70 | KEY_UNSPEC |
69 | }; | 71 | }; |
70 | 72 | ||
@@ -118,18 +120,30 @@ struct sshkey_cert { | |||
118 | struct sshkey { | 120 | struct sshkey { |
119 | int type; | 121 | int type; |
120 | int flags; | 122 | int flags; |
123 | /* KEY_RSA */ | ||
121 | RSA *rsa; | 124 | RSA *rsa; |
125 | /* KEY_DSA */ | ||
122 | DSA *dsa; | 126 | DSA *dsa; |
127 | /* KEY_ECDSA and KEY_ECDSA_SK */ | ||
123 | int ecdsa_nid; /* NID of curve */ | 128 | int ecdsa_nid; /* NID of curve */ |
124 | EC_KEY *ecdsa; | 129 | EC_KEY *ecdsa; |
130 | /* KEY_ED25519 */ | ||
125 | u_char *ed25519_sk; | 131 | u_char *ed25519_sk; |
126 | u_char *ed25519_pk; | 132 | u_char *ed25519_pk; |
133 | /* KEY_XMSS */ | ||
127 | char *xmss_name; | 134 | char *xmss_name; |
128 | char *xmss_filename; /* for state file updates */ | 135 | char *xmss_filename; /* for state file updates */ |
129 | void *xmss_state; /* depends on xmss_name, opaque */ | 136 | void *xmss_state; /* depends on xmss_name, opaque */ |
130 | u_char *xmss_sk; | 137 | u_char *xmss_sk; |
131 | u_char *xmss_pk; | 138 | u_char *xmss_pk; |
139 | /* KEY_ECDSA_SK */ | ||
140 | char *sk_application; | ||
141 | uint8_t sk_flags; | ||
142 | struct sshbuf *sk_key_handle; | ||
143 | struct sshbuf *sk_reserved; | ||
144 | /* Certificates */ | ||
132 | struct sshkey_cert *cert; | 145 | struct sshkey_cert *cert; |
146 | /* Private key shielding */ | ||
133 | u_char *shielded_private; | 147 | u_char *shielded_private; |
134 | size_t shielded_len; | 148 | size_t shielded_len; |
135 | u_char *shield_prekey; | 149 | u_char *shield_prekey; |
@@ -268,6 +282,9 @@ int ssh_ecdsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, | |||
268 | int ssh_ecdsa_verify(const struct sshkey *key, | 282 | int ssh_ecdsa_verify(const struct sshkey *key, |
269 | const u_char *signature, size_t signaturelen, | 283 | const u_char *signature, size_t signaturelen, |
270 | const u_char *data, size_t datalen, u_int compat); | 284 | const u_char *data, size_t datalen, u_int compat); |
285 | int ssh_ecdsa_sk_verify(const struct sshkey *key, | ||
286 | const u_char *signature, size_t signaturelen, | ||
287 | const u_char *data, size_t datalen, u_int compat); | ||
271 | int ssh_ed25519_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, | 288 | int ssh_ed25519_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, |
272 | const u_char *data, size_t datalen, u_int compat); | 289 | const u_char *data, size_t datalen, u_int compat); |
273 | int ssh_ed25519_verify(const struct sshkey *key, | 290 | int ssh_ed25519_verify(const struct sshkey *key, |