summaryrefslogtreecommitdiffstats
path: root/crypto/openssh/key.h
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/openssh/key.h')
-rw-r--r--crypto/openssh/key.h44
1 files changed, 40 insertions, 4 deletions
diff --git a/crypto/openssh/key.h b/crypto/openssh/key.h
index 8e1e0a9..cee31c3 100644
--- a/crypto/openssh/key.h
+++ b/crypto/openssh/key.h
@@ -1,3 +1,5 @@
+/* $OpenBSD: key.h,v 1.12 2001/04/17 10:53:24 markus Exp $ */
+
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
*
@@ -24,11 +26,23 @@
#ifndef KEY_H
#define KEY_H
+#include <openssl/rsa.h>
+#include <openssl/dsa.h>
+
typedef struct Key Key;
enum types {
+ KEY_RSA1,
KEY_RSA,
KEY_DSA,
- KEY_EMPTY
+ KEY_UNSPEC
+};
+enum fp_type {
+ SSH_FP_SHA1,
+ SSH_FP_MD5
+};
+enum fp_rep {
+ SSH_FP_HEX,
+ SSH_FP_BUBBLEBABBLE
};
struct Key {
int type;
@@ -37,12 +51,34 @@ struct Key {
};
Key *key_new(int type);
+Key *key_new_private(int type);
void key_free(Key *k);
int key_equal(Key *a, Key *b);
-char *key_fingerprint(Key *k);
+char *key_fingerprint(Key *k, enum fp_type dgst_type, enum fp_rep dgst_rep);
char *key_type(Key *k);
int key_write(Key *key, FILE *f);
-unsigned int key_read(Key *key, char **cpp);
-unsigned int key_size(Key *k);
+int key_read(Key *key, char **cpp);
+u_int key_size(Key *k);
+
+Key *key_generate(int type, u_int bits);
+Key *key_from_private(Key *k);
+int key_type_from_name(char *name);
+
+Key *key_from_blob(char *blob, int blen);
+int key_to_blob(Key *key, u_char **blobp, u_int *lenp);
+char *key_ssh_name(Key *k);
+int key_names_valid2(const char *names);
+
+int
+key_sign(
+ Key *key,
+ u_char **sigp, int *lenp,
+ u_char *data, int datalen);
+
+int
+key_verify(
+ Key *key,
+ u_char *signature, int signaturelen,
+ u_char *data, int datalen);
#endif
OpenPOWER on IntegriCloud