24 #define RSA_HEADER_BEGIN "-----BEGIN RSA PRIVATE KEY-----"
25 #define RSA_HEADER_END "-----END RSA PRIVATE KEY-----"
26 #define DSA_HEADER_BEGIN "-----BEGIN DSA PRIVATE KEY-----"
27 #define DSA_HEADER_END "-----END DSA PRIVATE KEY-----"
28 #define ECDSA_HEADER_BEGIN "-----BEGIN EC PRIVATE KEY-----"
29 #define ECDSA_HEADER_END "-----END EC PRIVATE KEY-----"
31 #define ssh_pki_log(...) \
32 _ssh_log(SSH_LOG_FUNCTIONS, __func__, __VA_ARGS__)
33 void _ssh_pki_log(
const char *
function,
34 const char *format, ...) PRINTF_ATTRIBUTE(2, 3);
36 int pki_key_ecdsa_nid_from_name(const
char *name);
37 const
char *pki_key_ecdsa_nid_to_name(
int nid);
40 ssh_key pki_key_dup(const ssh_key key,
int demote);
41 int pki_key_generate_rsa(ssh_key key,
int parameter);
42 int pki_key_generate_dss(ssh_key key,
int parameter);
43 int pki_key_generate_ecdsa(ssh_key key,
int parameter);
44 int pki_key_compare(const ssh_key k1,
46 enum ssh_keycmp_e what);
49 enum ssh_keytypes_e pki_privatekey_type_from_string(const
char *privkey);
50 ssh_key pki_private_key_from_base64(const
char *b64_key,
51 const
char *passphrase,
52 ssh_auth_callback auth_fn,
55 ssh_string pki_private_key_to_pem(const ssh_key key,
56 const
char *passphrase,
57 ssh_auth_callback auth_fn,
61 int pki_pubkey_build_dss(ssh_key key,
66 int pki_pubkey_build_rsa(ssh_key key,
69 int pki_pubkey_build_ecdsa(ssh_key key,
int nid, ssh_string e);
70 ssh_string pki_publickey_to_blob(const ssh_key key);
71 int pki_export_pubkey_rsa1(const ssh_key key,
77 ssh_string pki_signature_to_blob(const ssh_signature sign);
78 ssh_signature pki_signature_from_blob(const ssh_key pubkey,
79 const ssh_string sig_blob,
80 enum ssh_keytypes_e type);
81 int pki_signature_verify(ssh_session session,
82 const ssh_signature sig,
84 const
unsigned char *hash,
88 ssh_signature pki_do_sign(const ssh_key privkey,
89 const
unsigned char *hash,
91 ssh_signature pki_do_sign_sessionid(const ssh_key key,
92 const
unsigned char *hash,