Lines Matching defs:cctx
78 static int sss_nss_crypto_ctx_destructor(struct sss_nss_crypto_ctx *cctx)
80 if (cctx->ectx) PK11_DestroyContext(cctx->ectx, PR_TRUE);
81 if (cctx->sparam) SECITEM_FreeItem(cctx->sparam, PR_TRUE);
82 if (cctx->slot) PK11_FreeSlot(cctx->slot);
83 if (cctx->keyobj) PK11_FreeSymKey(cctx->keyobj);
154 struct sss_nss_crypto_ctx *cctx;
157 cctx = talloc_zero(mem_ctx, struct sss_nss_crypto_ctx);
158 if (!cctx) {
161 talloc_set_destructor(cctx, sss_nss_crypto_ctx_destructor);
163 cctx->slot = PK11_GetBestSlot(mech_props->cipher, NULL);
164 if (cctx->slot == NULL) {
172 cctx->key = talloc(cctx, SECItem);
173 if (cctx->key == NULL) {
180 MAKE_SECITEM(key, keylen, cctx->key);
182 ret = generate_random_key(cctx, cctx->slot,
183 mech_props, &cctx->key);
194 cctx->iv = talloc(cctx, SECItem);
195 if (cctx->iv == NULL) {
201 MAKE_SECITEM(iv, ivlen, cctx->iv);
203 ret = generate_random_key(cctx, cctx->slot,
204 mech_props, &cctx->iv);
214 *_cctx = cctx;
216 if (ret) talloc_zfree(cctx);
222 struct sss_nss_crypto_ctx *cctx)
242 cctx->keyobj = PK11_ImportSymKey(cctx->slot, mech_props->cipher,
243 PK11_OriginUnwrap, op, cctx->key, NULL);
244 if (cctx->keyobj == NULL) {
253 cctx->sparam = PK11_ParamFromIV(mech_props->cipher, cctx->iv);
254 if (cctx->sparam == NULL) {
262 cctx->sparam = SECITEM_AllocItem(NULL, NULL, 0);
263 if (cctx->sparam == NULL) {
268 MAKE_SECITEM(NULL, 0, cctx->sparam);
272 cctx->ectx = PK11_CreateContextBySymKey(mech_props->cipher, op,
273 cctx->keyobj, cctx->sparam);
274 if (cctx->ectx == NULL) {