Skip to content

Commit

Permalink
smaller change
Browse files Browse the repository at this point in the history
  • Loading branch information
franziskuskiefer committed Oct 10, 2023
1 parent 638c2d9 commit b8e7179
Show file tree
Hide file tree
Showing 14 changed files with 65 additions and 92 deletions.
12 changes: 4 additions & 8 deletions proofs/fstar/extraction/Libcrux.Kem.Kyber.Compress.fst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module Libcrux.Kem.Kyber.Compress
open Core

let compress
(#v_COEFFICIENT_BITS: u32)
(#v_COEFFICIENT_BITS: usize)
(re: Libcrux.Kem.Kyber.Arithmetic.t_KyberPolynomialRingElement)
: Libcrux.Kem.Kyber.Arithmetic.t_KyberPolynomialRingElement =
let re:Libcrux.Kem.Kyber.Arithmetic.t_KyberPolynomialRingElement =
Expand Down Expand Up @@ -35,18 +35,14 @@ let decompress
in
re

let compress_q (#v_COEFFICIENT_BITS: u32) (fe: u16) : i32 =
let compress_q (#v_COEFFICIENT_BITS: usize) (fe: u16) : i32 =
let _:Prims.unit =
if true
then
let _:Prims.unit =
if
~.((cast v_COEFFICIENT_BITS <: usize) <=.
Libcrux.Kem.Kyber.Constants.v_BITS_PER_COEFFICIENT
<:
bool)
if ~.(v_COEFFICIENT_BITS <=. Libcrux.Kem.Kyber.Constants.v_BITS_PER_COEFFICIENT <: bool)
then
Rust_primitives.Hax.never_to_any (Core.Panicking.panic "assertion failed: COEFFICIENT_BITS as usize <= BITS_PER_COEFFICIENT"
Rust_primitives.Hax.never_to_any (Core.Panicking.panic "assertion failed: COEFFICIENT_BITS <= BITS_PER_COEFFICIENT"

<:
Rust_primitives.Hax.t_Never)
Expand Down
17 changes: 7 additions & 10 deletions proofs/fstar/extraction/Libcrux.Kem.Kyber.Ind_cpa.fst
Original file line number Diff line number Diff line change
Expand Up @@ -469,9 +469,7 @@ let serialize_secret_key
Libcrux.Kem.Kyber.Conversions.t_UpdatableArray v_SERIALIZED_KEY_LEN)

let compress_then_encode_u
(#v_K #v_OUT_LEN: usize)
(#v_COMPRESSION_FACTOR: u32)
(#v_BLOCK_LEN: usize)
(#v_K #v_OUT_LEN #v_COMPRESSION_FACTOR #v_BLOCK_LEN: usize)
(input: array Libcrux.Kem.Kyber.Arithmetic.t_KyberPolynomialRingElement v_K)
: array u8 v_OUT_LEN =
let out:array u8 v_OUT_LEN = Rust_primitives.Hax.repeat 0uy v_OUT_LEN in
Expand Down Expand Up @@ -516,9 +514,8 @@ let compress_then_encode_u
out

let encrypt
(#v_K #v_CIPHERTEXT_SIZE #v_T_AS_NTT_ENCODED_SIZE #v_C1_LEN #v_C2_LEN: usize)
(#v_VECTOR_U_COMPRESSION_FACTOR #v_VECTOR_V_COMPRESSION_FACTOR: u32)
(#v_BLOCK_LEN: usize)
(#v_K #v_CIPHERTEXT_SIZE #v_T_AS_NTT_ENCODED_SIZE #v_C1_LEN #v_C2_LEN #v_VECTOR_U_COMPRESSION_FACTOR #v_VECTOR_V_COMPRESSION_FACTOR #v_BLOCK_LEN:
usize)
(public_key: slice u8)
(message: array u8 (sz 32))
(randomness: slice u8)
Expand Down Expand Up @@ -672,8 +669,8 @@ let encrypt
Core.Convert.f_into ciphertext, sampling_A_error

let decrypt
(#v_K #v_CIPHERTEXT_SIZE #v_VECTOR_U_ENCODED_SIZE: usize)
(#v_VECTOR_U_COMPRESSION_FACTOR #v_VECTOR_V_COMPRESSION_FACTOR: u32)
(#v_K #v_CIPHERTEXT_SIZE #v_VECTOR_U_ENCODED_SIZE #v_VECTOR_U_COMPRESSION_FACTOR #v_VECTOR_V_COMPRESSION_FACTOR:
usize)
(secret_key: slice u8)
(ciphertext: Libcrux.Kem.Kyber.t_KyberCiphertext v_CIPHERTEXT_SIZE)
: array u8 (sz 32) =
Expand All @@ -691,7 +688,7 @@ let decrypt
<:
slice u8)
((Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_VECTOR_U_COMPRESSION_FACTOR <: usize)
v_VECTOR_U_COMPRESSION_FACTOR
<:
usize) /!
sz 8
Expand Down Expand Up @@ -727,7 +724,7 @@ let decrypt
slice u8)
<:
Libcrux.Kem.Kyber.Arithmetic.t_KyberPolynomialRingElement)
(cast v_VECTOR_V_COMPRESSION_FACTOR <: usize)
v_VECTOR_V_COMPRESSION_FACTOR
in
let secret_as_ntt:array Libcrux.Kem.Kyber.Arithmetic.t_KyberPolynomialRingElement v_K =
Core.Iter.Traits.Iterator.Iterator.fold (Core.Iter.Traits.Collect.f_into_iter (Core.Iter.Traits.Iterator.f_enumerate
Expand Down
10 changes: 4 additions & 6 deletions proofs/fstar/extraction/Libcrux.Kem.Kyber.Kyber1024.fst
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,20 @@ let v_T_AS_NTT_ENCODED_SIZE_1024_: usize =
usize) /!
sz 8

let v_VECTOR_U_COMPRESSION_FACTOR_1024_: u32 = 11ul
let v_VECTOR_U_COMPRESSION_FACTOR_1024_: usize = sz 11

let v_C1_BLOCK_SIZE_1024_: usize =
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_VECTOR_U_COMPRESSION_FACTOR_1024_ <: usize)
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *! v_VECTOR_U_COMPRESSION_FACTOR_1024_
<:
usize) /!
sz 8

let v_C1_SIZE_1024_: usize = v_C1_BLOCK_SIZE_1024_ *! v_RANK_1024_

let v_VECTOR_V_COMPRESSION_FACTOR_1024_: u32 = 5ul
let v_VECTOR_V_COMPRESSION_FACTOR_1024_: usize = sz 5

let v_C2_SIZE_1024_: usize =
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_VECTOR_V_COMPRESSION_FACTOR_1024_ <: usize)
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *! v_VECTOR_V_COMPRESSION_FACTOR_1024_
<:
usize) /!
sz 8
Expand Down
10 changes: 4 additions & 6 deletions proofs/fstar/extraction/Libcrux.Kem.Kyber.Kyber512.fst
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,20 @@ let v_T_AS_NTT_ENCODED_SIZE_512_: usize =
usize) /!
sz 8

let v_VECTOR_U_COMPRESSION_FACTOR_512_: u32 = 10ul
let v_VECTOR_U_COMPRESSION_FACTOR_512_: usize = sz 10

let v_C1_BLOCK_SIZE_512_: usize =
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_VECTOR_U_COMPRESSION_FACTOR_512_ <: usize)
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *! v_VECTOR_U_COMPRESSION_FACTOR_512_
<:
usize) /!
sz 8

let v_C1_SIZE_512_: usize = v_C1_BLOCK_SIZE_512_ *! v_RANK_512_

let v_VECTOR_V_COMPRESSION_FACTOR_512_: u32 = 4ul
let v_VECTOR_V_COMPRESSION_FACTOR_512_: usize = sz 4

let v_C2_SIZE_512_: usize =
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_VECTOR_V_COMPRESSION_FACTOR_512_ <: usize)
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *! v_VECTOR_V_COMPRESSION_FACTOR_512_
<:
usize) /!
sz 8
Expand Down
10 changes: 4 additions & 6 deletions proofs/fstar/extraction/Libcrux.Kem.Kyber.Kyber768.fst
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,20 @@ let v_T_AS_NTT_ENCODED_SIZE_768_: usize =
usize) /!
sz 8

let v_VECTOR_U_COMPRESSION_FACTOR_768_: u32 = 10ul
let v_VECTOR_U_COMPRESSION_FACTOR_768_: usize = sz 10

let v_C1_BLOCK_SIZE_768_: usize =
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_VECTOR_U_COMPRESSION_FACTOR_768_ <: usize)
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *! v_VECTOR_U_COMPRESSION_FACTOR_768_
<:
usize) /!
sz 8

let v_C1_SIZE_768_: usize = v_C1_BLOCK_SIZE_768_ *! v_RANK_768_

let v_VECTOR_V_COMPRESSION_FACTOR_768_: u32 = 4ul
let v_VECTOR_V_COMPRESSION_FACTOR_768_: usize = sz 4

let v_C2_SIZE_768_: usize =
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_VECTOR_V_COMPRESSION_FACTOR_768_ <: usize)
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *! v_VECTOR_V_COMPRESSION_FACTOR_768_
<:
usize) /!
sz 8
Expand Down
17 changes: 7 additions & 10 deletions proofs/fstar/extraction/Libcrux.Kem.Kyber.Serialize.fst
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,15 @@ module Libcrux.Kem.Kyber.Serialize
open Core

let serialize_little_endian
(#v_COMPRESSION_FACTOR: u32)
(#v_OUT_LEN: usize)
(#v_COMPRESSION_FACTOR #v_OUT_LEN: usize)
(re: Libcrux.Kem.Kyber.Arithmetic.t_KyberPolynomialRingElement)
: array u8 v_OUT_LEN =
let _:Prims.unit =
if true
then
let _:Prims.unit =
if
~.(((Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_COMPRESSION_FACTOR <: usize)
~.(((Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *! v_COMPRESSION_FACTOR
<:
usize) /!
sz 8
Expand All @@ -32,7 +30,7 @@ let serialize_little_endian
(Rust_primitives.unsize (let list =
[
Core.Fmt.Rt.impl_1__new_display ((Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_COMPRESSION_FACTOR <: usize)
v_COMPRESSION_FACTOR
<:
usize) /!
sz 8
Expand All @@ -54,7 +52,7 @@ let serialize_little_endian
in
()
in
match v_COMPRESSION_FACTOR with
match cast v_COMPRESSION_FACTOR <: u32 with
| 1ul -> serialize_little_endian_1_ re
| 4ul -> serialize_little_endian_4_ re
| 5ul -> serialize_little_endian_5_ re
Expand Down Expand Up @@ -84,16 +82,15 @@ let serialize_little_endian
<:
Rust_primitives.Hax.t_Never)

let deserialize_little_endian (#v_COMPRESSION_FACTOR: u32) (serialized: slice u8)
let deserialize_little_endian (#v_COMPRESSION_FACTOR: usize) (serialized: slice u8)
: Libcrux.Kem.Kyber.Arithmetic.t_KyberPolynomialRingElement =
let _:Prims.unit =
if true
then
let _:Prims.unit =
match
Core.Slice.impl__len serialized,
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *!
(cast v_COMPRESSION_FACTOR <: usize)
(Libcrux.Kem.Kyber.Constants.v_COEFFICIENTS_IN_RING_ELEMENT *! v_COMPRESSION_FACTOR
<:
usize) /!
sz 8
Expand All @@ -111,7 +108,7 @@ let deserialize_little_endian (#v_COMPRESSION_FACTOR: u32) (serialized: slice u8
in
()
in
match v_COMPRESSION_FACTOR with
match cast v_COMPRESSION_FACTOR <: u32 with
| 1ul -> deserialize_little_endian_1_ serialized
| 4ul -> deserialize_little_endian_4_ serialized
| 5ul -> deserialize_little_endian_5_ serialized
Expand Down
8 changes: 2 additions & 6 deletions proofs/fstar/extraction/Libcrux.Kem.Kyber.fst
Original file line number Diff line number Diff line change
Expand Up @@ -447,10 +447,8 @@ let generate_keypair
Core.Result.Result_Ok (Libcrux.Kem.Kyber.Types.impl__from private_key public_key)

let encapsulate
(#v_K #v_SHARED_SECRET_SIZE #v_CIPHERTEXT_SIZE #v_PUBLIC_KEY_SIZE #v_T_AS_NTT_ENCODED_SIZE #v_C1_SIZE #v_C2_SIZE:
(#v_K #v_SHARED_SECRET_SIZE #v_CIPHERTEXT_SIZE #v_PUBLIC_KEY_SIZE #v_T_AS_NTT_ENCODED_SIZE #v_C1_SIZE #v_C2_SIZE #v_VECTOR_U_COMPRESSION_FACTOR #v_VECTOR_V_COMPRESSION_FACTOR #v_VECTOR_U_BLOCK_LEN:
usize)
(#v_VECTOR_U_COMPRESSION_FACTOR #v_VECTOR_V_COMPRESSION_FACTOR: u32)
(#v_VECTOR_U_BLOCK_LEN: usize)
(public_key: t_KyberPublicKey v_PUBLIC_KEY_SIZE)
(randomness: array u8 v_SHARED_SECRET_SIZE)
: Core.Result.t_Result
Expand Down Expand Up @@ -533,10 +531,8 @@ let encapsulate
else Core.Result.Result_Ok (ciphertext, shared_secret)

let decapsulate
(#v_K #v_SECRET_KEY_SIZE #v_CPA_SECRET_KEY_SIZE #v_PUBLIC_KEY_SIZE #v_CIPHERTEXT_SIZE #v_T_AS_NTT_ENCODED_SIZE #v_C1_SIZE #v_C2_SIZE:
(#v_K #v_SECRET_KEY_SIZE #v_CPA_SECRET_KEY_SIZE #v_PUBLIC_KEY_SIZE #v_CIPHERTEXT_SIZE #v_T_AS_NTT_ENCODED_SIZE #v_C1_SIZE #v_C2_SIZE #v_VECTOR_U_COMPRESSION_FACTOR #v_VECTOR_V_COMPRESSION_FACTOR #v_C1_BLOCK_SIZE:
usize)
(#v_VECTOR_U_COMPRESSION_FACTOR #v_VECTOR_V_COMPRESSION_FACTOR: u32)
(#v_C1_BLOCK_SIZE: usize)
(secret_key: t_KyberPrivateKey v_SECRET_KEY_SIZE)
(ciphertext: t_KyberCiphertext v_CIPHERTEXT_SIZE)
: array u8 (sz 32) =
Expand Down
8 changes: 4 additions & 4 deletions src/kem/kyber.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ pub(super) fn encapsulate<
const T_AS_NTT_ENCODED_SIZE: usize,
const C1_SIZE: usize,
const C2_SIZE: usize,
const VECTOR_U_COMPRESSION_FACTOR: u32,
const VECTOR_V_COMPRESSION_FACTOR: u32,
const VECTOR_U_COMPRESSION_FACTOR: usize,
const VECTOR_V_COMPRESSION_FACTOR: usize,
const VECTOR_U_BLOCK_LEN: usize,
>(
public_key: &KyberPublicKey<PUBLIC_KEY_SIZE>,
Expand Down Expand Up @@ -148,8 +148,8 @@ pub(super) fn decapsulate<
const T_AS_NTT_ENCODED_SIZE: usize,
const C1_SIZE: usize,
const C2_SIZE: usize,
const VECTOR_U_COMPRESSION_FACTOR: u32,
const VECTOR_V_COMPRESSION_FACTOR: u32,
const VECTOR_U_COMPRESSION_FACTOR: usize,
const VECTOR_V_COMPRESSION_FACTOR: usize,
const C1_BLOCK_SIZE: usize,
>(
secret_key: &KyberPrivateKey<SECRET_KEY_SIZE>,
Expand Down
6 changes: 3 additions & 3 deletions src/kem/kyber/compress.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use super::{
conversions::to_unsigned_representative,
};

pub fn compress<const COEFFICIENT_BITS: u32>(
pub fn compress<const COEFFICIENT_BITS: usize>(
mut re: KyberPolynomialRingElement,
) -> KyberPolynomialRingElement {
re.coefficients = re
Expand All @@ -23,8 +23,8 @@ pub fn decompress(
re
}

fn compress_q<const COEFFICIENT_BITS: u32>(fe: u16) -> KyberFieldElement {
debug_assert!(COEFFICIENT_BITS as usize <= BITS_PER_COEFFICIENT);
fn compress_q<const COEFFICIENT_BITS: usize>(fe: u16) -> KyberFieldElement {
debug_assert!(COEFFICIENT_BITS <= BITS_PER_COEFFICIENT);

let two_pow_bit_size = 1u32 << COEFFICIENT_BITS;

Expand Down
14 changes: 7 additions & 7 deletions src/kem/kyber/ind_cpa.rs
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ pub fn serialize_secret_key<const SERIALIZED_KEY_LEN: usize>(
fn compress_then_encode_u<
const K: usize,
const OUT_LEN: usize,
const COMPRESSION_FACTOR: u32,
const COMPRESSION_FACTOR: usize,
const BLOCK_LEN: usize,
>(
input: [KyberPolynomialRingElement; K],
Expand All @@ -208,8 +208,8 @@ pub(crate) fn encrypt<
const T_AS_NTT_ENCODED_SIZE: usize,
const C1_LEN: usize,
const C2_LEN: usize,
const VECTOR_U_COMPRESSION_FACTOR: u32,
const VECTOR_V_COMPRESSION_FACTOR: u32,
const VECTOR_U_COMPRESSION_FACTOR: usize,
const VECTOR_V_COMPRESSION_FACTOR: usize,
const BLOCK_LEN: usize,
>(
public_key: &[u8],
Expand Down Expand Up @@ -295,8 +295,8 @@ pub(crate) fn decrypt<
const K: usize,
const CIPHERTEXT_SIZE: usize,
const VECTOR_U_ENCODED_SIZE: usize,
const VECTOR_U_COMPRESSION_FACTOR: u32,
const VECTOR_V_COMPRESSION_FACTOR: u32,
const VECTOR_U_COMPRESSION_FACTOR: usize,
const VECTOR_V_COMPRESSION_FACTOR: usize,
>(
secret_key: &[u8],
ciphertext: &super::KyberCiphertext<CIPHERTEXT_SIZE>,
Expand All @@ -306,7 +306,7 @@ pub(crate) fn decrypt<

// u := Decompress_q(Decode_{d_u}(c), d_u)
for (i, u_bytes) in ciphertext[..VECTOR_U_ENCODED_SIZE]
.chunks_exact((COEFFICIENTS_IN_RING_ELEMENT * VECTOR_U_COMPRESSION_FACTOR as usize) / 8)
.chunks_exact((COEFFICIENTS_IN_RING_ELEMENT * VECTOR_U_COMPRESSION_FACTOR) / 8)
.enumerate()
{
let u = deserialize_little_endian::<VECTOR_U_COMPRESSION_FACTOR>(u_bytes);
Expand All @@ -318,7 +318,7 @@ pub(crate) fn decrypt<
deserialize_little_endian::<VECTOR_V_COMPRESSION_FACTOR>(
&ciphertext[VECTOR_U_ENCODED_SIZE..],
),
VECTOR_V_COMPRESSION_FACTOR as usize,
VECTOR_V_COMPRESSION_FACTOR,
);

// sˆ := Decode_12(sk)
Expand Down
9 changes: 4 additions & 5 deletions src/kem/kyber/kyber1024.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,18 @@ const RANK_1024: usize = 4;
const RANKED_BYTES_PER_RING_ELEMENT_1024: usize = RANK_1024 * BITS_PER_RING_ELEMENT / 8;
const T_AS_NTT_ENCODED_SIZE_1024: usize =
(RANK_1024 * COEFFICIENTS_IN_RING_ELEMENT * BITS_PER_COEFFICIENT) / 8;
const VECTOR_U_COMPRESSION_FACTOR_1024: u32 = 11;
const VECTOR_U_COMPRESSION_FACTOR_1024: usize = 11;
// [hax]: hacspec/hacspec-v2#27 stealing error
// block_len::<VECTOR_U_COMPRESSION_FACTOR_1024>();
const C1_BLOCK_SIZE_1024: usize =
(COEFFICIENTS_IN_RING_ELEMENT * VECTOR_U_COMPRESSION_FACTOR_1024 as usize) / 8;
(COEFFICIENTS_IN_RING_ELEMENT * VECTOR_U_COMPRESSION_FACTOR_1024) / 8;
// [hax]: hacspec/hacspec-v2#27 stealing error
// serialized_len::<RANK_1024, C1_BLOCK_SIZE_1024>();
const C1_SIZE_1024: usize = C1_BLOCK_SIZE_1024 * RANK_1024;
const VECTOR_V_COMPRESSION_FACTOR_1024: u32 = 5;
const VECTOR_V_COMPRESSION_FACTOR_1024: usize = 5;
// [hax]: hacspec/hacspec-v2#27 stealing error
// block_len::<VECTOR_V_COMPRESSION_FACTOR_1024>()
const C2_SIZE_1024: usize =
(COEFFICIENTS_IN_RING_ELEMENT * VECTOR_V_COMPRESSION_FACTOR_1024 as usize) / 8;
const C2_SIZE_1024: usize = (COEFFICIENTS_IN_RING_ELEMENT * VECTOR_V_COMPRESSION_FACTOR_1024) / 8;
const CPA_PKE_SECRET_KEY_SIZE_1024: usize =
(RANK_1024 * COEFFICIENTS_IN_RING_ELEMENT * BITS_PER_COEFFICIENT) / 8;
const CPA_PKE_PUBLIC_KEY_SIZE_1024: usize = T_AS_NTT_ENCODED_SIZE_1024 + 32;
Expand Down
9 changes: 4 additions & 5 deletions src/kem/kyber/kyber512.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,18 @@ const RANK_512: usize = 2;
const RANKED_BYTES_PER_RING_ELEMENT_512: usize = RANK_512 * BITS_PER_RING_ELEMENT / 8;
const T_AS_NTT_ENCODED_SIZE_512: usize =
(RANK_512 * COEFFICIENTS_IN_RING_ELEMENT * BITS_PER_COEFFICIENT) / 8;
const VECTOR_U_COMPRESSION_FACTOR_512: u32 = 10;
const VECTOR_U_COMPRESSION_FACTOR_512: usize = 10;
// [hax]: hacspec/hacspec-v2#27 stealing error
// block_len::<VECTOR_U_COMPRESSION_FACTOR_512>()
const C1_BLOCK_SIZE_512: usize =
(COEFFICIENTS_IN_RING_ELEMENT * VECTOR_U_COMPRESSION_FACTOR_512 as usize) / 8;
(COEFFICIENTS_IN_RING_ELEMENT * VECTOR_U_COMPRESSION_FACTOR_512) / 8;
// [hax]: hacspec/hacspec-v2#27 stealing error
// serialized_len::<RANK_512, C1_BLOCK_SIZE_512>()
const C1_SIZE_512: usize = C1_BLOCK_SIZE_512 * RANK_512;
const VECTOR_V_COMPRESSION_FACTOR_512: u32 = 4;
const VECTOR_V_COMPRESSION_FACTOR_512: usize = 4;
// [hax]: hacspec/hacspec-v2#27 stealing error
// block_len::<VECTOR_V_COMPRESSION_FACTOR_512>()
const C2_SIZE_512: usize =
(COEFFICIENTS_IN_RING_ELEMENT * VECTOR_V_COMPRESSION_FACTOR_512 as usize) / 8;
const C2_SIZE_512: usize = (COEFFICIENTS_IN_RING_ELEMENT * VECTOR_V_COMPRESSION_FACTOR_512) / 8;
const CPA_PKE_SECRET_KEY_SIZE_512: usize =
(RANK_512 * COEFFICIENTS_IN_RING_ELEMENT * BITS_PER_COEFFICIENT) / 8;
const CPA_PKE_PUBLIC_KEY_SIZE_512: usize = T_AS_NTT_ENCODED_SIZE_512 + 32;
Expand Down
Loading

0 comments on commit b8e7179

Please sign in to comment.