ccm.c (b9f76dddb1f9f70e008b982381bbc9a67c9b8c66) | ccm.c (cd900f0cacd7601dabdd028e8cbdbf2a7041cee2) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * CCM: Counter with CBC-MAC 4 * 5 * (C) Copyright IBM Corp. 2007 - Joy Latten <latten@us.ibm.com> 6 */ 7 8#include <crypto/internal/aead.h> --- 720 unchanged lines hidden (view full) --- 729 crypto_drop_aead(aead_instance_ctx(inst)); 730 kfree(inst); 731} 732 733static int crypto_rfc4309_create(struct crypto_template *tmpl, 734 struct rtattr **tb) 735{ 736 struct crypto_attr_type *algt; | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * CCM: Counter with CBC-MAC 4 * 5 * (C) Copyright IBM Corp. 2007 - Joy Latten <latten@us.ibm.com> 6 */ 7 8#include <crypto/internal/aead.h> --- 720 unchanged lines hidden (view full) --- 729 crypto_drop_aead(aead_instance_ctx(inst)); 730 kfree(inst); 731} 732 733static int crypto_rfc4309_create(struct crypto_template *tmpl, 734 struct rtattr **tb) 735{ 736 struct crypto_attr_type *algt; |
737 u32 mask; |
|
737 struct aead_instance *inst; 738 struct crypto_aead_spawn *spawn; 739 struct aead_alg *alg; 740 const char *ccm_name; 741 int err; 742 743 algt = crypto_get_attr_type(tb); 744 if (IS_ERR(algt)) 745 return PTR_ERR(algt); 746 747 if ((algt->type ^ CRYPTO_ALG_TYPE_AEAD) & algt->mask) 748 return -EINVAL; 749 | 738 struct aead_instance *inst; 739 struct crypto_aead_spawn *spawn; 740 struct aead_alg *alg; 741 const char *ccm_name; 742 int err; 743 744 algt = crypto_get_attr_type(tb); 745 if (IS_ERR(algt)) 746 return PTR_ERR(algt); 747 748 if ((algt->type ^ CRYPTO_ALG_TYPE_AEAD) & algt->mask) 749 return -EINVAL; 750 |
751 mask = crypto_requires_sync(algt->type, algt->mask); 752 |
|
750 ccm_name = crypto_attr_alg_name(tb[1]); 751 if (IS_ERR(ccm_name)) 752 return PTR_ERR(ccm_name); 753 754 inst = kzalloc(sizeof(*inst) + sizeof(*spawn), GFP_KERNEL); 755 if (!inst) 756 return -ENOMEM; 757 758 spawn = aead_instance_ctx(inst); | 753 ccm_name = crypto_attr_alg_name(tb[1]); 754 if (IS_ERR(ccm_name)) 755 return PTR_ERR(ccm_name); 756 757 inst = kzalloc(sizeof(*inst) + sizeof(*spawn), GFP_KERNEL); 758 if (!inst) 759 return -ENOMEM; 760 761 spawn = aead_instance_ctx(inst); |
759 crypto_set_aead_spawn(spawn, aead_crypto_instance(inst)); 760 err = crypto_grab_aead(spawn, ccm_name, 0, 761 crypto_requires_sync(algt->type, algt->mask)); | 762 err = crypto_grab_aead(spawn, aead_crypto_instance(inst), 763 ccm_name, 0, mask); |
762 if (err) 763 goto out_free_inst; 764 765 alg = crypto_spawn_aead_alg(spawn); 766 767 err = -EINVAL; 768 769 /* We only support 16-byte blocks. */ --- 232 unchanged lines hidden --- | 764 if (err) 765 goto out_free_inst; 766 767 alg = crypto_spawn_aead_alg(spawn); 768 769 err = -EINVAL; 770 771 /* We only support 16-byte blocks. */ --- 232 unchanged lines hidden --- |