xref: /openbsd-src/usr.bin/snmp/usm.h (revision f5e30c24fb39b1e4c35de275cc74157de869b377)
1*f5e30c24Smartijn /*	$OpenBSD: usm.h,v 1.3 2019/09/18 09:54:36 martijn Exp $	*/
2b89ba26fSmartijn 
3b89ba26fSmartijn /*
4b89ba26fSmartijn  * Copyright (c) 2019 Martijn van Duren <martijn@openbsd.org>
5b89ba26fSmartijn  *
6b89ba26fSmartijn  * Permission to use, copy, modify, and distribute this software for any
7b89ba26fSmartijn  * purpose with or without fee is hereby granted, provided that the above
8b89ba26fSmartijn  * copyright notice and this permission notice appear in all copies.
9b89ba26fSmartijn  *
10b89ba26fSmartijn  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11b89ba26fSmartijn  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12b89ba26fSmartijn  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13b89ba26fSmartijn  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14b89ba26fSmartijn  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15b89ba26fSmartijn  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16b89ba26fSmartijn  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17b89ba26fSmartijn  */
18b89ba26fSmartijn 
19b89ba26fSmartijn #include "snmp.h"
20b89ba26fSmartijn 
214f098f75Smartijn enum usm_key_level {
224f098f75Smartijn 	USM_KEY_UNSET = 0,
234f098f75Smartijn 	USM_KEY_PASSWORD,
244f098f75Smartijn 	USM_KEY_MASTER,
254f098f75Smartijn 	USM_KEY_LOCALIZED
264f098f75Smartijn };
274f098f75Smartijn 
28b89ba26fSmartijn struct snmp_sec *usm_init(const char *, size_t);
294f098f75Smartijn int usm_setauth(struct snmp_sec *, const EVP_MD *, const char *, size_t,
304f098f75Smartijn     enum usm_key_level);
31*f5e30c24Smartijn int usm_setpriv(struct snmp_sec *, const EVP_CIPHER *, const char *, size_t,
32*f5e30c24Smartijn     enum usm_key_level);
33b89ba26fSmartijn int usm_setengineid(struct snmp_sec *, char *, size_t);
34b89ba26fSmartijn int usm_setbootstime(struct snmp_sec *, uint32_t, uint32_t);
35