]> andersk Git - openssh.git/blob - key.h
change my e-mail to a portable one.
[openssh.git] / key.h
1 /*
2  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
15  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
16  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23  */
24 #ifndef KEY_H
25 #define KEY_H
26
27 typedef struct Key Key;
28 enum types {
29         KEY_RSA1,
30         KEY_RSA,
31         KEY_DSA,
32         KEY_UNSPEC
33 };
34 struct Key {
35         int     type;
36         RSA     *rsa;
37         DSA     *dsa;
38 };
39
40 Key     *key_new(int type);
41 Key     *key_new_private(int type);
42 void    key_free(Key *k);
43 int     key_equal(Key *a, Key *b);
44 char    *key_fingerprint(Key *k);
45 char    *key_type(Key *k);
46 int     key_write(Key *key, FILE *f);
47 int     key_read(Key *key, char **cpp);
48 u_int   key_size(Key *k);
49
50 Key     *key_generate(int type, unsigned int bits);
51 Key     *key_from_private(Key *k);
52 int     key_type_from_name(char *name);
53
54 Key     *key_from_blob(char *blob, int blen);
55 int     key_to_blob(Key *key, unsigned char **blobp, unsigned int *lenp);
56 char    *key_ssh_name(Key *k);
57
58 int
59 key_sign(
60     Key *key,
61     unsigned char **sigp, int *lenp,
62     unsigned char *data, int datalen);
63
64 int
65 key_verify(
66     Key *key,
67     unsigned char *signature, int signaturelen,
68     unsigned char *data, int datalen);
69
70 #endif
This page took 0.040214 seconds and 5 git commands to generate.