/* Don't allocate memory. Set pointers to data within * the given buffer
*/
params->key = (void *)ptr;
params->p = (void *)(ptr + params->key_size);
params->g = (void *)(ptr + params->key_size + params->p_size);
return 0;
}
int crypto_dh_decode_key(constchar *buf, unsignedint len, struct dh *params)
{ int err;
err = __crypto_dh_decode_key(buf, len, params); if (err) return err;
/* * Don't permit the buffer for 'key' or 'g' to be larger than 'p', since * some drivers assume otherwise.
*/ if (params->key_size > params->p_size ||
params->g_size > params->p_size) return -EINVAL;
/* * Don't permit 'p' to be 0. It's not a prime number, and it's subject * to corner cases such as 'mod 0' being undefined or * crypto_kpp_maxsize() returning 0.
*/ if (memchr_inv(params->p, 0, params->p_size) == NULL) return -EINVAL;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.