gcm.c (b9f76dddb1f9f70e008b982381bbc9a67c9b8c66) | gcm.c (cd900f0cacd7601dabdd028e8cbdbf2a7041cee2) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * GCM: Galois/Counter Mode. 4 * 5 * Copyright (c) 2007 Nokia Siemens Networks - Mikko Herranen <mh1@iki.fi> 6 */ 7 8#include <crypto/gf128mul.h> --- 842 unchanged lines hidden (view full) --- 851 crypto_drop_aead(aead_instance_ctx(inst)); 852 kfree(inst); 853} 854 855static int crypto_rfc4106_create(struct crypto_template *tmpl, 856 struct rtattr **tb) 857{ 858 struct crypto_attr_type *algt; | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * GCM: Galois/Counter Mode. 4 * 5 * Copyright (c) 2007 Nokia Siemens Networks - Mikko Herranen <mh1@iki.fi> 6 */ 7 8#include <crypto/gf128mul.h> --- 842 unchanged lines hidden (view full) --- 851 crypto_drop_aead(aead_instance_ctx(inst)); 852 kfree(inst); 853} 854 855static int crypto_rfc4106_create(struct crypto_template *tmpl, 856 struct rtattr **tb) 857{ 858 struct crypto_attr_type *algt; |
859 u32 mask; |
|
859 struct aead_instance *inst; 860 struct crypto_aead_spawn *spawn; 861 struct aead_alg *alg; 862 const char *ccm_name; 863 int err; 864 865 algt = crypto_get_attr_type(tb); 866 if (IS_ERR(algt)) 867 return PTR_ERR(algt); 868 869 if ((algt->type ^ CRYPTO_ALG_TYPE_AEAD) & algt->mask) 870 return -EINVAL; 871 | 860 struct aead_instance *inst; 861 struct crypto_aead_spawn *spawn; 862 struct aead_alg *alg; 863 const char *ccm_name; 864 int err; 865 866 algt = crypto_get_attr_type(tb); 867 if (IS_ERR(algt)) 868 return PTR_ERR(algt); 869 870 if ((algt->type ^ CRYPTO_ALG_TYPE_AEAD) & algt->mask) 871 return -EINVAL; 872 |
873 mask = crypto_requires_sync(algt->type, algt->mask); 874 |
|
872 ccm_name = crypto_attr_alg_name(tb[1]); 873 if (IS_ERR(ccm_name)) 874 return PTR_ERR(ccm_name); 875 876 inst = kzalloc(sizeof(*inst) + sizeof(*spawn), GFP_KERNEL); 877 if (!inst) 878 return -ENOMEM; 879 880 spawn = aead_instance_ctx(inst); | 875 ccm_name = crypto_attr_alg_name(tb[1]); 876 if (IS_ERR(ccm_name)) 877 return PTR_ERR(ccm_name); 878 879 inst = kzalloc(sizeof(*inst) + sizeof(*spawn), GFP_KERNEL); 880 if (!inst) 881 return -ENOMEM; 882 883 spawn = aead_instance_ctx(inst); |
881 crypto_set_aead_spawn(spawn, aead_crypto_instance(inst)); 882 err = crypto_grab_aead(spawn, ccm_name, 0, 883 crypto_requires_sync(algt->type, algt->mask)); | 884 err = crypto_grab_aead(spawn, aead_crypto_instance(inst), 885 ccm_name, 0, mask); |
884 if (err) 885 goto out_free_inst; 886 887 alg = crypto_spawn_aead_alg(spawn); 888 889 err = -EINVAL; 890 891 /* Underlying IV size must be 12. */ --- 190 unchanged lines hidden (view full) --- 1082 1083 kfree(inst); 1084} 1085 1086static int crypto_rfc4543_create(struct crypto_template *tmpl, 1087 struct rtattr **tb) 1088{ 1089 struct crypto_attr_type *algt; | 886 if (err) 887 goto out_free_inst; 888 889 alg = crypto_spawn_aead_alg(spawn); 890 891 err = -EINVAL; 892 893 /* Underlying IV size must be 12. */ --- 190 unchanged lines hidden (view full) --- 1084 1085 kfree(inst); 1086} 1087 1088static int crypto_rfc4543_create(struct crypto_template *tmpl, 1089 struct rtattr **tb) 1090{ 1091 struct crypto_attr_type *algt; |
1092 u32 mask; |
|
1090 struct aead_instance *inst; 1091 struct crypto_aead_spawn *spawn; 1092 struct aead_alg *alg; 1093 struct crypto_rfc4543_instance_ctx *ctx; 1094 const char *ccm_name; 1095 int err; 1096 1097 algt = crypto_get_attr_type(tb); 1098 if (IS_ERR(algt)) 1099 return PTR_ERR(algt); 1100 1101 if ((algt->type ^ CRYPTO_ALG_TYPE_AEAD) & algt->mask) 1102 return -EINVAL; 1103 | 1093 struct aead_instance *inst; 1094 struct crypto_aead_spawn *spawn; 1095 struct aead_alg *alg; 1096 struct crypto_rfc4543_instance_ctx *ctx; 1097 const char *ccm_name; 1098 int err; 1099 1100 algt = crypto_get_attr_type(tb); 1101 if (IS_ERR(algt)) 1102 return PTR_ERR(algt); 1103 1104 if ((algt->type ^ CRYPTO_ALG_TYPE_AEAD) & algt->mask) 1105 return -EINVAL; 1106 |
1107 mask = crypto_requires_sync(algt->type, algt->mask); 1108 |
|
1104 ccm_name = crypto_attr_alg_name(tb[1]); 1105 if (IS_ERR(ccm_name)) 1106 return PTR_ERR(ccm_name); 1107 1108 inst = kzalloc(sizeof(*inst) + sizeof(*ctx), GFP_KERNEL); 1109 if (!inst) 1110 return -ENOMEM; 1111 1112 ctx = aead_instance_ctx(inst); 1113 spawn = &ctx->aead; | 1109 ccm_name = crypto_attr_alg_name(tb[1]); 1110 if (IS_ERR(ccm_name)) 1111 return PTR_ERR(ccm_name); 1112 1113 inst = kzalloc(sizeof(*inst) + sizeof(*ctx), GFP_KERNEL); 1114 if (!inst) 1115 return -ENOMEM; 1116 1117 ctx = aead_instance_ctx(inst); 1118 spawn = &ctx->aead; |
1114 crypto_set_aead_spawn(spawn, aead_crypto_instance(inst)); 1115 err = crypto_grab_aead(spawn, ccm_name, 0, 1116 crypto_requires_sync(algt->type, algt->mask)); | 1119 err = crypto_grab_aead(spawn, aead_crypto_instance(inst), 1120 ccm_name, 0, mask); |
1117 if (err) 1118 goto out_free_inst; 1119 1120 alg = crypto_spawn_aead_alg(spawn); 1121 1122 err = -EINVAL; 1123 1124 /* Underlying IV size must be 12. */ --- 106 unchanged lines hidden --- | 1121 if (err) 1122 goto out_free_inst; 1123 1124 alg = crypto_spawn_aead_alg(spawn); 1125 1126 err = -EINVAL; 1127 1128 /* Underlying IV size must be 12. */ --- 106 unchanged lines hidden --- |