24#include "libssh/pki.h"
27int 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"
46int pki_key_ecdsa_nid_from_name(
const char *name);
47const char *pki_key_ecdsa_nid_to_name(
int nid);
49 enum ssh_digest_e hash_type);
51 enum ssh_keytypes_e type);
55int pki_key_generate_rsa(
ssh_key key,
int parameter);
56int pki_key_generate_dss(
ssh_key key,
int parameter);
57int pki_key_generate_ecdsa(
ssh_key key,
int parameter);
58int pki_key_generate_ed25519(
ssh_key key);
60int pki_key_compare(
const ssh_key k1,
62 enum ssh_keycmp_e what);
65enum ssh_keytypes_e pki_privatekey_type_from_string(
const char *privkey);
66ssh_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,
75int pki_import_privkey_buffer(
enum ssh_keytypes_e type,
80int pki_pubkey_build_dss(
ssh_key key,
85int pki_pubkey_build_rsa(
ssh_key key,
92int pki_privkey_build_dss(
ssh_key key,
98int pki_privkey_build_rsa(
ssh_key key,
105int 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);
140int pki_ed25519_key_cmp(
const ssh_key k1,
142 enum ssh_keycmp_e what);
147int pki_privkey_build_ed25519(
ssh_key key,
152ssh_key ssh_pki_openssh_pubkey_import(
const char *text_key);
153ssh_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);
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
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,...
Definition: pki.c:306
Definition: session.h:102