summaryrefslogtreecommitdiffstats
path: root/include/libssh/pki.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libssh/pki.h')
-rw-r--r--include/libssh/pki.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/libssh/pki.h b/include/libssh/pki.h
new file mode 100644
index 0000000..6a0403e
--- /dev/null
+++ b/include/libssh/pki.h
@@ -0,0 +1,28 @@
+#ifndef PKI_H_
+#define PKI_H_
+
+#define SSH_KEY_FLAG_EMPTY 0
+#define SSH_KEY_FLAG_PUBLIC 1
+#define SSH_KEY_FLAG_PRIVATE 2
+
+struct ssh_key_struct {
+ enum ssh_keytypes_e type;
+ int flags;
+ const char *type_c; /* Don't free it ! it is static */
+#ifdef HAVE_LIBGCRYPT
+ gcry_sexp_t dsa;
+ gcry_sexp_t rsa;
+#elif HAVE_LIBCRYPTO
+ DSA *dsa;
+ RSA *rsa;
+#endif
+};
+
+ssh_key ssh_key_new (void);
+void ssh_key_clean (ssh_key key);
+enum ssh_keytypes_e ssh_key_type(ssh_key key);
+int ssh_key_import_private(ssh_key key, ssh_session session,
+ const char *filename, const char *passphrase);
+void ssh_key_free (ssh_key key);
+
+#endif /* PKI_H_ */