PostgreSQL Source Code: contrib/pgcrypto/px-hmac.c Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
33
34#include "px.h"
35
36#define HMAC_IPAD 0x36
37#define HMAC_OPAD 0x5C
38
39static unsigned
41{
43}
44
45static unsigned
47{
49}
50
51static void
53{
54 unsigned bs,
55 i;
58
61
62 if (klen > bs)
63 {
67 }
68 else
69 memcpy(keybuf, key, klen);
70
72 {
75 }
76
79
81}
82
83static void
85{
88
91}
92
93static void
95{
97}
98
99static void
101{
103 unsigned bs,
104 hlen;
106
109
111
113
118
121}
122
123static void
125{
126 unsigned bs;
127
130
136}
137
138
139
140
141int
143{
147 unsigned bs;
148
151 return err;
152
154 if (bs < 2)
155 {
158 }
159
160 h = palloc(sizeof(*h));
163 h->md = md;
164
172
173 *res = h;
174
175 return 0;
176}
void err(int eval, const char *fmt,...)
void pfree(void *pointer)
void * palloc0(Size size)
int px_find_digest(const char *name, PX_MD **res)
int px_find_hmac(const char *name, PX_HMAC **res)
static unsigned hmac_result_size(PX_HMAC *h)
static void hmac_init(PX_HMAC *h, const uint8 *key, unsigned klen)
static void hmac_finish(PX_HMAC *h, uint8 *dst)
static void hmac_update(PX_HMAC *h, const uint8 *data, unsigned dlen)
static void hmac_free(PX_HMAC *h)
static unsigned hmac_block_size(PX_HMAC *h)
static void hmac_reset(PX_HMAC *h)
void px_memset(void *ptr, int c, size_t len)
#define px_md_finish(md, buf)
#define PXE_HASH_UNUSABLE_FOR_HMAC
#define px_md_update(md, data, dlen)
#define px_md_result_size(md)
#define px_md_block_size(md)
unsigned(* block_size)(PX_HMAC *h)
void(* finish)(PX_HMAC *h, uint8 *dst)
void(* init)(PX_HMAC *h, const uint8 *key, unsigned klen)
unsigned(* result_size)(PX_HMAC *h)
void(* update)(PX_HMAC *h, const uint8 *data, unsigned dlen)
void(* reset)(PX_HMAC *h)