Lines Matching refs:actx

77 static int afalg_create_sk(afalg_ctx *actx, const char *ciphertype,
405 static ossl_inline int afalg_set_key(afalg_ctx *actx, const unsigned char *key, in afalg_set_key() argument
409 ret = setsockopt(actx->bfd, SOL_ALG, ALG_SET_KEY, key, klen); in afalg_set_key()
418 static int afalg_create_sk(afalg_ctx *actx, const char *ciphertype, in afalg_create_sk() argument
424 actx->bfd = actx->sfd = -1; in afalg_create_sk()
431 actx->bfd = socket(AF_ALG, SOCK_SEQPACKET, 0); in afalg_create_sk()
432 if (actx->bfd == -1) { in afalg_create_sk()
438 r = bind(actx->bfd, (struct sockaddr *)&sa, sizeof(sa)); in afalg_create_sk()
445 actx->sfd = accept(actx->bfd, NULL, 0); in afalg_create_sk()
446 if (actx->sfd < 0) { in afalg_create_sk()
455 if (actx->bfd >= 0) in afalg_create_sk()
456 close(actx->bfd); in afalg_create_sk()
457 if (actx->sfd >= 0) in afalg_create_sk()
458 close(actx->sfd); in afalg_create_sk()
459 actx->bfd = actx->sfd = -1; in afalg_create_sk()
463 static int afalg_start_cipher_sk(afalg_ctx *actx, const unsigned char *in, in afalg_start_cipher_sk() argument
508 sbytes = sendmsg(actx->sfd, &msg, 0); in afalg_start_cipher_sk()
519 ret = vmsplice(actx->zc_pipe[1], &iov, 1, SPLICE_F_GIFT); in afalg_start_cipher_sk()
525 ret = splice(actx->zc_pipe[0], NULL, actx->sfd, NULL, inl, 0); in afalg_start_cipher_sk()
535 sbytes = sendmsg(actx->sfd, &msg, 0); in afalg_start_cipher_sk()
557 afalg_ctx *actx; in afalg_cipher_init() local
570 actx = EVP_CIPHER_CTX_get_cipher_data(ctx); in afalg_cipher_init()
571 if (actx == NULL) { in afalg_cipher_init()
596 ret = afalg_create_sk(actx, "skcipher", ciphername); in afalg_cipher_init()
602 ret = afalg_set_key(actx, key, len); in afalg_cipher_init()
607 if (afalg_init_aio(&actx->aio) == 0) in afalg_cipher_init()
611 pipe(actx->zc_pipe); in afalg_cipher_init()
614 actx->init_done = MAGIC_INIT_NUM; in afalg_cipher_init()
619 close(actx->sfd); in afalg_cipher_init()
620 close(actx->bfd); in afalg_cipher_init()
627 afalg_ctx *actx; in afalg_do_cipher() local
637 actx = (afalg_ctx *) EVP_CIPHER_CTX_get_cipher_data(ctx); in afalg_do_cipher()
638 if (actx == NULL || actx->init_done != MAGIC_INIT_NUM) { in afalg_do_cipher()
653 ret = afalg_start_cipher_sk(actx, (unsigned char *)in, inl, in afalg_do_cipher()
661 ret = afalg_fin_cipher_aio(&actx->aio, actx->sfd, out, inl); in afalg_do_cipher()
677 afalg_ctx *actx; in afalg_cipher_cleanup() local
685 actx = (afalg_ctx *) EVP_CIPHER_CTX_get_cipher_data(ctx); in afalg_cipher_cleanup()
686 if (actx == NULL || actx->init_done != MAGIC_INIT_NUM) in afalg_cipher_cleanup()
689 close(actx->sfd); in afalg_cipher_cleanup()
690 close(actx->bfd); in afalg_cipher_cleanup()
692 close(actx->zc_pipe[0]); in afalg_cipher_cleanup()
693 close(actx->zc_pipe[1]); in afalg_cipher_cleanup()
696 if (actx->aio.mode == MODE_SYNC) in afalg_cipher_cleanup()
697 close(actx->aio.efd); in afalg_cipher_cleanup()
698 io_destroy(actx->aio.aio_ctx); in afalg_cipher_cleanup()