Skip to content

Commit

Permalink
remove static funtion declarations in kyber
Browse files Browse the repository at this point in the history
  • Loading branch information
franziskuskiefer committed Dec 19, 2023
1 parent ec61923 commit c046667
Show file tree
Hide file tree
Showing 11 changed files with 730 additions and 601 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ endif()
if(BUILD_LIBCRUX)
add_library(libcrux_static STATIC ${LIBCRUX_SOURCES})
if(NOT MSVC)
target_compile_options(libcrux_static PRIVATE -g -Wall -Wextra -pedantic -Wshadow)
target_compile_options(libcrux_static PRIVATE -Wall -Wextra -pedantic -Werror=shadow -Werror=unused-function)
endif()
endif()

Expand Down
6 changes: 1 addition & 5 deletions libcrux/include/Eurydice.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
This file was generated by KaRaMeL <https://github.com/FStarLang/karamel>
KaRaMeL invocation: /Users/franziskus/repos/eurydice//eurydice ../libcrux_kyber.llbc
F* version: d0aa54cf
KaRaMeL version: 8e0595bd
KaRaMeL version: 11522064
*/

#ifndef __Eurydice_H
Expand All @@ -17,10 +17,6 @@ typedef struct core_ops_range_Range__size_t_s
}
core_ops_range_Range__size_t;

typedef size_t core_ops_range_RangeTo__size_t;

typedef size_t core_ops_range_RangeFrom__size_t;

extern uint8_t Eurydice_bitand_pv_u8(uint8_t *x, uint8_t y);

extern uint8_t Eurydice_shr_pv_u8(uint8_t *x, int32_t y);
Expand Down
62 changes: 31 additions & 31 deletions libcrux/include/eurydice_glue.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include "krmllib.h"
#include "lowstar_endianness.h"

// SLICES, ARRAYS, ETC.

Expand All @@ -21,25 +21,25 @@ typedef struct {
// remark above about how pointer arithmetic works in C), meaning either pointer or array type.
#define EURYDICE_SLICE(x, start, end) ((Eurydice_slice){ .ptr = (void*)(x + start), .len = end - start })
#define EURYDICE_SLICE_LEN(s, _) s.len
#define Eurydice_slice_index(s, i, t) (((t*) s.ptr)[i])
#define Eurydice_slice_subslice(s, r, t, _) EURYDICE_SLICE((t*)s.ptr, r.start, r.end)
#define Eurydice_slice_subslice_to(s, subslice_end_pos, t, _) EURYDICE_SLICE((t*)s.ptr, 0, subslice_end_pos)
#define Eurydice_slice_subslice_from(s, subslice_start_pos, t, _) EURYDICE_SLICE((t*)s.ptr, subslice_start_pos, s.len)
#define Eurydice_array_to_slice(end, x, t) EURYDICE_SLICE(x, 0, end) /* x is already at an array type, no need for cast */
#define Eurydice_array_to_subslice(_arraylen, x, r, t, _) EURYDICE_SLICE((t*)x, r.start, r.end)
#define Eurydice_array_to_subslice_to(_size, x, r, t, _range_t) EURYDICE_SLICE((t*)x, 0, r)
#define Eurydice_array_to_subslice_from(size, x, r, t, _range_t) EURYDICE_SLICE((t*)x, r, size)
#define Eurydice_array_repeat(dst, len, init, t) ERROR "should've been desugared"
#define core_slice___Slice_T___len(s, t) EURYDICE_SLICE_LEN(s, t)
#define core_slice___Slice_T___copy_from_slice(dst, src, t) memcpy(dst.ptr, src.ptr, dst.len * sizeof(t))
#define core_array___Array_T__N__23__as_slice(len_, ptr_, t) ((Eurydice_slice){ .ptr = ptr_, .len = len_ })
#define Eurydice_slice_index(s, i, t, _ret_t) (((t*) s.ptr)[i])
#define Eurydice_slice_subslice(s, r, t, _, _ret_t) EURYDICE_SLICE((t*)s.ptr, r.start, r.end)
#define Eurydice_slice_subslice_to(s, subslice_end_pos, t, _, _ret_t) EURYDICE_SLICE((t*)s.ptr, 0, subslice_end_pos)
#define Eurydice_slice_subslice_from(s, subslice_start_pos, t, _, _ret_t) EURYDICE_SLICE((t*)s.ptr, subslice_start_pos, s.len)
#define Eurydice_array_to_slice(end, x, t, _ret_t) EURYDICE_SLICE(x, 0, end) /* x is already at an array type, no need for cast */
#define Eurydice_array_to_subslice(_arraylen, x, r, t, _, _ret_t) EURYDICE_SLICE((t*)x, r.start, r.end)
#define Eurydice_array_to_subslice_to(_size, x, r, t, _range_t, _ret_t) EURYDICE_SLICE((t*)x, 0, r)
#define Eurydice_array_to_subslice_from(size, x, r, t, _range_t, _ret_t) EURYDICE_SLICE((t*)x, r, size)
#define Eurydice_array_repeat(dst, len, init, t, _ret_t) ERROR "should've been desugared"
#define core_slice___Slice_T___len(s, t, _ret_t) EURYDICE_SLICE_LEN(s, t)
#define core_slice___Slice_T___copy_from_slice(dst, src, t, _ret_t) memcpy(dst.ptr, src.ptr, dst.len * sizeof(t))
#define core_array___Array_T__N__23__as_slice(len_, ptr_, t, _ret_t) ((Eurydice_slice){ .ptr = ptr_, .len = len_ })

#define core_array_TryFromSliceError uint8_t

#define core_array_equality___Array_A__N___eq(sz, a1, a2, t, _) (memcmp(a1, a2, sz * sizeof(t)) == 0)
#define core_array_equality___Array_A__N___eq(sz, a1, a2, t, _, _ret_t) (memcmp(a1, a2, sz * sizeof(t)) == 0)

#define core_slice___Slice_T___split_at(slice, mid, element_type) \
((K___Eurydice_slice_##element_type##_Eurydice_slice_##element_type){ \
#define core_slice___Slice_T___split_at(slice, mid, element_type, ret_t) \
((ret_t){ \
.fst = EURYDICE_SLICE((element_type*)slice.ptr, 0, mid), \
.snd = EURYDICE_SLICE((element_type*)slice.ptr, mid, slice.len)})

Expand All @@ -51,7 +51,7 @@ typedef struct
}
result_tryfromslice_flexible;

#define Eurydice_slice_to_array2(dst, src, _, t_arr) Eurydice_slice_to_array3((result_tryfromslice_flexible *)dst, src, sizeof(t_arr))
#define Eurydice_slice_to_array2(dst, src, _, t_arr, _ret_t) Eurydice_slice_to_array3((result_tryfromslice_flexible *)dst, src, sizeof(t_arr))

static inline void Eurydice_slice_to_array3(result_tryfromslice_flexible *dst, Eurydice_slice src, size_t sz) {
dst->tag = 0;
Expand Down Expand Up @@ -83,13 +83,13 @@ static uint32_t core_num__u32_8__BITS = 32;
// ITERATORS

#define core_num_nonzero_NonZeroUsize size_t
#define core_iter_range__core__ops__range__Range_A__3__next(iter_ptr, t) ( \
#define core_iter_range__core__ops__range__Range_A__3__next(iter_ptr, t, ret_t) ( \
((iter_ptr)->start == (iter_ptr)->end) ? \
((core_option_Option__##t) { .tag = core_option_None }) : \
((core_option_Option__##t) { .tag = core_option_Some, .f0 = (iter_ptr)->start++ }) \
((ret_t) { .tag = core_option_None }) : \
((ret_t) { .tag = core_option_Some, .f0 = (iter_ptr)->start++ }) \
)

#define core_iter_traits_collect__I__into_iter(x, t) (x)
#define core_iter_traits_collect__I__into_iter(x, t, _ret_t) (x)

typedef struct {
Eurydice_slice slice;
Expand All @@ -110,32 +110,32 @@ static inline Eurydice_slice chunk_next(Eurydice_chunks *chunks, size_t element_
return curr_chunk;
}

#define core_slice___Slice_T___chunks(slice_, sz_, t) ((Eurydice_chunks){ .slice = slice_, .chunk_size = sz_ })
#define core_slice___Slice_T___chunks_exact(slice_, sz_, t) ((Eurydice_chunks){ \
#define core_slice___Slice_T___chunks(slice_, sz_, t, _ret_t) ((Eurydice_chunks){ .slice = slice_, .chunk_size = sz_ })
#define core_slice___Slice_T___chunks_exact(slice_, sz_, t, _ret_t) ((Eurydice_chunks){ \
.slice = { .ptr = slice_.ptr, .len = slice_.len - (slice_.len % sz_) }, \
.chunk_size = sz_ })
#define core_slice_iter_Chunks Eurydice_chunks
#define core_slice_iter_ChunksExact Eurydice_chunks
#define core_slice_iter__core__slice__iter__Chunks__a__T__70__next(iter, t) \
#define core_slice_iter__core__slice__iter__Chunks__a__T__70__next(iter, t, ret_t) \
(((iter)->slice.len == 0) ? \
((core_option_Option__Eurydice_slice_##t) { .tag = core_option_None }) : \
((core_option_Option__Eurydice_slice_##t){ \
((ret_t) { .tag = core_option_None }) : \
((ret_t){ \
.tag = core_option_Some, \
.f0 = chunk_next(iter, sizeof(t)) }))
#define core_slice_iter__core__slice__iter__ChunksExact__a__T__89__next(iter, t) \
#define core_slice_iter__core__slice__iter__ChunksExact__a__T__89__next(iter, t, _ret_t) \
core_slice_iter__core__slice__iter__Chunks__a__T__70__next(iter, t)

typedef struct {
Eurydice_slice s;
size_t index;
} Eurydice_slice_iterator;

#define core_slice___Slice_T___iter(x, t) ((Eurydice_slice_iterator){ .s = x, .index = 0 })
#define core_slice___Slice_T___iter(x, t, _ret_t) ((Eurydice_slice_iterator){ .s = x, .index = 0 })
#define core_slice_iter_Iter Eurydice_slice_iterator
#define core_slice_iter__core__slice__iter__Iter__a__T__181__next(iter, t) \
#define core_slice_iter__core__slice__iter__Iter__a__T__181__next(iter, t, ret_t) \
(((iter)->index == (iter)->s.len) ? \
((core_option_Option___##t##_) { .tag = core_option_None }) : \
((core_option_Option___##t##_){ \
((ret_t) { .tag = core_option_None }) : \
((ret_t){ \
.tag = core_option_Some, \
.f0 = ((iter)->index++, &((t*)((iter)->s.ptr))[(iter)->index-1]) }))

Expand Down
49 changes: 49 additions & 0 deletions libcrux/include/internal/core.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
This file was generated by KaRaMeL <https://github.com/FStarLang/karamel>
KaRaMeL invocation: /Users/franziskus/repos/eurydice//eurydice ../libcrux_kyber.llbc
F* version: d0aa54cf
KaRaMeL version: 11522064
*/

#ifndef __internal_core_H
#define __internal_core_H

#include "eurydice_glue.h"

static inline int64_t core_convert_num__i64_59__from(int32_t x0);

#define core_option_None 0
#define core_option_Some 1

typedef uint8_t core_option_Option__size_t_tags;

typedef struct core_option_Option__size_t_s
{
core_option_Option__size_t_tags tag;
size_t f0;
}
core_option_Option__size_t;

static inline uint16_t core_num__u16_7__wrapping_add(uint16_t x0, uint16_t x1);

static inline uint8_t core_num__u8_6__wrapping_sub(uint8_t x0, uint8_t x1);

static uint32_t core_num__u32_8__BITS;

typedef struct core_option_Option__uint32_t_s
{
core_option_Option__size_t_tags tag;
uint32_t f0;
}
core_option_Option__uint32_t;

typedef struct core_option_Option__int32_t_s
{
core_option_Option__size_t_tags tag;
int32_t f0;
}
core_option_Option__int32_t;


#define __internal_core_H_DEFINED
#endif
23 changes: 16 additions & 7 deletions libcrux/include/libcrux_hacl_glue.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,23 @@ typedef struct
} __uint8_t_840size_t__uint8_t_840size_t__uint8_t_840size_t__uint8_t_840size_t_;

extern void
libcrux_digest_shake256(size_t len, Eurydice_slice input, uint8_t* out);
libcrux_digest_shake256f(size_t len, Eurydice_slice input, uint8_t* out);

#define libcrux_digest_shake256(len, input, out, _) \
libcrux_digest_shake256f(len, input, out)

extern void
libcrux_digest_shake128(size_t len, Eurydice_slice input, uint8_t* out);
libcrux_digest_shake128f(size_t len, Eurydice_slice input, uint8_t* out);

#define libcrux_digest_shake128(len, input, out, _) \
libcrux_digest_shake128f(len, input, out)

extern __uint8_t_840size_t__uint8_t_840size_t__uint8_t_840size_t__uint8_t_840size_t_
libcrux_digest_shake128x4(size_t len,
Eurydice_slice input0,
Eurydice_slice input1,
Eurydice_slice input2,
Eurydice_slice input3);
libcrux_digest_shake128x4f(size_t len,
Eurydice_slice input0,
Eurydice_slice input1,
Eurydice_slice input2,
Eurydice_slice input3);

#define libcrux_digest_shake128x4(len, input0, input1, input2, input3, _) \
libcrux_digest_shake128x4f(len, input0, input1, input2, input3)
Loading

0 comments on commit c046667

Please sign in to comment.