I see AES XTS support added in MBEDTLS release. Wanted to know more details about AES XTS Implementation.
- Can you point out to standard/RFC which is used to implement AES XTS
- AES XTS implementation uses GF multiplication. Can you please point out to the standard/RFC which is used to implement this.
GF(2^128) multiplication function
This function multiplies a field element by x in the polynomial field
representation. It uses 64-bit word operations to gain speed but compensates
for machine endianess and hence works correctly on both big and little
static void mbedtls_gf128mul_x_ble( unsigned char r,
const unsigned char x )
uint64_t a, b, ra, rb;
GET_UINT64_LE( a, x, 0 );
GET_UINT64_LE( b, x, 8 );
ra = ( a << 1 ) ^ 0x0087 >> ( 8 - ( ( b >> 63 ) << 3 ) );
rb = ( a >> 63 ) | ( b << 1 );
PUT_UINT64_LE( ra, r, 0 );
PUT_UINT64_LE( rb, r, 8 );