24#include "libssh/pki.h"
31int bcrypt_pbkdf(
const char *pass,
39#define RSA_HEADER_BEGIN "-----BEGIN RSA PRIVATE KEY-----"
40#define RSA_HEADER_END "-----END RSA PRIVATE KEY-----"
41#define DSA_HEADER_BEGIN "-----BEGIN DSA PRIVATE KEY-----"
42#define DSA_HEADER_END "-----END DSA PRIVATE KEY-----"
43#define ECDSA_HEADER_BEGIN "-----BEGIN EC PRIVATE KEY-----"
44#define ECDSA_HEADER_END "-----END EC PRIVATE KEY-----"
45#define OPENSSH_HEADER_BEGIN "-----BEGIN OPENSSH PRIVATE KEY-----"
46#define OPENSSH_HEADER_END "-----END OPENSSH PRIVATE KEY-----"
48#define OPENSSH_AUTH_MAGIC "openssh-key-v1"
58int pki_key_ecdsa_nid_from_name(
const char *name);
59const char *pki_key_ecdsa_nid_to_name(
int nid);
61 enum ssh_digest_e hash_type);
63 enum ssh_keytypes_e type);
67int pki_key_generate_rsa(
ssh_key key,
int parameter);
68int pki_key_generate_dss(
ssh_key key,
int parameter);
69int pki_key_generate_ecdsa(
ssh_key key,
int parameter);
70int pki_key_generate_ed25519(
ssh_key key);
72int pki_key_compare(
const ssh_key k1,
74 enum ssh_keycmp_e what);
76int pki_key_check_hash_compatible(
ssh_key key,
77 enum ssh_digest_e hash_type);
79enum ssh_keytypes_e pki_privatekey_type_from_string(
const char *privkey);
80ssh_key pki_private_key_from_base64(
const char *b64_key,
81 const char *passphrase,
86 const char *passphrase,
89int pki_import_privkey_buffer(
enum ssh_keytypes_e type,
94int pki_pubkey_build_dss(
ssh_key key,
99int pki_pubkey_build_rsa(
ssh_key key,
106int pki_privkey_build_dss(
ssh_key key,
112int pki_privkey_build_rsa(
ssh_key key,
119int pki_privkey_build_ecdsa(
ssh_key key,
127 enum ssh_digest_e hash_type,
128 const unsigned char *input,
132 const unsigned char *input,
137 enum ssh_keytypes_e type,
138 enum ssh_digest_e hash_type);
142 const unsigned char *input,
144 enum ssh_digest_e hash_type);
146 const unsigned char *hash,
148 enum ssh_digest_e hash_type);
150 const unsigned char *hash,
size_t hlen);
152 const unsigned char *hash,
size_t hlen);
153int pki_ed25519_key_cmp(
const ssh_key k1,
155 enum ssh_keycmp_e what);
160int pki_privkey_build_ed25519(
ssh_key key,
165ssh_key ssh_pki_openssh_pubkey_import(
const char *text_key);
166ssh_key ssh_pki_openssh_privkey_import(
const char *text_key,
171#ifdef WITH_PKCS11_URI
173int pki_uri_import(
const char *uri_name,
ssh_key *key,
enum ssh_key_e key_type);
176bool ssh_key_size_allowed_rsa(
int min_size,
ssh_key key);
int(* ssh_auth_callback)(const char *prompt, char *buf, size_t len, int echo, int verify, void *userdata)
SSH authentication callback for password and publickey auth.
Definition libssh.h:674
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:237
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:449