/** Initialize the TSM security module */ void init_tsm(void) { struct snmp_secmod_def *def; int ret; def = SNMP_MALLOC_STRUCT(snmp_secmod_def); if (!def) { snmp_log(LOG_ERR, "Unable to malloc snmp_secmod struct, not registering TSM\n"); return; } def->encode_reverse = tsm_rgenerate_out_msg; def->decode = tsm_process_in_msg; def->session_open = tsm_session_init; def->pdu_free_state_ref = tsm_free_state_ref; def->pdu_clone = tsm_clone_pdu; def->pdu_free = tsm_free_pdu; def->probe_engineid = snmpv3_probe_contextEngineID_rfc5343; DEBUGMSGTL(("tsm","registering ourselves\n")); ret = register_sec_mod(NETSNMP_TSM_SECURITY_MODEL, "tsm", def); DEBUGMSGTL(("tsm"," returned %d\n", ret)); netsnmp_ds_register_config(ASN_BOOLEAN, "snmp", "tsmUseTransportPrefix", NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_TSM_USE_PREFIX); }
/** Initialize the LOCALSM security module */ void init_localsm(void) { struct snmp_secmod_def *def; int ret; def = SNMP_MALLOC_STRUCT(snmp_secmod_def); if (!def) { snmp_log(LOG_ERR, "Unable to malloc snmp_secmod struct, not registering LOCALSM\n"); return; } def->encode_reverse = localsm_rgenerate_out_msg; def->decode = localsm_process_in_msg; def->session_open = localsm_session_init; def->pdu_free_state_ref = localsm_free_state_ref; def->pdu_free = localsm_free_pdu; def->pdu_clone = localsm_clone_pdu; DEBUGMSGTL(("localsm","registering ourselves\n")); ret = register_sec_mod(NETSNMP_LOCALSM_SECURITY_MODEL, "localsm", def); DEBUGMSGTL(("localsm"," returned %d\n", ret)); }
void init_ksm(void) { krb5_error_code retval; struct snmp_secmod_def *def; int i; netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defKSMKeytab", NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_KSM_KEYTAB); netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defKSMServiceName", NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_KSM_SERVICE_NAME); snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_POST_READ_CONFIG, init_snmpksm_post_config, NULL); if (kcontext == NULL) { retval = krb5_init_context(&kcontext); if (retval) { DEBUGMSGTL(("ksm", "krb5_init_context failed (%s), not " "registering KSM\n", error_message(retval))); return; } } for (i = 0; i < HASHSIZE; i++) ksm_hash_table[i] = NULL; def = SNMP_MALLOC_STRUCT(snmp_secmod_def); if (!def) { DEBUGMSGTL(("ksm", "Unable to malloc snmp_secmod struct, not " "registering KSM\n")); return; } def->encode_reverse = ksm_rgenerate_out_msg; def->decode = ksm_process_in_msg; def->session_open = ksm_session_init; def->pdu_free_state_ref = ksm_free_state_ref; def->pdu_free = ksm_free_pdu; def->pdu_clone = ksm_clone_pdu; register_sec_mod(2066432, "ksm", def); }