~ubuntu-branches/ubuntu/utopic/pgadmin3/utopic-proposed

« back to all changes in this revision

Viewing changes to pgadmin/include/libssh2/libssh2_publickey.h

  • Committer: Package Import Robot
  • Author(s): Christoph Berg
  • Date: 2013-09-10 16:16:38 UTC
  • mfrom: (1.3.4)
  • Revision ID: package-import@ubuntu.com-20130910161638-wwup1q553ylww7dr
Tags: 1.18.0-1
* New upstream release.
* Don't install /usr/bin/png2c anymore.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Copyright (c) 2004-2006, Sara Golemon <sarag@libssh2.org>
 
2
 * All rights reserved.
 
3
 *
 
4
 * Redistribution and use in source and binary forms,
 
5
 * with or without modification, are permitted provided
 
6
 * that the following conditions are met:
 
7
 *
 
8
 *   Redistributions of source code must retain the above
 
9
 *   copyright notice, this list of conditions and the
 
10
 *   following disclaimer.
 
11
 *
 
12
 *   Redistributions in binary form must reproduce the above
 
13
 *   copyright notice, this list of conditions and the following
 
14
 *   disclaimer in the documentation and/or other materials
 
15
 *   provided with the distribution.
 
16
 *
 
17
 *   Neither the name of the copyright holder nor the names
 
18
 *   of any other contributors may be used to endorse or
 
19
 *   promote products derived from this software without
 
20
 *   specific prior written permission.
 
21
 *
 
22
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 
23
 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 
24
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 
25
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
26
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 
27
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
28
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 
29
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 
30
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 
31
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 
32
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 
33
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 
34
 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
 
35
 * OF SUCH DAMAGE.
 
36
 */
 
37
 
 
38
/* Note: This include file is only needed for using the
 
39
 * publickey SUBSYSTEM which is not the same as publickey
 
40
 * authentication.  For authentication you only need libssh2.h
 
41
 *
 
42
 * For more information on the publickey subsystem,
 
43
 * refer to IETF draft: secsh-publickey
 
44
 */
 
45
 
 
46
#ifndef LIBSSH2_PUBLICKEY_H
 
47
#define LIBSSH2_PUBLICKEY_H 1
 
48
 
 
49
#include "libssh2.h"
 
50
 
 
51
typedef struct _LIBSSH2_PUBLICKEY               LIBSSH2_PUBLICKEY;
 
52
 
 
53
typedef struct _libssh2_publickey_attribute {
 
54
    const char *name;
 
55
    unsigned long name_len;
 
56
    const char *value;
 
57
    unsigned long value_len;
 
58
    char mandatory;
 
59
} libssh2_publickey_attribute;
 
60
 
 
61
typedef struct _libssh2_publickey_list {
 
62
    unsigned char *packet; /* For freeing */
 
63
 
 
64
    const unsigned char *name;
 
65
    unsigned long name_len;
 
66
    const unsigned char *blob;
 
67
    unsigned long blob_len;
 
68
    unsigned long num_attrs;
 
69
    libssh2_publickey_attribute *attrs; /* free me */
 
70
} libssh2_publickey_list;
 
71
 
 
72
/* Generally use the first macro here, but if both name and value are string literals, you can use _fast() to take advantage of preprocessing */
 
73
#define libssh2_publickey_attribute(name, value, mandatory) \
 
74
  { (name), strlen(name), (value), strlen(value), (mandatory) },
 
75
#define libssh2_publickey_attribute_fast(name, value, mandatory) \
 
76
  { (name), sizeof(name) - 1, (value), sizeof(value) - 1, (mandatory) },
 
77
 
 
78
#ifdef __cplusplus
 
79
extern "C" {
 
80
#endif
 
81
 
 
82
/* Publickey Subsystem */
 
83
LIBSSH2_API LIBSSH2_PUBLICKEY *libssh2_publickey_init(LIBSSH2_SESSION *session);
 
84
 
 
85
LIBSSH2_API int libssh2_publickey_add_ex(LIBSSH2_PUBLICKEY *pkey,
 
86
                                         const unsigned char *name,
 
87
                                         unsigned long name_len,
 
88
                                         const unsigned char *blob,
 
89
                                         unsigned long blob_len, char overwrite,
 
90
                                         unsigned long num_attrs,
 
91
                                         const libssh2_publickey_attribute attrs[]);
 
92
#define libssh2_publickey_add(pkey, name, blob, blob_len, overwrite, \
 
93
                              num_attrs, attrs)                         \
 
94
  libssh2_publickey_add_ex((pkey), (name), strlen(name), (blob), (blob_len), \
 
95
                           (overwrite), (num_attrs), (attrs))
 
96
 
 
97
LIBSSH2_API int libssh2_publickey_remove_ex(LIBSSH2_PUBLICKEY *pkey,
 
98
                                            const unsigned char *name,
 
99
                                            unsigned long name_len,
 
100
                                            const unsigned char *blob,
 
101
                                            unsigned long blob_len);
 
102
#define libssh2_publickey_remove(pkey, name, blob, blob_len) \
 
103
  libssh2_publickey_remove_ex((pkey), (name), strlen(name), (blob), (blob_len))
 
104
 
 
105
LIBSSH2_API int
 
106
libssh2_publickey_list_fetch(LIBSSH2_PUBLICKEY *pkey,
 
107
                             unsigned long *num_keys,
 
108
                             libssh2_publickey_list **pkey_list);
 
109
LIBSSH2_API void libssh2_publickey_list_free(LIBSSH2_PUBLICKEY *pkey,
 
110
                                             libssh2_publickey_list *pkey_list);
 
111
 
 
112
LIBSSH2_API int libssh2_publickey_shutdown(LIBSSH2_PUBLICKEY *pkey);
 
113
 
 
114
#ifdef __cplusplus
 
115
} /* extern "C" */
 
116
#endif
 
117
 
 
118
#endif /* ifndef: LIBSSH2_PUBLICKEY_H */