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);
    65 enum ssh_keytypes_e pki_privatekey_type_from_string(
const char *privkey);
    66 ssh_key pki_private_key_from_base64(
const char *b64_key,
    67                                     const char *passphrase,
    68                                     ssh_auth_callback auth_fn,
    72                                   const char *passphrase,
    73                                   ssh_auth_callback auth_fn,
    75 int pki_import_privkey_buffer(
enum ssh_keytypes_e type,
    80 int pki_pubkey_build_dss(
ssh_key key,
    85 int pki_pubkey_build_rsa(
ssh_key key,
    92 int pki_privkey_build_dss(
ssh_key key,
    98 int pki_privkey_build_rsa(
ssh_key key,
   105 int pki_privkey_build_ecdsa(
ssh_key key,
   115                                       enum ssh_keytypes_e type,
   116                                       enum ssh_digest_e hash_type);
   120                          const unsigned char *hash,
   124 #define pki_do_sign(key, hash, hlen) \   125     pki_do_sign_hash(key, hash, hlen, SSH_DIGEST_AUTO)   127                                const unsigned char *hash,
   129                                enum ssh_digest_e hash_type);
   130 #define pki_do_sign_sessionid(key, hash, hlen) \   131     pki_do_sign_sessionid_hash(key, hash, hlen, SSH_DIGEST_AUTO)   133                                         const unsigned char *hash,
   135                                         enum ssh_digest_e hash_type);
   137         const unsigned char *hash, 
size_t hlen);
   139         const unsigned char *hash, 
size_t hlen);
   140 int pki_ed25519_key_cmp(
const ssh_key k1,
   142                 enum ssh_keycmp_e what);
   147 int pki_privkey_build_ed25519(
ssh_key key,
   152 ssh_key ssh_pki_openssh_pubkey_import(
const char *text_key);
   153 ssh_key ssh_pki_openssh_privkey_import(
const char *text_key,
   154         const char *passphrase, ssh_auth_callback auth_fn, 
void *auth_data);
   156         const char *passphrase, ssh_auth_callback auth_fn, 
void *auth_data);
 
enum ssh_digest_e ssh_key_type_to_hash(ssh_session session, enum ssh_keytypes_e type)
Convert a key type to a hash type. This is usually unambiguous for all the key types, unless the SHA2 extension (RFC 8332) is negotiated during key exchange. 
Definition: pki.c:308
Definition: session.h:102
const char * ssh_key_signature_to_char(enum ssh_keytypes_e type, enum ssh_digest_e hash_type)
Convert a signature type to a string. 
Definition: pki.c:204