Skip to content

Commit

Permalink
Enable stack zeroing
Browse files Browse the repository at this point in the history
Finally merged into Jasmin 🎉

jasmin-lang/jasmin#631
  • Loading branch information
jedisct1 committed Dec 5, 2023
1 parent 9f19562 commit 0d4facb
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ src/aegis128l.o: src/aegis128l.s
$(AS) -o src/aegis128l.o src/aegis128l.s

src/aegis128l.s: src/aegis128l.jazz
jasminc -checkCT src/aegis128l.jazz && jasminc -o src/aegis128l.s src/aegis128l.jazz
jasminc -checkCT src/aegis128l.jazz && jasminc -stack-zero unrolled -stack-zero-size u128 -o src/aegis128l.s src/aegis128l.jazz

src/crypto_aead_aegis128l.o: src/crypto_aead_aegis128l.c src/crypto_aead_aegis128l.h
$(CC) -O2 -c -o src/crypto_aead_aegis128l.o src/crypto_aead_aegis128l.c
Expand All @@ -17,7 +17,7 @@ src/aegis256.o: src/aegis256.s
$(AS) -o src/aegis256.o src/aegis256.s

src/aegis256.s: src/aegis256.jazz
jasminc -checkCT src/aegis256.jazz && jasminc -o src/aegis256.s src/aegis256.jazz
jasminc -checkCT src/aegis256.jazz && jasminc -stack-zero unrolled -stack-zero-size u128 -o src/aegis256.s src/aegis256.jazz

src/crypto_aead_aegis256.o: src/crypto_aead_aegis256.c src/crypto_aead_aegis256.h
$(CC) -O2 -c -o src/crypto_aead_aegis256.o src/crypto_aead_aegis256.c
Expand Down
20 changes: 20 additions & 0 deletions src/aegis128l.s
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,17 @@ L_aegis128l_decrypt$1:
orq %rcx, %rax
L_aegis128l_decrypt$2:
movq %r11, %rsp
movq %rsp, %rsi
vpxor %xmm2, %xmm2, %xmm2
andq $-16, %rsp
subq $96, %rsp
vmovdqu %xmm2, 80(%rsp)
vmovdqu %xmm2, 64(%rsp)
vmovdqu %xmm2, 48(%rsp)
vmovdqu %xmm2, 32(%rsp)
vmovdqu %xmm2, 16(%rsp)
vmovdqu %xmm2, (%rsp)
movq %rsi, %rsp
ret
__aegis128l_encrypt:
_aegis128l_encrypt:
Expand Down Expand Up @@ -830,6 +841,15 @@ L_aegis128l_encrypt$1:
vmovdqu %xmm0, (%rcx)
L_aegis128l_encrypt$2:
movq %r11, %rsp
movq %rsp, %rsi
vpxor %xmm2, %xmm2, %xmm2
andq $-16, %rsp
subq $64, %rsp
vmovdqu %xmm2, 48(%rsp)
vmovdqu %xmm2, 32(%rsp)
vmovdqu %xmm2, 16(%rsp)
vmovdqu %xmm2, (%rsp)
movq %rsi, %rsp
ret
.data
.p2align 5
Expand Down
15 changes: 15 additions & 0 deletions src/aegis256.s
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,14 @@ L_aegis256_decrypt$1:
orq %rcx, %rax
L_aegis256_decrypt$2:
movq %r11, %rsp
movq %rsp, %rsi
vpxor %xmm2, %xmm2, %xmm2
andq $-16, %rsp
subq $48, %rsp
vmovdqu %xmm2, 32(%rsp)
vmovdqu %xmm2, 16(%rsp)
vmovdqu %xmm2, (%rsp)
movq %rsi, %rsp
ret
__aegis256_encrypt:
_aegis256_encrypt:
Expand Down Expand Up @@ -842,6 +850,13 @@ L_aegis256_encrypt$1:
vmovdqu %xmm0, (%rcx)
L_aegis256_encrypt$2:
movq %r11, %rsp
movq %rsp, %rsi
vpxor %xmm2, %xmm2, %xmm2
andq $-16, %rsp
subq $32, %rsp
vmovdqu %xmm2, 16(%rsp)
vmovdqu %xmm2, (%rsp)
movq %rsi, %rsp
ret
.data
.p2align 5
Expand Down

0 comments on commit 0d4facb

Please sign in to comment.