From 0dedf4a414f861939eb3e506ed65d470c876bf4a Mon Sep 17 00:00:00 2001 From: Yawning Angel Date: Thu, 17 Oct 2024 17:39:37 +0900 Subject: [PATCH] fixup! core:crypto/deoxsysii: Initial import --- core/crypto/deoxysii/deoxysii_impl_ct64.odin | 27 +++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/core/crypto/deoxysii/deoxysii_impl_ct64.odin b/core/crypto/deoxysii/deoxysii_impl_ct64.odin index 061b3a49a3e..3895a21fe02 100644 --- a/core/crypto/deoxysii/deoxysii_impl_ct64.odin +++ b/core/crypto/deoxysii/deoxysii_impl_ct64.odin @@ -48,6 +48,22 @@ enc_tweak :: #force_inline proc "contextless" ( } } +@(private = "file") +enc_plaintext :: #force_inline proc "contextless" ( + dst: ^[8]u64, + iv: []byte, +) { + tmp: [BLOCK_SIZE]byte = --- + tmp[0] = 0 + copy(tmp[1:], iv[:]) + + q_0, q_1 := aes.load_interleaved(tmp[:]) + for i in 0 ..< 4 { + dst[i], dst[i+4] = q_0, q_1 + } + aes.orthogonalize(dst) +} + @(private = "file") bc_x4 :: proc "contextless" ( ctx: ^Context, @@ -267,15 +283,8 @@ e_ref :: proc "contextless" (ctx: ^Context, dst, tag, iv, aad, plaintext: []byte // end // // return (C_1 || ... || C_l || C_∗, tag) - tmp: [BLOCK_SIZE]byte = --- - q_iv: [8]u64 - tmp[0] = 0 - copy(tmp[1:], iv[:]) - q_iv_0, q_iv_1 := aes.load_interleaved(tmp[:]) - for i in 0 ..< 4 { - q_iv[i], q_iv[i+4] = q_iv_0, q_iv_1 - } - aes.orthogonalize(&q_iv) + q_iv: [8]u64 = --- + enc_plaintext(&q_iv, iv) m = plaintext n = bc_encrypt(&st, dst, m, &q_iv, &auth, 0)