]> git.codecow.com Git - nano25519.git/commitdiff
Reset buffers after [s]B.
authorChris Duncan <chris@zoso.dev>
Sat, 19 Sep 2026 05:49:00 +0000 (22:49 -0700)
committerChris Duncan <chris@zoso.dev>
Sat, 19 Sep 2026 05:49:00 +0000 (22:49 -0700)
src/assembly/ge.ts

index 128d87350b4270e919bd0dad71fda55839996da3..dcbd51d0c7c1fb5305d019283040c32a62436e6a 100644 (file)
@@ -20,7 +20,7 @@ import { base } from './base'
 import { base2 } from './base2'
 import { ed25519_d, fe_sqrtm1 } from './constants'
 import { FieldElement, fe, fe_1, fe_add, fe_cmov, fe_frombytes, fe_isnegative, fe_iszero, fe_memcmov, fe_memcopy, fe_memneg, fe_mul, fe_neg, fe_pow22523, fe_sq, fe_sub } from './fe'
-import { ge_add_cached, ge_add_precomp, ge_cached, ge_p1p1, ge_p1p1_to_p2, ge_p1p1_to_p3, ge_p2, ge_p2_0, ge_p2_dbl, ge_p2_to_p3, ge_p3, ge_p3_0, ge_p3_dbl, ge_p3_to_cached, ge_p3_tobytes, ge_precomp, ge_precomp_0, ge_sub_cached, ge_sub_precomp } from './p'
+import { ge_add_cached, ge_add_precomp, ge_cached, ge_p1p1, ge_p1p1_0, ge_p1p1_to_p2, ge_p1p1_to_p3, ge_p2, ge_p2_0, ge_p2_dbl, ge_p2_to_p3, ge_p3, ge_p3_0, ge_p3_dbl, ge_p3_to_cached, ge_p3_tobytes, ge_precomp, ge_precomp_0, ge_sub_cached, ge_sub_precomp } from './p'
 import { equal, negative } from './utils'
 
 //@ts-expect-error
@@ -246,6 +246,12 @@ function ge_scalarmult_base (h: ge_p3, a: StaticArray<u8>): void {
                ge_add_precomp(r, h, t)
                ge_p1p1_to_p3(h, r)
        }
+
+       // clear sensitive data
+       e.fill(0)
+       ge_p1p1_0(r)
+       ge_p2_0(s)
+       ge_precomp_0(t)
 }
 
 const ge_scalarmult_base_tobytes_h: ge_p3 = new ge_p3()