~ubuntu-branches/ubuntu/natty/postgresql-8.4/natty-security

« back to all changes in this revision

Viewing changes to contrib/pgcrypto/px.h

Tags: upstream-8.4.0
ImportĀ upstreamĀ versionĀ 8.4.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
27
 * SUCH DAMAGE.
28
28
 *
29
 
 * $PostgreSQL: pgsql/contrib/pgcrypto/px.h,v 1.18 2007/08/23 16:15:51 tgl Exp $
 
29
 * $PostgreSQL: pgsql/contrib/pgcrypto/px.h,v 1.19 2009/06/11 14:48:52 momjian Exp $
30
30
 */
31
31
 
32
32
#ifndef __PX_H
116
116
 
117
117
struct px_digest
118
118
{
119
 
        unsigned        (*result_size) (PX_MD * h);
120
 
        unsigned        (*block_size) (PX_MD * h);
121
 
        void            (*reset) (PX_MD * h);
122
 
        void            (*update) (PX_MD * h, const uint8 *data, unsigned dlen);
123
 
        void            (*finish) (PX_MD * h, uint8 *dst);
124
 
        void            (*free) (PX_MD * h);
 
119
        unsigned        (*result_size) (PX_MD *h);
 
120
        unsigned        (*block_size) (PX_MD *h);
 
121
        void            (*reset) (PX_MD *h);
 
122
        void            (*update) (PX_MD *h, const uint8 *data, unsigned dlen);
 
123
        void            (*finish) (PX_MD *h, uint8 *dst);
 
124
        void            (*free) (PX_MD *h);
125
125
        /* private */
126
126
        union
127
127
        {
138
138
 
139
139
struct px_hmac
140
140
{
141
 
        unsigned        (*result_size) (PX_HMAC * h);
142
 
        unsigned        (*block_size) (PX_HMAC * h);
143
 
        void            (*reset) (PX_HMAC * h);
144
 
        void            (*update) (PX_HMAC * h, const uint8 *data, unsigned dlen);
145
 
        void            (*finish) (PX_HMAC * h, uint8 *dst);
146
 
        void            (*free) (PX_HMAC * h);
147
 
        void            (*init) (PX_HMAC * h, const uint8 *key, unsigned klen);
 
141
        unsigned        (*result_size) (PX_HMAC *h);
 
142
        unsigned        (*block_size) (PX_HMAC *h);
 
143
        void            (*reset) (PX_HMAC *h);
 
144
        void            (*update) (PX_HMAC *h, const uint8 *data, unsigned dlen);
 
145
        void            (*finish) (PX_HMAC *h, uint8 *dst);
 
146
        void            (*free) (PX_HMAC *h);
 
147
        void            (*init) (PX_HMAC *h, const uint8 *key, unsigned klen);
148
148
 
149
149
        PX_MD      *md;
150
150
        /* private */
157
157
 
158
158
struct px_cipher
159
159
{
160
 
        unsigned        (*block_size) (PX_Cipher * c);
161
 
        unsigned        (*key_size) (PX_Cipher * c);    /* max key len */
162
 
        unsigned        (*iv_size) (PX_Cipher * c);
 
160
        unsigned        (*block_size) (PX_Cipher *c);
 
161
        unsigned        (*key_size) (PX_Cipher *c);             /* max key len */
 
162
        unsigned        (*iv_size) (PX_Cipher *c);
163
163
 
164
 
        int                     (*init) (PX_Cipher * c, const uint8 *key, unsigned klen, const uint8 *iv);
165
 
        int                     (*encrypt) (PX_Cipher * c, const uint8 *data, unsigned dlen, uint8 *res);
166
 
        int                     (*decrypt) (PX_Cipher * c, const uint8 *data, unsigned dlen, uint8 *res);
167
 
        void            (*free) (PX_Cipher * c);
 
164
        int                     (*init) (PX_Cipher *c, const uint8 *key, unsigned klen, const uint8 *iv);
 
165
        int                     (*encrypt) (PX_Cipher *c, const uint8 *data, unsigned dlen, uint8 *res);
 
166
        int                     (*decrypt) (PX_Cipher *c, const uint8 *data, unsigned dlen, uint8 *res);
 
167
        void            (*free) (PX_Cipher *c);
168
168
        /* private */
169
169
        void       *ptr;
170
170
        int                     pstat;                  /* mcrypt uses it */
172
172
 
173
173
struct px_combo
174
174
{
175
 
        int                     (*init) (PX_Combo * cx, const uint8 *key, unsigned klen,
 
175
        int                     (*init) (PX_Combo *cx, const uint8 *key, unsigned klen,
176
176
                                                                         const uint8 *iv, unsigned ivlen);
177
 
        int                     (*encrypt) (PX_Combo * cx, const uint8 *data, unsigned dlen,
178
 
                                                                                uint8 *res, unsigned *rlen);
179
 
        int                     (*decrypt) (PX_Combo * cx, const uint8 *data, unsigned dlen,
180
 
                                                                                uint8 *res, unsigned *rlen);
181
 
        unsigned        (*encrypt_len) (PX_Combo * cx, unsigned dlen);
182
 
        unsigned        (*decrypt_len) (PX_Combo * cx, unsigned dlen);
183
 
        void            (*free) (PX_Combo * cx);
 
177
        int                     (*encrypt) (PX_Combo *cx, const uint8 *data, unsigned dlen,
 
178
                                                                                uint8 *res, unsigned *rlen);
 
179
        int                     (*decrypt) (PX_Combo *cx, const uint8 *data, unsigned dlen,
 
180
                                                                                uint8 *res, unsigned *rlen);
 
181
        unsigned        (*encrypt_len) (PX_Combo *cx, unsigned dlen);
 
182
        unsigned        (*decrypt_len) (PX_Combo *cx, unsigned dlen);
 
183
        void            (*free) (PX_Combo *cx);
184
184
 
185
185
        PX_Cipher  *cipher;
186
186
        unsigned        padding;
187
187
};
188
188
 
189
 
int                     px_find_digest(const char *name, PX_MD ** res);
190
 
int                     px_find_hmac(const char *name, PX_HMAC ** res);
191
 
int                     px_find_cipher(const char *name, PX_Cipher ** res);
192
 
int                     px_find_combo(const char *name, PX_Combo ** res);
 
189
int                     px_find_digest(const char *name, PX_MD **res);
 
190
int                     px_find_hmac(const char *name, PX_HMAC **res);
 
191
int                     px_find_cipher(const char *name, PX_Cipher **res);
 
192
int                     px_find_combo(const char *name, PX_Combo **res);
193
193
 
194
194
int                     px_get_random_bytes(uint8 *dst, unsigned count);
195
195
int                     px_get_pseudo_random_bytes(uint8 *dst, unsigned count);
199
199
 
200
200
const char *px_strerror(int err);
201
201
 
202
 
const char *px_resolve_alias(const PX_Alias * aliases, const char *name);
 
202
const char *px_resolve_alias(const PX_Alias *aliases, const char *name);
203
203
 
204
204
void            px_set_debug_handler(void (*handler) (const char *));
205
205