[keccak-asm] *_init in asm

This commit is contained in:
bg 2013-01-12 23:21:45 +01:00
parent 5b6783aa50
commit 2ef97287a9
2 changed files with 67 additions and 0 deletions

View File

@ -725,3 +725,67 @@ keccak_ctx2hash:
ret
.endfunc
.global keccak224_init
.func keccak224_init
keccak224_init:
movw XL, r24
ldi r24, lo8(1152)
ldi r25, hi8(1152)
rjmp keccak_init_1
.endfunc
.global keccak384_init
.func keccak384_init
keccak384_init:
movw XL, r24
ldi r24, lo8( 832)
ldi r25, hi8( 832)
rjmp keccak_init_1
.endfunc
.global keccak512_init
.func keccak512_init
keccak512_init:
movw XL, r24
ldi r24, lo8( 576)
ldi r25, hi8( 576)
rjmp keccak_init_1
.endfunc
.global keccak256_init
.func keccak256_init
keccak256_init:
movw r22, r24
ldi r24, lo8(1088)
ldi r25, hi8(1088)
.endfunc
/*
void keccak_init(uint16_t r, keccak_ctx_t* ctx){
memset(ctx->a, 0x00, 5 * 5 * 8);
ctx->r = r;
ctx->bs = (uint8_t)(r / 8);
}
*/
.global keccak_init
.func keccak_init
keccak_init:
movw XL, r22
keccak_init_1:
ldi r22, 200
10:
st X+, __zero_reg__
dec r22
brne 10b
st X+, r24
st X+, r25
lsr r25
ror r24
lsr r25
ror r24
lsr r25
ror r24
st X+, r24
ret
.endfunc

View File

@ -170,6 +170,7 @@ void keccak512_ctx2hash(void* dest, keccak_ctx_t* ctx){
3. SHA3-384: Keccak[r = 832, c = 768, d = 48]384
4. SHA3-512: Keccak[r = 576, c = 1024, d = 64]512
*/
/*
void keccak_init(uint16_t r, keccak_ctx_t* ctx){
memset(ctx->a, 0x00, 5 * 5 * 8);
ctx->r = r;
@ -191,3 +192,5 @@ void keccak384_init(keccak_ctx_t* ctx){
void keccak512_init(keccak_ctx_t* ctx){
keccak_init( 576, ctx);
}
*/