Lines Matching defs:transform

857     mbedtls_ssl_transform const *transform)
859 return transform->ivlen != transform->fixed_ivlen;
902 mbedtls_ssl_transform *transform,
937 if (transform == NULL) {
938 MBEDTLS_SSL_DEBUG_MSG(1, ("no transform provided to encrypt_buf"));
953 ssl_mode = mbedtls_ssl_get_mode_from_transform(transform);
981 if (transform->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) {
1001 rec->cid_len = transform->out_cid_len;
1002 memcpy(rec->cid, transform->out_cid, transform->out_cid_len);
1036 if (post_avail < transform->maclen) {
1050 transform->tls_version,
1051 transform->taglen);
1054 status = psa_mac_sign_setup(&operation, transform->psa_mac_enc,
1055 transform->psa_mac_alg);
1076 ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, add_data,
1081 ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, data, rec->data_len);
1085 ret = mbedtls_md_hmac_finish(&transform->md_ctx_enc, mac);
1089 ret = mbedtls_md_hmac_reset(&transform->md_ctx_enc);
1095 memcpy(data + rec->data_len, mac, transform->maclen);
1099 transform->maclen);
1101 rec->data_len += transform->maclen;
1102 post_avail -= transform->maclen;
1106 mbedtls_platform_zeroize(mac, transform->maclen);
1141 ssl_transform_aead_dynamic_iv_is_explicit(transform);
1148 if (post_avail < transform->taglen) {
1169 transform->iv_enc,
1170 transform->fixed_ivlen,
1179 transform->tls_version,
1180 transform->taglen);
1183 iv, transform->ivlen);
1197 status = psa_aead_encrypt(transform->psa_key_enc,
1198 transform->psa_alg,
1199 iv, transform->ivlen,
1211 if ((ret = mbedtls_cipher_auth_encrypt_ext(&transform->cipher_ctx_enc,
1212 iv, transform->ivlen,
1217 transform->taglen)) != 0) {
1224 data + rec->data_len - transform->taglen,
1225 transform->taglen);
1227 post_avail -= transform->taglen;
1260 padlen = transform->ivlen - (rec->data_len + 1) % transform->ivlen;
1261 if (padlen == transform->ivlen) {
1288 if (rec->data_offset < transform->ivlen) {
1296 ret = f_rng(p_rng, transform->iv_enc, transform->ivlen);
1301 memcpy(data - transform->ivlen, transform->iv_enc, transform->ivlen);
1308 rec->data_len, transform->ivlen,
1313 transform->psa_key_enc, transform->psa_alg);
1321 status = psa_cipher_set_iv(&cipher_op, transform->iv_enc, transform->ivlen);
1354 if ((ret = mbedtls_cipher_crypt(&transform->cipher_ctx_enc,
1355 transform->iv_enc,
1356 transform->ivlen,
1369 data -= transform->ivlen;
1370 rec->data_offset -= transform->ivlen;
1371 rec->data_len += transform->ivlen;
1384 if (post_avail < transform->maclen) {
1390 rec, transform->tls_version,
1391 transform->taglen);
1397 status = psa_mac_sign_setup(&operation, transform->psa_mac_enc,
1398 transform->psa_mac_alg);
1420 ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, add_data,
1425 ret = mbedtls_md_hmac_update(&transform->md_ctx_enc,
1430 ret = mbedtls_md_hmac_finish(&transform->md_ctx_enc, mac);
1434 ret = mbedtls_md_hmac_reset(&transform->md_ctx_enc);
1440 memcpy(data + rec->data_len, mac, transform->maclen);
1442 rec->data_len += transform->maclen;
1443 post_avail -= transform->maclen;
1447 mbedtls_platform_zeroize(mac, transform->maclen);
1480 mbedtls_ssl_transform *transform,
1520 ssl_mode = mbedtls_ssl_get_mode_from_transform(transform);
1526 if (rec->cid_len != transform->in_cid_len ||
1527 memcmp(rec->cid, transform->in_cid, rec->cid_len) != 0) {
1534 if (rec->data_len < transform->maclen) {
1538 rec->data_len, transform->maclen));
1564 if (ssl_transform_aead_dynamic_iv_is_explicit(transform) == 1) {
1582 if (rec->data_len < transform->taglen) {
1586 transform->taglen));
1589 rec->data_len -= transform->taglen;
1595 transform->iv_dec,
1596 transform->fixed_ivlen,
1605 transform->tls_version,
1606 transform->taglen);
1616 MBEDTLS_SSL_DEBUG_BUF(4, "IV used", iv, transform->ivlen);
1618 transform->taglen);
1624 status = psa_aead_decrypt(transform->psa_key_dec,
1625 transform->psa_alg,
1626 iv, transform->ivlen,
1628 data, rec->data_len + transform->taglen,
1639 (&transform->cipher_ctx_dec,
1640 iv, transform->ivlen,
1642 data, rec->data_len + transform->taglen, /* src */
1644 transform->taglen)) != 0) {
1679 minlen += transform->ivlen;
1685 * at least of size transform->ivlen.
1703 if (rec->data_len < minlen + transform->ivlen ||
1704 rec->data_len < minlen + transform->maclen + 1) {
1710 transform->ivlen,
1711 transform->maclen));
1738 rec->data_len -= transform->maclen;
1740 transform->tls_version,
1741 transform->taglen);
1747 status = psa_mac_verify_setup(&operation, transform->psa_mac_dec,
1748 transform->psa_mac_alg);
1765 transform->maclen);
1770 ret = mbedtls_md_hmac_update(&transform->md_ctx_dec, add_data,
1775 ret = mbedtls_md_hmac_update(&transform->md_ctx_dec,
1780 ret = mbedtls_md_hmac_finish(&transform->md_ctx_dec, mac_expect);
1784 ret = mbedtls_md_hmac_reset(&transform->md_ctx_dec);
1790 transform->maclen);
1792 transform->maclen);
1796 transform->maclen) != 0) {
1812 mbedtls_platform_zeroize(mac_expect, transform->maclen);
1830 if (rec->data_len % transform->ivlen != 0) {
1833 rec->data_len, transform->ivlen));
1842 memcpy(transform->iv_dec, data, transform->ivlen);
1844 data += transform->ivlen;
1845 rec->data_offset += transform->ivlen;
1846 rec->data_len -= transform->ivlen;
1853 transform->psa_key_dec, transform->psa_alg);
1861 status = psa_cipher_set_iv(&cipher_op, transform->iv_dec, transform->ivlen);
1892 if ((ret = mbedtls_cipher_crypt(&transform->cipher_ctx_dec,
1893 transform->iv_dec, transform->ivlen,
1920 if (rec->data_len < transform->maclen + padlen + 1) {
1925 transform->maclen,
1931 transform->maclen + padlen + 1);
2021 rec->data_len -= transform->maclen;
2023 transform->tls_version,
2024 transform->taglen);
2041 ret = mbedtls_ct_hmac(transform->psa_mac_dec,
2042 transform->psa_mac_alg,
2047 ret = mbedtls_ct_hmac(&transform->md_ctx_dec,
2060 transform->maclen);
2064 MBEDTLS_SSL_DEBUG_BUF(4, "expected mac", mac_expect, transform->maclen);
2065 MBEDTLS_SSL_DEBUG_BUF(4, "message mac", mac_peer, transform->maclen);
2069 transform->maclen) != 0) {
2078 mbedtls_platform_zeroize(mac_peer, transform->maclen);
2079 mbedtls_platform_zeroize(mac_expect, transform->maclen);
2100 if (transform->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) {
2502 /* Adjust to the newly activated transform */
3875 * the minimum record length for packets using the new record transform.
3937 * have an active transform (possibly iv_len != 0), so use the
5229 * Switch to our negotiated transform and session parameters for inbound
5232 MBEDTLS_SSL_DEBUG_MSG(3, ("switching to new transform spec for inbound data"));
5273 mbedtls_ssl_transform const *transform)
5275 return transform->ivlen - transform->fixed_ivlen;
5279 mbedtls_ssl_transform *transform)
5287 if (transform != NULL) {
5288 ssl->out_len += transform->out_cid_len;
5306 if (transform != NULL) {
5307 ssl->out_msg += ssl_transform_get_explicit_iv_len(transform);
5380 mbedtls_ssl_update_out_pointers(ssl, NULL /* no transform enabled */);
5448 const mbedtls_ssl_transform *transform = ssl->transform_out;
5457 if (transform == NULL) {
5463 if (transform->psa_alg == PSA_ALG_GCM ||
5464 transform->psa_alg == PSA_ALG_CCM ||
5465 transform->psa_alg == PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 8) ||
5466 transform->psa_alg == PSA_ALG_CHACHA20_POLY1305 ||
5467 transform->psa_alg == MBEDTLS_SSL_NULL_CIPHER) {
5468 transform_expansion = transform->minlen;
5469 } else if (transform->psa_alg == PSA_ALG_CBC_NO_PADDING) {
5470 (void) psa_get_key_attributes(transform->psa_key_enc, &attr);
5476 transform_expansion += transform->maclen;
5494 switch (mbedtls_cipher_get_cipher_mode(&transform->cipher_ctx_enc)) {
5499 transform_expansion = transform->minlen;
5505 &transform->cipher_ctx_enc);
5508 transform_expansion += transform->maclen;
5530 if (transform->out_cid_len != 0) {
6108 * as the early data outbound transform has not been set as we may have to
6203 void mbedtls_ssl_transform_free(mbedtls_ssl_transform *transform)
6205 if (transform == NULL) {
6210 psa_destroy_key(transform->psa_key_enc);
6211 psa_destroy_key(transform->psa_key_dec);
6213 mbedtls_cipher_free(&transform->cipher_ctx_enc);
6214 mbedtls_cipher_free(&transform->cipher_ctx_dec);
6219 psa_destroy_key(transform->psa_mac_enc);
6220 psa_destroy_key(transform->psa_mac_dec);
6222 mbedtls_md_free(&transform->md_ctx_enc);
6223 mbedtls_md_free(&transform->md_ctx_dec);
6227 mbedtls_platform_zeroize(transform, sizeof(mbedtls_ssl_transform));
6231 mbedtls_ssl_transform *transform)
6233 ssl->transform_in = transform;
6238 mbedtls_ssl_transform *transform)
6240 ssl->transform_out = transform;