mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-01-09 14:35:45 +00:00
aria: clean up interface of internal macros
This commit is contained in:
parent
a6d639e553
commit
e1ad7491c5
|
@ -78,9 +78,9 @@
|
||||||
|
|
||||||
// Affine Transform A
|
// Affine Transform A
|
||||||
// (ra, rb, rc, rd) = state in/out
|
// (ra, rb, rc, rd) = state in/out
|
||||||
// (ta, tb, tc) = temporary variables
|
|
||||||
|
|
||||||
#define ARIA_A( ra, rb, rc, rd, ta, tb, tc ) { \
|
#define ARIA_A( ra, rb, rc, rd ) { \
|
||||||
|
uint32_t ta, tb, tc; \
|
||||||
ta = rb; \
|
ta = rb; \
|
||||||
rb = ra; \
|
rb = ra; \
|
||||||
ra = ARIA_FLIP1( ta ); \
|
ra = ARIA_FLIP1( ta ); \
|
||||||
|
@ -105,13 +105,13 @@
|
||||||
/* ARIA Round function ( Substitution Layer SLx + Affine Transform A )
|
/* ARIA Round function ( Substitution Layer SLx + Affine Transform A )
|
||||||
* (ra, rb, rc, rd) = state in/out
|
* (ra, rb, rc, rd) = state in/out
|
||||||
* (sa, sb, sc, sd) = 256 8-bit S-Boxes (see below)
|
* (sa, sb, sc, sd) = 256 8-bit S-Boxes (see below)
|
||||||
* (ta, tb, tc) = temporary variables
|
|
||||||
*
|
*
|
||||||
* By passing sb1, sb2, is1, is2 as S-Boxes you get SL1-then-A.
|
* By passing sb1, sb2, is1, is2 as S-Boxes you get SL1-then-A.
|
||||||
* By passing is1, is2, sb1, sb2 as S-Boxes you get SL2-then-A.
|
* By passing is1, is2, sb1, sb2 as S-Boxes you get SL2-then-A.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define ARIA_SLA( ra, rb, rc, rd, sa, sb, sc, sd, ta, tb, tc ) { \
|
#define ARIA_SLA( ra, rb, rc, rd, sa, sb, sc, sd ) { \
|
||||||
|
uint32_t ta, tb, tc; \
|
||||||
ta = ( (uint32_t) sc[(rb >> 16) & 0xFF]) ^ \
|
ta = ( (uint32_t) sc[(rb >> 16) & 0xFF]) ^ \
|
||||||
(((uint32_t) sd[ rb >> 24]) << 8) ^ \
|
(((uint32_t) sd[ rb >> 24]) << 8) ^ \
|
||||||
(((uint32_t) sa[ rb & 0xFF]) << 16) ^ \
|
(((uint32_t) sa[ rb & 0xFF]) << 16) ^ \
|
||||||
|
@ -257,14 +257,13 @@ static void aria_fo_xor( uint32_t r[4],
|
||||||
const uint32_t p[4], const uint32_t k[4], const uint32_t x[4] )
|
const uint32_t p[4], const uint32_t k[4], const uint32_t x[4] )
|
||||||
{
|
{
|
||||||
uint32_t a, b, c, d;
|
uint32_t a, b, c, d;
|
||||||
uint32_t t, u, v;
|
|
||||||
|
|
||||||
a = p[0] ^ k[0];
|
a = p[0] ^ k[0];
|
||||||
b = p[1] ^ k[1];
|
b = p[1] ^ k[1];
|
||||||
c = p[2] ^ k[2];
|
c = p[2] ^ k[2];
|
||||||
d = p[3] ^ k[3];
|
d = p[3] ^ k[3];
|
||||||
|
|
||||||
ARIA_SLA( a, b, c, d, aria_sb1, aria_sb2, aria_is1, aria_is2, t, u, v );
|
ARIA_SLA( a, b, c, d, aria_sb1, aria_sb2, aria_is1, aria_is2 );
|
||||||
|
|
||||||
r[0] = a ^ x[0];
|
r[0] = a ^ x[0];
|
||||||
r[1] = b ^ x[1];
|
r[1] = b ^ x[1];
|
||||||
|
@ -278,14 +277,13 @@ static void aria_fe_xor(uint32_t r[4],
|
||||||
const uint32_t p[4], const uint32_t k[4], const uint32_t x[4] )
|
const uint32_t p[4], const uint32_t k[4], const uint32_t x[4] )
|
||||||
{
|
{
|
||||||
uint32_t a, b, c, d;
|
uint32_t a, b, c, d;
|
||||||
uint32_t t, u, v;
|
|
||||||
|
|
||||||
a = p[0] ^ k[0];
|
a = p[0] ^ k[0];
|
||||||
b = p[1] ^ k[1];
|
b = p[1] ^ k[1];
|
||||||
c = p[2] ^ k[2];
|
c = p[2] ^ k[2];
|
||||||
d = p[3] ^ k[3];
|
d = p[3] ^ k[3];
|
||||||
|
|
||||||
ARIA_SLA( a, b, c, d, aria_is1, aria_is2, aria_sb1, aria_sb2, t, u, v );
|
ARIA_SLA( a, b, c, d, aria_is1, aria_is2, aria_sb1, aria_sb2 );
|
||||||
|
|
||||||
r[0] = a ^ x[0];
|
r[0] = a ^ x[0];
|
||||||
r[1] = b ^ x[1];
|
r[1] = b ^ x[1];
|
||||||
|
@ -385,7 +383,6 @@ int mbedtls_aria_setkey_dec(mbedtls_aria_context *ctx,
|
||||||
const unsigned char *key, unsigned int keybits)
|
const unsigned char *key, unsigned int keybits)
|
||||||
{
|
{
|
||||||
int i, j, k, ret;
|
int i, j, k, ret;
|
||||||
uint32_t t, u, v;
|
|
||||||
|
|
||||||
ret = mbedtls_aria_setkey_enc( ctx, key, keybits );
|
ret = mbedtls_aria_setkey_enc( ctx, key, keybits );
|
||||||
if( ret != 0 )
|
if( ret != 0 )
|
||||||
|
@ -396,7 +393,7 @@ int mbedtls_aria_setkey_dec(mbedtls_aria_context *ctx,
|
||||||
{
|
{
|
||||||
for( k = 0; k < 4; k++ )
|
for( k = 0; k < 4; k++ )
|
||||||
{
|
{
|
||||||
t = ctx->rk[i][k];
|
uint32_t t = ctx->rk[i][k];
|
||||||
ctx->rk[i][k] = ctx->rk[j][k];
|
ctx->rk[i][k] = ctx->rk[j][k];
|
||||||
ctx->rk[j][k] = t;
|
ctx->rk[j][k] = t;
|
||||||
}
|
}
|
||||||
|
@ -404,10 +401,7 @@ int mbedtls_aria_setkey_dec(mbedtls_aria_context *ctx,
|
||||||
|
|
||||||
// apply affine transform to middle keys
|
// apply affine transform to middle keys
|
||||||
for (i = 1; i < ctx->nr; i++ )
|
for (i = 1; i < ctx->nr; i++ )
|
||||||
{
|
ARIA_A( ctx->rk[i][0], ctx->rk[i][1], ctx->rk[i][2], ctx->rk[i][3] );
|
||||||
ARIA_A( ctx->rk[i][0], ctx->rk[i][1], ctx->rk[i][2], ctx->rk[i][3],
|
|
||||||
t, u, v );
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -422,7 +416,6 @@ int mbedtls_aria_crypt_ecb( mbedtls_aria_context *ctx,
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
uint32_t a, b, c, d;
|
uint32_t a, b, c, d;
|
||||||
uint32_t t, u, v;
|
|
||||||
|
|
||||||
( (void) mode );
|
( (void) mode );
|
||||||
|
|
||||||
|
@ -439,8 +432,7 @@ int mbedtls_aria_crypt_ecb( mbedtls_aria_context *ctx,
|
||||||
c ^= ctx->rk[i][2];
|
c ^= ctx->rk[i][2];
|
||||||
d ^= ctx->rk[i][3];
|
d ^= ctx->rk[i][3];
|
||||||
i++;
|
i++;
|
||||||
ARIA_SLA( a, b, c, d,
|
ARIA_SLA( a, b, c, d, aria_sb1, aria_sb2, aria_is1, aria_is2 );
|
||||||
aria_sb1, aria_sb2, aria_is1, aria_is2, t, u, v );
|
|
||||||
|
|
||||||
a ^= ctx->rk[i][0];
|
a ^= ctx->rk[i][0];
|
||||||
b ^= ctx->rk[i][1];
|
b ^= ctx->rk[i][1];
|
||||||
|
@ -450,8 +442,7 @@ int mbedtls_aria_crypt_ecb( mbedtls_aria_context *ctx,
|
||||||
if (i >= ctx->nr)
|
if (i >= ctx->nr)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
ARIA_SLA( a, b, c, d,
|
ARIA_SLA( a, b, c, d, aria_is1, aria_is2, aria_sb1, aria_sb2 );
|
||||||
aria_is1, aria_is2, aria_sb1, aria_sb2, t, u, v );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// final substitution
|
// final substitution
|
||||||
|
|
Loading…
Reference in a new issue