示例#1
0
int
ep_crypto_keyenc_byname(const char *str)
{
	int enc = get_byname(KeyEncStrings, str);

	// if openssl doesn't know about it, return an error
	if (enc > 0 && EVP_get_cipherbyname(str) == NULL)
		return -1;
	return get_byname(KeyEncStrings, str);
}
示例#2
0
static int attach_one_algo(struct xfrm_algo **algpp, u8 *props,
			   struct xfrm_algo_desc *(*get_byname)(const char *, int),
			   struct nlattr *rta)
{
	struct xfrm_algo *p, *ualg;
	struct xfrm_algo_desc *algo;

	if (!rta)
		return 0;

	ualg = nla_data(rta);

	algo = get_byname(ualg->alg_name, 1);
	if (!algo)
		return -ENOSYS;
	*props = algo->desc.sadb_alg_id;

	p = kmemdup(ualg, xfrm_alg_len(ualg), GFP_KERNEL);
	if (!p)
		return -ENOMEM;

	strcpy(p->alg_name, algo->name);
	*algpp = p;
	return 0;
}
示例#3
0
int
ep_crypto_keytype_byname(const char *fmt)
{
	return get_byname(KeyTypeStrings, fmt);
}
示例#4
0
int
ep_crypto_keyform_fromstring(const char *fmt)
{
	return get_byname(KeyFormStrings, fmt);
}