aboutsummaryrefslogtreecommitdiff
path: root/core/crypto/_edwards25519
diff options
context:
space:
mode:
Diffstat (limited to 'core/crypto/_edwards25519')
-rw-r--r--core/crypto/_edwards25519/edwards25519.odin15
-rw-r--r--core/crypto/_edwards25519/edwards25519_scalar.odin5
-rw-r--r--core/crypto/_edwards25519/edwards25519_scalar_mul.odin9
-rw-r--r--core/crypto/_edwards25519/edwards25519_scalar_mul_base.odin7
4 files changed, 17 insertions, 19 deletions
diff --git a/core/crypto/_edwards25519/edwards25519.odin b/core/crypto/_edwards25519/edwards25519.odin
index 12192102d..dddfaef02 100644
--- a/core/crypto/_edwards25519/edwards25519.odin
+++ b/core/crypto/_edwards25519/edwards25519.odin
@@ -13,7 +13,8 @@ See:
import "core:crypto"
import field "core:crypto/_fiat/field_curve25519"
-import "core:mem"
+
+zero_explicit :: crypto.zero_explicit
// Group_Element is an edwards25519 group element, as extended homogenous
// coordinates, which represents the affine point `(x, y)` as `(X, Y, Z, T)`,
@@ -96,7 +97,7 @@ Group_Element :: struct {
}
ge_clear :: proc "contextless" (ge: ^Group_Element) {
- mem.zero_explicit(ge, size_of(Group_Element))
+ zero_explicit(ge, size_of(Group_Element))
}
ge_set :: proc "contextless" (ge, a: ^Group_Element) {
@@ -159,7 +160,7 @@ ge_set_bytes :: proc "contextless" (ge: ^Group_Element, b: []byte) -> bool {
ge_cond_assign(ge, &tmp, is_canonical)
- mem.zero_explicit(&buf, size_of(buf))
+ zero_explicit(&buf, size_of(buf))
return is_canonical == 1
}
@@ -231,8 +232,8 @@ ge_add :: proc "contextless" (ge, a, b: ^Group_Element) {
scratch: Add_Scratch = ---
ge_add_addend(ge, a, &b_, &scratch)
- mem.zero_explicit(&b_, size_of(Addend_Group_Element))
- mem.zero_explicit(&scratch, size_of(Add_Scratch))
+ zero_explicit(&b_, size_of(Addend_Group_Element))
+ zero_explicit(&scratch, size_of(Add_Scratch))
}
@(private)
@@ -352,7 +353,7 @@ ge_double :: proc "contextless" (ge, a: ^Group_Element, scratch: ^Double_Scratch
field.fe_carry_mul(&ge.z, F, G_)
if sanitize {
- mem.zero_explicit(scratch, size_of(Double_Scratch))
+ zero_explicit(scratch, size_of(Double_Scratch))
}
}
@@ -420,4 +421,4 @@ ge_in_prime_order_subgroup_vartime :: proc "contextless" (ge: ^Group_Element) ->
tmp: Group_Element = ---
ge_scalarmult_raw(&tmp, ge, &SC_ELL, true)
return ge_equal(&tmp, &GE_IDENTITY) == 1
-}
+} \ No newline at end of file
diff --git a/core/crypto/_edwards25519/edwards25519_scalar.odin b/core/crypto/_edwards25519/edwards25519_scalar.odin
index 68c79a6e8..5dff03f67 100644
--- a/core/crypto/_edwards25519/edwards25519_scalar.odin
+++ b/core/crypto/_edwards25519/edwards25519_scalar.odin
@@ -1,7 +1,6 @@
package _edwards25519
import field "core:crypto/_fiat/field_scalar25519"
-import "core:mem"
Scalar :: field.Montgomery_Domain_Field_Element
@@ -19,7 +18,7 @@ sc_set_u64 :: proc "contextless" (sc: ^Scalar, i: u64) {
tmp := field.Non_Montgomery_Domain_Field_Element{i, 0, 0, 0}
field.fe_to_montgomery(sc, &tmp)
- mem.zero_explicit(&tmp, size_of(tmp))
+ zero_explicit(&tmp, size_of(tmp))
}
@(require_results)
@@ -36,7 +35,7 @@ sc_set_bytes_rfc8032 :: proc "contextless" (sc: ^Scalar, b: []byte) {
}
sc_clear :: proc "contextless" (sc: ^Scalar) {
- mem.zero_explicit(sc, size_of(Scalar))
+ zero_explicit(sc, size_of(Scalar))
}
sc_set :: field.fe_set
diff --git a/core/crypto/_edwards25519/edwards25519_scalar_mul.odin b/core/crypto/_edwards25519/edwards25519_scalar_mul.odin
index d4ffa1075..548062c78 100644
--- a/core/crypto/_edwards25519/edwards25519_scalar_mul.odin
+++ b/core/crypto/_edwards25519/edwards25519_scalar_mul.odin
@@ -3,7 +3,6 @@ package _edwards25519
import "core:crypto"
import field "core:crypto/_fiat/field_scalar25519"
import subtle "core:crypto/_subtle"
-import "core:mem"
ge_scalarmult :: proc "contextless" (ge, p: ^Group_Element, sc: ^Scalar) {
tmp: field.Non_Montgomery_Domain_Field_Element
@@ -11,7 +10,7 @@ ge_scalarmult :: proc "contextless" (ge, p: ^Group_Element, sc: ^Scalar) {
ge_scalarmult_raw(ge, p, &tmp)
- mem.zero_explicit(&tmp, size_of(tmp))
+ zero_explicit(&tmp, size_of(tmp))
}
ge_scalarmult_vartime :: proc "contextless" (ge, p: ^Group_Element, sc: ^Scalar) {
@@ -134,9 +133,9 @@ ge_scalarmult_raw :: proc "contextless" (
if !unsafe_is_vartime {
ge_clear(&tmp)
- mem.zero_explicit(&tmp_add, size_of(Add_Scratch))
- mem.zero_explicit(&tmp_addend, size_of(Addend_Group_Element))
- mem.zero_explicit(&tmp_dbl, size_of(Double_Scratch))
+ zero_explicit(&tmp_add, size_of(Add_Scratch))
+ zero_explicit(&tmp_addend, size_of(Addend_Group_Element))
+ zero_explicit(&tmp_dbl, size_of(Double_Scratch))
}
}
diff --git a/core/crypto/_edwards25519/edwards25519_scalar_mul_base.odin b/core/crypto/_edwards25519/edwards25519_scalar_mul_base.odin
index 6820d618e..51305af2a 100644
--- a/core/crypto/_edwards25519/edwards25519_scalar_mul_base.odin
+++ b/core/crypto/_edwards25519/edwards25519_scalar_mul_base.odin
@@ -4,7 +4,6 @@ import "core:crypto"
import field "core:crypto/_fiat/field_curve25519"
import scalar "core:crypto/_fiat/field_scalar25519"
import subtle "core:crypto/_subtle"
-import "core:mem"
ge_scalarmult_basepoint :: proc "contextless" (ge: ^Group_Element, sc: ^Scalar) {
when crypto.COMPACT_IMPLS == true {
@@ -27,9 +26,9 @@ ge_scalarmult_basepoint :: proc "contextless" (ge: ^Group_Element, sc: ^Scalar)
mul_bp_tbl_add(ge, &Gen_Multiply_Table_edwards25519_hi[i], hi, &tmp_add, &tmp_addend, false)
}
- mem.zero_explicit(&tmp_sc, size_of(tmp_sc))
- mem.zero_explicit(&tmp_add, size_of(Add_Scratch))
- mem.zero_explicit(&tmp_addend, size_of(Basepoint_Addend_Group_Element))
+ zero_explicit(&tmp_sc, size_of(tmp_sc))
+ zero_explicit(&tmp_add, size_of(Add_Scratch))
+ zero_explicit(&tmp_addend, size_of(Basepoint_Addend_Group_Element))
}
}