diff options
Diffstat (limited to 'src/lib/libcrypto/man/HMAC.3')
-rw-r--r-- | src/lib/libcrypto/man/HMAC.3 | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/src/lib/libcrypto/man/HMAC.3 b/src/lib/libcrypto/man/HMAC.3 new file mode 100644 index 0000000000..577070afb0 --- /dev/null +++ b/src/lib/libcrypto/man/HMAC.3 | |||
@@ -0,0 +1,206 @@ | |||
1 | .Dd $Mdocdate: November 3 2016 $ | ||
2 | .Dt HMAC 3 | ||
3 | .Os | ||
4 | .Sh NAME | ||
5 | .Nm HMAC , | ||
6 | .Nm HMAC_Init , | ||
7 | .Nm HMAC_Update , | ||
8 | .Nm HMAC_Final , | ||
9 | .Nm HMAC_cleanup | ||
10 | .Nd HMAC message authentication code | ||
11 | .Sh SYNOPSIS | ||
12 | .In openssl/hmac.h | ||
13 | .Ft unsigned char * | ||
14 | .Fo HMAC | ||
15 | .Fa "const EVP_MD *evp_md" | ||
16 | .Fa "const void *key" | ||
17 | .Fa "int key_len" | ||
18 | .Fa "const unsigned char *d" | ||
19 | .Fa "int n" | ||
20 | .Fa "unsigned char *md" | ||
21 | .Fa "unsigned int *md_len" | ||
22 | .Fc | ||
23 | .Ft void | ||
24 | .Fo HMAC_CTX_init | ||
25 | .Fa "HMAC_CTX *ctx" | ||
26 | .Fc | ||
27 | .Ft int | ||
28 | .Fo HMAC_Init | ||
29 | .Fa "HMAC_CTX *ctx" | ||
30 | .Fa "const void *key" | ||
31 | .Fa "int key_len" | ||
32 | .Fa "const EVP_MD *md" | ||
33 | .Fc | ||
34 | .Ft int | ||
35 | .Fo HMAC_Init_ex | ||
36 | .Fa "HMAC_CTX *ctx" | ||
37 | .Fa "const void *key" | ||
38 | .Fa "int key_len" | ||
39 | .Fa "const EVP_MD *md" | ||
40 | .Fa "ENGINE *impl" | ||
41 | .Fc | ||
42 | .Ft int | ||
43 | .Fo HMAC_Update | ||
44 | .Fa "HMAC_CTX *ctx" | ||
45 | .Fa "const unsigned char *data" | ||
46 | .Fa "int len" | ||
47 | .Fc | ||
48 | .Ft int | ||
49 | .Fo HMAC_Final | ||
50 | .Fa "HMAC_CTX *ctx" | ||
51 | .Fa "unsigned char *md" | ||
52 | .Fa "unsigned int *len" | ||
53 | .Fc | ||
54 | .Ft void | ||
55 | .Fo HMAC_CTX_cleanup | ||
56 | .Fa "HMAC_CTX *ctx" | ||
57 | .Fc | ||
58 | .Ft void | ||
59 | .Fo HMAC_cleanup | ||
60 | .Fa "HMAC_CTX *ctx" | ||
61 | .Fc | ||
62 | .Sh DESCRIPTION | ||
63 | HMAC is a MAC (message authentication code), i.e. a keyed hash | ||
64 | function used for message authentication, which is based on a hash | ||
65 | function. | ||
66 | .Pp | ||
67 | .Fn HMAC | ||
68 | computes the message authentication code of the | ||
69 | .Fa n | ||
70 | bytes at | ||
71 | .Fa d | ||
72 | using the hash function | ||
73 | .Fa evp_md | ||
74 | and the key | ||
75 | .Fa key | ||
76 | which is | ||
77 | .Fa key_len | ||
78 | bytes long. | ||
79 | .Pp | ||
80 | It places the result in | ||
81 | .Fa md , | ||
82 | which must have space for the output of the hash function, which is no | ||
83 | more than | ||
84 | .Dv EVP_MAX_MD_SIZE | ||
85 | bytes. | ||
86 | If | ||
87 | .Fa md | ||
88 | is | ||
89 | .Dv NULL , | ||
90 | the digest is placed in a static array. | ||
91 | The size of the output is placed in | ||
92 | .Fa md_len , | ||
93 | unless it is | ||
94 | .Dv NULL . | ||
95 | .Pp | ||
96 | .Fa evp_md | ||
97 | can be | ||
98 | .Xr EVP_sha1 3 , | ||
99 | .Xr EVP_ripemd160 3 , | ||
100 | etc. | ||
101 | .Pp | ||
102 | .Fn HMAC_CTX_init | ||
103 | initialises a | ||
104 | .Vt HMAC_CTX | ||
105 | before first use. | ||
106 | It must be called. | ||
107 | .Pp | ||
108 | .Fn HMAC_CTX_cleanup | ||
109 | erases the key and other data from the | ||
110 | .Vt HMAC_CTX | ||
111 | and releases any associated resources. | ||
112 | It must be called when an | ||
113 | .Vt HMAC_CTX | ||
114 | is no longer required. | ||
115 | .Pp | ||
116 | .Fn HMAC_cleanup | ||
117 | is an alias for | ||
118 | .Fn HMAC_CTX_cleanup | ||
119 | included for backward compatibility with 0.9.6b. | ||
120 | It is deprecated. | ||
121 | .Pp | ||
122 | The following functions may be used if the message is not completely | ||
123 | stored in memory: | ||
124 | .Pp | ||
125 | .Fn HMAC_Init | ||
126 | initializes a | ||
127 | .Vt HMAC_CTX | ||
128 | structure to use the hash function | ||
129 | .Fa evp_md | ||
130 | and the key | ||
131 | .Fa key | ||
132 | which is | ||
133 | .Fa key_len | ||
134 | bytes long. | ||
135 | It is deprecated and only included for backward compatibility with | ||
136 | OpenSSL 0.9.6b. | ||
137 | .Pp | ||
138 | .Fn HMAC_Init_ex | ||
139 | initializes or reuses a | ||
140 | .Vt HMAC_CTX | ||
141 | structure to use the function | ||
142 | .Fa evp_md | ||
143 | and key | ||
144 | .Fa key . | ||
145 | Either can be | ||
146 | .Dv NULL , | ||
147 | in which case the existing one will be reused. | ||
148 | .Fn HMAC_CTX_init | ||
149 | must have been called before the first use of an | ||
150 | .Vt HMAC_CTX | ||
151 | in this function. | ||
152 | .Sy N.B. | ||
153 | .Fn HMAC_Init | ||
154 | had this undocumented behaviour in previous versions of OpenSSL - | ||
155 | failure to switch to | ||
156 | .Fn HMAC_Init_ex | ||
157 | in programs that expect it will cause them to stop working. | ||
158 | .Pp | ||
159 | .Fn HMAC_Update | ||
160 | can be called repeatedly with chunks of the message to be authenticated | ||
161 | .Pq Fa len No bytes at Fa data . | ||
162 | .Pp | ||
163 | .Fn HMAC_Final | ||
164 | places the message authentication code in | ||
165 | .Fa md , | ||
166 | which must have space for the hash function output. | ||
167 | .Sh RETURN VALUES | ||
168 | .Fn HMAC | ||
169 | returns a pointer to the message authentication code or | ||
170 | .Dv NULL | ||
171 | if an error occurred. | ||
172 | .Pp | ||
173 | .Fn HMAC_Init_ex , | ||
174 | .Fn HMAC_Update , | ||
175 | and | ||
176 | .Fn HMAC_Final | ||
177 | return 1 for success or 0 if an error occurred. | ||
178 | .Pp | ||
179 | .Fn HMAC_CTX_init | ||
180 | and | ||
181 | .Fn HMAC_CTX_cleanup | ||
182 | do not return values. | ||
183 | .Sh SEE ALSO | ||
184 | .Xr evp 3 | ||
185 | .Sh STANDARDS | ||
186 | RFC 2104 | ||
187 | .Sh HISTORY | ||
188 | .Fn HMAC , | ||
189 | .Fn HMAC_Init , | ||
190 | .Fn HMAC_Update , | ||
191 | .Fn HMAC_Final , | ||
192 | and | ||
193 | .Fn HMAC_cleanup | ||
194 | are available since SSLeay 0.9.0. | ||
195 | .Pp | ||
196 | .Fn HMAC_CTX_init , | ||
197 | .Fn HMAC_Init_ex , | ||
198 | and | ||
199 | .Fn HMAC_CTX_cleanup | ||
200 | are available since OpenSSL 0.9.7. | ||
201 | .Pp | ||
202 | .Fn HMAC_Init_ex , | ||
203 | .Fn HMAC_Update , | ||
204 | and | ||
205 | .Fn HMAC_Final | ||
206 | did not return values in versions of OpenSSL before 1.0.0. | ||