diff options
Diffstat (limited to 'include/net-snmp/library/keytools.h')
-rw-r--r-- | include/net-snmp/library/keytools.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/include/net-snmp/library/keytools.h b/include/net-snmp/library/keytools.h new file mode 100644 index 0000000..44acc48 --- /dev/null +++ b/include/net-snmp/library/keytools.h @@ -0,0 +1,64 @@ +/* + * keytools.h + */ + +#ifndef _KEYTOOLS_H +#define _KEYTOOLS_H + +#ifdef __cplusplus +extern "C" { +#endif + + +#define USM_LENGTH_EXPANDED_PASSPHRASE (1024 * 1024) /* 1Meg. */ + +#define USM_LENGTH_KU_HASHBLOCK 64 /* In bytes. */ + +#define USM_LENGTH_P_MIN 8 /* In characters. */ + /* + * Recommended practice given in <draft-ietf-snmpv3-usm-v2-02.txt>, + * * Section 11.2 "Defining Users". Move into cmdline app argument + * * parsing, and out of the internal routine? XXX + */ + + /* + * Prototypes.h + */ + NETSNMP_IMPORT + int generate_Ku(const oid * hashtype, u_int hashtype_len, + const u_char * P, size_t pplen, + u_char * Ku, size_t * kulen); + + NETSNMP_IMPORT + int generate_kul(const oid * hashtype, u_int hashtype_len, + const u_char * engineID, size_t engineID_len, + const u_char * Ku, size_t ku_len, + u_char * Kul, size_t * kul_len); + + NETSNMP_IMPORT + int encode_keychange(const oid * hashtype, + u_int hashtype_len, u_char * oldkey, + size_t oldkey_len, u_char * newkey, + size_t newkey_len, u_char * kcstring, + size_t * kcstring_len); + + NETSNMP_IMPORT + int decode_keychange(const oid * hashtype, + u_int hashtype_len, u_char * oldkey, + size_t oldkey_len, u_char * kcstring, + size_t kcstring_len, u_char * newkey, + size_t * newkey_len); + + + /* + * All functions devolve to the following block if we can't do cryptography + */ +#define _KEYTOOLS_NOT_AVAILABLE \ +{ \ + return SNMPERR_KT_NOT_AVAILABLE; \ +} + +#ifdef __cplusplus +} +#endif +#endif /* _KEYTOOLS_H */ |