/*
#include "cli.h" / * only for debugging * /
-void dump_mugi_ctx(mugi_ctx_t* ctx){
+void dump_mugi_ctx(mugi_ctx_t *ctx){
uint8_t i;
cli_putstr_P(PSTR("\r\n== MUGI CTX DUMP==\r\n a:"));
cli_hexdump(&(ctx->a[0]), 8);
#define GF256MUL_2(a) (gf256mul(2, (a), 0x1b))
uint64_t changeendian64(uint64_t a){
- uint8_t r[8];
- r[0] = ((uint8_t*)&a)[7];
- r[1] = ((uint8_t*)&a)[6];
- r[2] = ((uint8_t*)&a)[5];
- r[3] = ((uint8_t*)&a)[4];
- r[4] = ((uint8_t*)&a)[3];
- r[5] = ((uint8_t*)&a)[2];
- r[6] = ((uint8_t*)&a)[1];
- r[7] = ((uint8_t*)&a)[0];
- return *((uint64_t*)r);
+ union {
+ uint8_t v8[8];
+ uint64_t v64;
+ } r;
+ r.v8[0] = ((uint8_t*)&a)[7];
+ r.v8[1] = ((uint8_t*)&a)[6];
+ r.v8[2] = ((uint8_t*)&a)[5];
+ r.v8[3] = ((uint8_t*)&a)[4];
+ r.v8[4] = ((uint8_t*)&a)[3];
+ r.v8[5] = ((uint8_t*)&a)[2];
+ r.v8[6] = ((uint8_t*)&a)[1];
+ r.v8[7] = ((uint8_t*)&a)[0];
+ return r.v64;
}
static
#define T(x) (((uint8_t*)&t)[(x)])
#define D(y) (((uint8_t*)dest)[(y)])
-static void mugi_f(uint64_t* dest, uint64_t* a, uint64_t* b){
+static void mugi_f(uint64_t *dest, uint64_t *a, uint64_t *b){
uint64_t t;
uint8_t i,x;
t = (*a);
}
static
-void mugi_rho(mugi_ctx_t* ctx){
+void mugi_rho(mugi_ctx_t *ctx){
uint64_t t,bx;
t = ctx->a[1];
ctx->a[1] = ctx->a[2];
}
static
-void mugi_rho_init(uint64_t* a){
+void mugi_rho_init(uint64_t *a){
uint64_t t;
t = a[1];
a[1] = a[2];
}
static
-void mugi_lambda(uint64_t* b, uint64_t *a){
+void mugi_lambda(uint64_t *b, uint64_t *a){
uint8_t i;
uint64_t t;
t=b[15];
b[10] ^= rotl64(b[14], 32);
}
-void mugi_init(const void* key, const void* iv, mugi_ctx_t* ctx){
+void mugi_init(const void *key, const void *iv, mugi_ctx_t *ctx){
uint8_t i;
uint64_t a0;
memcpy(ctx->a, key, 128/8);
a0=0x00;
}
-uint64_t mugi_gen(mugi_ctx_t* ctx){
+uint64_t mugi_gen(mugi_ctx_t *ctx){
uint64_t r;
r=ctx->a[0];
mugi_rho(ctx);