summaryrefslogtreecommitdiff
path: root/key.h
diff options
context:
space:
mode:
Diffstat (limited to 'key.h')
-rw-r--r--key.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/key.h b/key.h
index b57d6a4c4..c8aeba29e 100644
--- a/key.h
+++ b/key.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: key.h,v 1.37 2013/05/19 02:42:42 djm Exp $ */ 1/* $OpenBSD: key.h,v 1.41 2014/01/09 23:20:00 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.
@@ -39,9 +39,11 @@ enum types {
39 KEY_RSA, 39 KEY_RSA,
40 KEY_DSA, 40 KEY_DSA,
41 KEY_ECDSA, 41 KEY_ECDSA,
42 KEY_ED25519,
42 KEY_RSA_CERT, 43 KEY_RSA_CERT,
43 KEY_DSA_CERT, 44 KEY_DSA_CERT,
44 KEY_ECDSA_CERT, 45 KEY_ECDSA_CERT,
46 KEY_ED25519_CERT,
45 KEY_RSA_CERT_V00, 47 KEY_RSA_CERT_V00,
46 KEY_DSA_CERT_V00, 48 KEY_DSA_CERT_V00,
47 KEY_NULL, 49 KEY_NULL,
@@ -87,8 +89,13 @@ struct Key {
87 void *ecdsa; 89 void *ecdsa;
88#endif 90#endif
89 struct KeyCert *cert; 91 struct KeyCert *cert;
92 u_char *ed25519_sk;
93 u_char *ed25519_pk;
90}; 94};
91 95
96#define ED25519_SK_SZ crypto_sign_ed25519_SECRETKEYBYTES
97#define ED25519_PK_SZ crypto_sign_ed25519_PUBLICKEYBYTES
98
92Key *key_new(int); 99Key *key_new(int);
93void key_add_private(Key *); 100void key_add_private(Key *);
94Key *key_new_private(int); 101Key *key_new_private(int);
@@ -108,6 +115,7 @@ Key *key_generate(int, u_int);
108Key *key_from_private(const Key *); 115Key *key_from_private(const Key *);
109int key_type_from_name(char *); 116int key_type_from_name(char *);
110int key_is_cert(const Key *); 117int key_is_cert(const Key *);
118int key_type_is_cert(int);
111int key_type_plain(int); 119int key_type_plain(int);
112int key_to_certified(Key *, int); 120int key_to_certified(Key *, int);
113int key_drop_cert(Key *); 121int key_drop_cert(Key *);
@@ -124,11 +132,11 @@ u_int key_curve_nid_to_bits(int);
124int key_ecdsa_bits_to_nid(int); 132int key_ecdsa_bits_to_nid(int);
125#ifdef OPENSSL_HAS_ECC 133#ifdef OPENSSL_HAS_ECC
126int key_ecdsa_key_to_nid(EC_KEY *); 134int key_ecdsa_key_to_nid(EC_KEY *);
127const EVP_MD *key_ec_nid_to_evpmd(int nid); 135int key_ec_nid_to_hash_alg(int nid);
128int key_ec_validate_public(const EC_GROUP *, const EC_POINT *); 136int key_ec_validate_public(const EC_GROUP *, const EC_POINT *);
129int key_ec_validate_private(const EC_KEY *); 137int key_ec_validate_private(const EC_KEY *);
130#endif 138#endif
131char *key_alg_list(void); 139char *key_alg_list(int, int);
132 140
133Key *key_from_blob(const u_char *, u_int); 141Key *key_from_blob(const u_char *, u_int);
134int key_to_blob(const Key *, u_char **, u_int *); 142int key_to_blob(const Key *, u_char **, u_int *);
@@ -145,10 +153,15 @@ int ssh_ecdsa_sign(const Key *, u_char **, u_int *, const u_char *, u_int);
145int ssh_ecdsa_verify(const Key *, const u_char *, u_int, const u_char *, u_int); 153int ssh_ecdsa_verify(const Key *, const u_char *, u_int, const u_char *, u_int);
146int ssh_rsa_sign(const Key *, u_char **, u_int *, const u_char *, u_int); 154int ssh_rsa_sign(const Key *, u_char **, u_int *, const u_char *, u_int);
147int ssh_rsa_verify(const Key *, const u_char *, u_int, const u_char *, u_int); 155int ssh_rsa_verify(const Key *, const u_char *, u_int, const u_char *, u_int);
156int ssh_ed25519_sign(const Key *, u_char **, u_int *, const u_char *, u_int);
157int ssh_ed25519_verify(const Key *, const u_char *, u_int, const u_char *, u_int);
148 158
149#if defined(OPENSSL_HAS_ECC) && (defined(DEBUG_KEXECDH) || defined(DEBUG_PK)) 159#if defined(OPENSSL_HAS_ECC) && (defined(DEBUG_KEXECDH) || defined(DEBUG_PK))
150void key_dump_ec_point(const EC_GROUP *, const EC_POINT *); 160void key_dump_ec_point(const EC_GROUP *, const EC_POINT *);
151void key_dump_ec_key(const EC_KEY *); 161void key_dump_ec_key(const EC_KEY *);
152#endif 162#endif
153 163
164void key_private_serialize(const Key *, Buffer *);
165Key *key_private_deserialize(Buffer *);
166
154#endif 167#endif