[keccak-asm] *_ctx2hash in asm
This commit is contained in:
parent
cd50f65c37
commit
5b6783aa50
|
@ -622,6 +622,42 @@ icall_r16_times:
|
||||||
ret
|
ret
|
||||||
.endfunc
|
.endfunc
|
||||||
|
|
||||||
|
|
||||||
|
.global keccak224_ctx2hash
|
||||||
|
.func keccak224_ctx2hash
|
||||||
|
keccak224_ctx2hash:
|
||||||
|
movw r20, r22
|
||||||
|
ldi r22, lo8(224)
|
||||||
|
ldi r23, hi8(224)
|
||||||
|
rjmp keccak_ctx2hash
|
||||||
|
.endfunc
|
||||||
|
|
||||||
|
.global keccak384_ctx2hash
|
||||||
|
.func keccak384_ctx2hash
|
||||||
|
keccak384_ctx2hash:
|
||||||
|
movw r20, r22
|
||||||
|
ldi r22, lo8(384)
|
||||||
|
ldi r23, hi8(384)
|
||||||
|
rjmp keccak_ctx2hash
|
||||||
|
.endfunc
|
||||||
|
|
||||||
|
.global keccak512_ctx2hash
|
||||||
|
.func keccak512_ctx2hash
|
||||||
|
keccak512_ctx2hash:
|
||||||
|
movw r20, r22
|
||||||
|
ldi r22, lo8(512)
|
||||||
|
ldi r23, hi8(512)
|
||||||
|
rjmp keccak_ctx2hash
|
||||||
|
.endfunc
|
||||||
|
|
||||||
|
.global keccak256_ctx2hash
|
||||||
|
.func keccak256_ctx2hash
|
||||||
|
keccak256_ctx2hash:
|
||||||
|
movw r20, r22
|
||||||
|
ldi r22, lo8(256)
|
||||||
|
ldi r23, hi8(256)
|
||||||
|
.endfunc
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void keccak_ctx2hash(void* dest, uint16_t length_b, keccak_ctx_t* ctx){
|
void keccak_ctx2hash(void* dest, uint16_t length_b, keccak_ctx_t* ctx){
|
||||||
while(length_b>=ctx->r){
|
while(length_b>=ctx->r){
|
||||||
|
@ -633,13 +669,13 @@ void keccak_ctx2hash(void* dest, uint16_t length_b, keccak_ctx_t* ctx){
|
||||||
memcpy(dest, ctx->a, (length_b+7)/8);
|
memcpy(dest, ctx->a, (length_b+7)/8);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
; .global keccak_ctx2hash
|
.global keccak_ctx2hash
|
||||||
; .func keccak_ctx2hash
|
.func keccak_ctx2hash
|
||||||
;keccak_ctx2hash:
|
keccak_ctx2hash:
|
||||||
push_range 2, 10
|
push_range 2, 10
|
||||||
movw r4, r20
|
movw r4, r20
|
||||||
movw r6, r24
|
movw r6, r24
|
||||||
movw ZL, r24
|
movw ZL, r20
|
||||||
movw r8, r22
|
movw r8, r22
|
||||||
subi ZL, lo8(-ctx_r)
|
subi ZL, lo8(-ctx_r)
|
||||||
sbci ZH, hi8(-ctx_r)
|
sbci ZH, hi8(-ctx_r)
|
||||||
|
@ -650,7 +686,7 @@ void keccak_ctx2hash(void* dest, uint16_t length_b, keccak_ctx_t* ctx){
|
||||||
; length_b = (r9:r8) ; r = (r3:r2) ; (H:L)
|
; length_b = (r9:r8) ; r = (r3:r2) ; (H:L)
|
||||||
cp r2, r8
|
cp r2, r8
|
||||||
cpc r3, r9
|
cpc r3, r9
|
||||||
rjmp 40f
|
; rjmp 40f
|
||||||
brsh 40f
|
brsh 40f
|
||||||
movw XL, r4
|
movw XL, r4
|
||||||
movw ZL, r6
|
movw ZL, r6
|
||||||
|
@ -687,5 +723,5 @@ void keccak_ctx2hash(void* dest, uint16_t length_b, keccak_ctx_t* ctx){
|
||||||
99:
|
99:
|
||||||
pop_range 2, 10
|
pop_range 2, 10
|
||||||
ret
|
ret
|
||||||
; .endfunc
|
.endfunc
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ void keccak_lastBlock(keccak_ctx_t* ctx, const void* block, uint16_t length_b){
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
void keccak_ctx2hash(void* dest, uint16_t length_b, keccak_ctx_t* ctx){
|
void keccak_ctx2hash(void* dest, uint16_t length_b, keccak_ctx_t* ctx){
|
||||||
while(length_b>=ctx->r){
|
while(length_b>=ctx->r){
|
||||||
memcpy(dest, ctx->a, ctx->bs);
|
memcpy(dest, ctx->a, ctx->bs);
|
||||||
|
@ -146,7 +146,8 @@ void keccak_ctx2hash(void* dest, uint16_t length_b, keccak_ctx_t* ctx){
|
||||||
}
|
}
|
||||||
memcpy(dest, ctx->a, (length_b+7)/8);
|
memcpy(dest, ctx->a, (length_b+7)/8);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
/*
|
||||||
void keccak224_ctx2hash(void* dest, keccak_ctx_t* ctx){
|
void keccak224_ctx2hash(void* dest, keccak_ctx_t* ctx){
|
||||||
keccak_ctx2hash(dest, 224, ctx);
|
keccak_ctx2hash(dest, 224, ctx);
|
||||||
}
|
}
|
||||||
|
@ -162,7 +163,7 @@ void keccak384_ctx2hash(void* dest, keccak_ctx_t* ctx){
|
||||||
void keccak512_ctx2hash(void* dest, keccak_ctx_t* ctx){
|
void keccak512_ctx2hash(void* dest, keccak_ctx_t* ctx){
|
||||||
keccak_ctx2hash(dest, 512, ctx);
|
keccak_ctx2hash(dest, 512, ctx);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
1. SHA3-224: ⌊Keccak[r = 1152, c = 448, d = 28]⌋224
|
1. SHA3-224: ⌊Keccak[r = 1152, c = 448, d = 28]⌋224
|
||||||
2. SHA3-256: ⌊Keccak[r = 1088, c = 512, d = 32]⌋256
|
2. SHA3-256: ⌊Keccak[r = 1088, c = 512, d = 32]⌋256
|
||||||
|
|
Loading…
Reference in New Issue