Lines Matching refs:ses

69 static int aesni_cipher_setup(struct aesni_session *ses,
71 static int aesni_cipher_process(struct aesni_session *ses, struct cryptop *crp);
72 static int aesni_cipher_crypt(struct aesni_session *ses, struct cryptop *crp,
74 static int aesni_cipher_mac(struct aesni_session *ses, struct cryptop *crp,
286 struct aesni_session *ses;
289 ses = crypto_get_driver_session(cses);
300 error = aesni_cipher_setup(ses, csp);
312 struct aesni_session *ses;
315 ses = crypto_get_driver_session(crp->crp_session);
317 error = aesni_cipher_process(ses, crp);
484 aesni_authprepare(struct aesni_session *ses, int klen)
489 if ((ses->hmac && klen == 0) || (!ses->hmac && klen != 0))
495 aesni_cipher_setup(struct aesni_session *ses,
502 schedbase = (uint8_t *)roundup2((uintptr_t)ses->schedules,
504 ses->enc_schedule = schedbase;
505 ses->dec_schedule = schedbase + AES_SCHED_LEN;
506 ses->xts_schedule = schedbase + AES_SCHED_LEN * 2;
510 ses->hmac = true;
513 ses->hash_len = SHA1_HASH_LEN;
514 ses->hash_init = SHA1_Init_fn;
515 ses->hash_update = intel_sha1_update;
516 ses->hash_finalize = SHA1_Finalize_fn;
519 ses->hmac = true;
522 ses->hash_len = SHA2_224_HASH_LEN;
523 ses->hash_init = SHA224_Init_fn;
524 ses->hash_update = intel_sha256_update;
525 ses->hash_finalize = SHA224_Finalize_fn;
528 ses->hmac = true;
531 ses->hash_len = SHA2_256_HASH_LEN;
532 ses->hash_init = SHA256_Init_fn;
533 ses->hash_update = intel_sha256_update;
534 ses->hash_finalize = SHA256_Finalize_fn;
538 if (ses->hash_len != 0) {
540 ses->mlen = ses->hash_len;
542 ses->mlen = csp->csp_auth_mlen;
544 error = aesni_authprepare(ses, csp->csp_auth_klen);
549 ses->mlen = AES_CBC_MAC_HASH_LEN;
551 ses->mlen = csp->csp_auth_mlen;
562 aesni_cipher_setup_common(ses, csp, csp->csp_cipher_key,
572 aesni_cipher_process(struct aesni_session *ses, struct cryptop *crp)
599 error = aesni_cipher_crypt(ses, crp, csp);
601 error = aesni_cipher_mac(ses, crp, csp);
603 error = aesni_cipher_mac(ses, crp, csp);
605 error = aesni_cipher_crypt(ses, crp, csp);
608 error = aesni_cipher_mac(ses, crp, csp);
610 error = aesni_cipher_crypt(ses, crp, csp);
616 aesni_cipher_crypt(struct aesni_session *ses, struct cryptop *crp,
681 aesni_cipher_setup_common(ses, csp, crp->crp_cipher_key,
689 aesni_encrypt_cbc(ses->rounds, ses->enc_schedule,
694 aesni_decrypt_cbc(ses->rounds, ses->dec_schedule,
700 aesni_encrypt_icm(ses->rounds, ses->enc_schedule,
705 aesni_encrypt_xts(ses->rounds, ses->enc_schedule,
706 ses->xts_schedule, crp->crp_payload_length, buf,
709 aesni_decrypt_xts(ses->rounds, ses->dec_schedule,
710 ses->xts_schedule, crp->crp_payload_length, buf,
718 csp->csp_ivlen, ses->enc_schedule, ses->rounds);
726 csp->csp_ivlen, ses->enc_schedule, ses->rounds))
735 csp->csp_ivlen, ses->mlen, ses->enc_schedule,
736 ses->rounds);
737 crypto_copyback(crp, crp->crp_digest_start, ses->mlen,
740 crypto_copydata(crp, crp->crp_digest_start, ses->mlen,
744 csp->csp_ivlen, ses->mlen, ses->enc_schedule,
745 ses->rounds))
771 aesni_cipher_mac(struct aesni_session *ses, struct cryptop *crp,
790 if (ses->hmac) {
794 ses->hash_init(&sctx);
799 ses->hash_update(&sctx, hmac_key, sizeof(hmac_key));
802 ses->hash_update(&sctx, crp->crp_aad,
806 crp->crp_aad_length, ses->hash_update, &sctx);
812 ses->hash_update, &sctx);
815 crp->crp_payload_length, ses->hash_update, &sctx);
818 ses->hash_update(&sctx, crp->crp_esn, 4);
820 ses->hash_finalize(res, &sctx);
823 ses->hash_init(&sctx);
828 ses->hash_update(&sctx, hmac_key, sizeof(hmac_key));
829 ses->hash_update(&sctx, res, ses->hash_len);
830 ses->hash_finalize(res, &sctx);
833 ses->hash_init(&sctx);
836 ses->hash_update(&sctx, crp->crp_aad,
840 crp->crp_aad_length, ses->hash_update, &sctx);
846 ses->hash_update, &sctx);
850 ses->hash_update, &sctx);
852 ses->hash_finalize(res, &sctx);
860 crypto_copydata(crp, crp->crp_digest_start, ses->mlen, res2);
861 if (timingsafe_bcmp(res, res2, ses->mlen) != 0)
865 crypto_copyback(crp, crp->crp_digest_start, ses->mlen, res);