Lines Matching defs:pdu

90 snmp_pdu_calc_digest(const struct snmp_pdu *pdu, uint8_t *digest)
99 err = snmp_digest_init(&pdu->user, &ctx, &dtype, &keylen);
105 memset(pdu->digest_ptr, 0, sizeof(pdu->msg_digest));
106 memcpy(extkey, pdu->user.auth_key, keylen);
115 EVP_DigestUpdate(&ctx, pdu->outer_ptr, pdu->outer_len) != 1 ||
141 snmp_pdu_cipher_init(const struct snmp_pdu *pdu, int32_t len,
147 if (pdu->user.priv_proto == SNMP_PRIV_DES) {
151 memcpy(piv, pdu->msg_salt, sizeof(pdu->msg_salt));
153 piv[i] = piv[i] ^ pdu->user.priv_key[8 + i];
154 } else if (pdu->user.priv_proto == SNMP_PRIV_AES) {
156 netint = htonl(pdu->engine.engine_boots);
159 netint = htonl(pdu->engine.engine_time);
162 memcpy(piv, pdu->msg_salt, sizeof(pdu->msg_salt));
163 } else if (pdu->user.priv_proto == SNMP_PRIV_NOPRIV)
166 snmp_error("unknown privacy option - %d", pdu->user.priv_proto);
174 snmp_pdu_encrypt(const struct snmp_pdu *pdu)
181 err = snmp_pdu_cipher_init(pdu, pdu->scoped_len, &ctype, iv);
187 if (EVP_EncryptInit(&ctx, ctype, pdu->user.priv_key, iv) != 1)
190 if (EVP_EncryptUpdate(&ctx, pdu->scoped_ptr, &olen, pdu->scoped_ptr,
191 pdu->scoped_len) != 1 ||
192 EVP_EncryptFinal(&ctx, pdu->scoped_ptr + olen, &olen) != 1) {
202 snmp_pdu_decrypt(const struct snmp_pdu *pdu)
209 err = snmp_pdu_cipher_init(pdu, pdu->scoped_len, &ctype, iv);
215 if (EVP_DecryptInit(&ctx, ctype, pdu->user.priv_key, iv) != 1 ||
219 if (EVP_DecryptUpdate(&ctx, pdu->scoped_ptr, &olen, pdu->scoped_ptr,
220 pdu->scoped_len) != 1 ||
221 EVP_DecryptFinal(&ctx, pdu->scoped_ptr + olen, &olen) != 1) {
342 snmp_pdu_calc_digest(const struct snmp_pdu *pdu, uint8_t *digest __unused)
344 if (pdu->user.auth_proto != SNMP_AUTH_NOAUTH)
352 snmp_pdu_encrypt(const struct snmp_pdu *pdu)
354 if (pdu->user.priv_proto != SNMP_PRIV_NOPRIV)
361 snmp_pdu_decrypt(const struct snmp_pdu *pdu)
363 if (pdu->user.priv_proto != SNMP_PRIV_NOPRIV)