24 #include "libssh/pki.h"
27 int bcrypt_pbkdf(
const char *pass,
35 #define RSA_HEADER_BEGIN "-----BEGIN RSA PRIVATE KEY-----"
36 #define RSA_HEADER_END "-----END RSA PRIVATE KEY-----"
37 #define DSA_HEADER_BEGIN "-----BEGIN DSA PRIVATE KEY-----"
38 #define DSA_HEADER_END "-----END DSA PRIVATE KEY-----"
39 #define ECDSA_HEADER_BEGIN "-----BEGIN EC PRIVATE KEY-----"
40 #define ECDSA_HEADER_END "-----END EC PRIVATE KEY-----"
41 #define OPENSSH_HEADER_BEGIN "-----BEGIN OPENSSH PRIVATE KEY-----"
42 #define OPENSSH_HEADER_END "-----END OPENSSH PRIVATE KEY-----"
44 #define OPENSSH_AUTH_MAGIC "openssh-key-v1"
46 int pki_key_ecdsa_nid_from_name(
const char *name);
47 const char *pki_key_ecdsa_nid_to_name(
int nid);
49 enum ssh_digest_e hash_type);
51 enum ssh_keytypes_e type);
55 int pki_key_generate_rsa(
ssh_key key,
int parameter);
56 int pki_key_generate_dss(
ssh_key key,
int parameter);
57 int pki_key_generate_ecdsa(
ssh_key key,
int parameter);
58 int pki_key_generate_ed25519(
ssh_key key);
60 int pki_key_compare(
const ssh_key k1,
62 enum ssh_keycmp_e what);
64 int pki_key_check_hash_compatible(
ssh_key key,
65 enum ssh_digest_e hash_type);
67 enum ssh_keytypes_e pki_privatekey_type_from_string(
const char *privkey);
68 ssh_key pki_private_key_from_base64(
const char *b64_key,
69 const char *passphrase,
70 ssh_auth_callback auth_fn,
74 const char *passphrase,
75 ssh_auth_callback auth_fn,
77 int pki_import_privkey_buffer(
enum ssh_keytypes_e type,
82 int pki_pubkey_build_dss(
ssh_key key,
87 int pki_pubkey_build_rsa(
ssh_key key,
94 int pki_privkey_build_dss(
ssh_key key,
100 int pki_privkey_build_rsa(
ssh_key key,
107 int pki_privkey_build_ecdsa(
ssh_key key,
115 enum ssh_digest_e hash_type,
116 const unsigned char *input,
120 const unsigned char *input,
125 enum ssh_keytypes_e type,
126 enum ssh_digest_e hash_type);
130 const unsigned char *input,
132 enum ssh_digest_e hash_type);
134 const unsigned char *hash,
136 enum ssh_digest_e hash_type);
138 const unsigned char *hash,
size_t hlen);
140 const unsigned char *hash,
size_t hlen);
141 int pki_ed25519_key_cmp(
const ssh_key k1,
143 enum ssh_keycmp_e what);
148 int pki_privkey_build_ed25519(
ssh_key key,
153 ssh_key ssh_pki_openssh_pubkey_import(
const char *text_key);
154 ssh_key ssh_pki_openssh_privkey_import(
const char *text_key,
155 const char *passphrase, ssh_auth_callback auth_fn,
void *auth_data);
157 const char *passphrase, ssh_auth_callback auth_fn,
void *auth_data);