+/* $OpenBSD: key.h,v 1.11 2001/03/12 22:02:01 markus Exp $ */
+
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
*
#ifndef KEY_H
#define KEY_H
+#include <openssl/rsa.h>
+#include <openssl/dsa.h>
+
typedef struct Key Key;
enum types {
KEY_RSA1,
KEY_DSA,
KEY_UNSPEC
};
+enum fp_type {
+ SSH_FP_SHA1,
+ SSH_FP_MD5
+};
+enum fp_rep {
+ SSH_FP_HEX,
+ SSH_FP_BUBBLEBABBLE
+};
struct Key {
int type;
RSA *rsa;
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);
int key_read(Key *key, char **cpp);
u_int key_size(Key *k);
-Key *key_generate(int type, unsigned int bits);
+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, unsigned char **blobp, unsigned int *lenp);
+int key_to_blob(Key *key, u_char **blobp, u_int *lenp);
char *key_ssh_name(Key *k);
int
key_sign(
Key *key,
- unsigned char **sigp, int *lenp,
- unsigned char *data, int datalen);
+ u_char **sigp, int *lenp,
+ u_char *data, int datalen);
int
key_verify(
Key *key,
- unsigned char *signature, int signaturelen,
- unsigned char *data, int datalen);
+ u_char *signature, int signaturelen,
+ u_char *data, int datalen);
#endif