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);