@@ -76,53 +76,7 @@ const commonSourceFiles = await sources('common', (name) => name !== 'randombyte
7676const kemSourceFiles = ( await Promise . all ( kemNames . map ( ( kem ) => sources ( `crypto_kem/${ kem } /clean` ) ) ) ) . flat ( ) ;
7777const signSourceFiles = ( await Promise . all ( signNames . map ( ( sign ) => sources ( `crypto_sign/${ sign } /clean` ) ) ) ) . flat ( ) ;
7878
79- const wrapperCode = `// Some implementations do not provide certain functions as symbols but only as
80- // macros with parameters, which we cannot export. Implement symbols here.
81-
82- ${ signNames . map ( ( sign ) => `#include "../../${ depDir } /crypto_sign/${ sign } /clean/api.h"` ) . join ( '\n' ) }
83-
84- ${ functions ( signNames , 'sign' , 'signature' ) . map ( ( fn ) => `#ifdef ${ fn }
85- static inline int _fn_symbol_${ fn } (uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk) {
86- return ${ fn } (sig, siglen, m, mlen, sk);
87- }
88- #undef ${ fn }
89- int ${ fn } (uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk) {
90- return _fn_symbol_${ fn } (sig, siglen, m, mlen, sk);
91- }
92- #endif` ) . join ( '\n' ) }
93- ${ functions ( signNames , 'sign' , 'sign' ) . map ( ( fn ) => `#ifdef ${ fn }
94- static inline int _fn_symbol_${ fn } (uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk) {
95- return ${ fn } (sig, siglen, m, mlen, sk);
96- }
97- #undef ${ fn }
98- int ${ fn } (uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk) {
99- return _fn_symbol_${ fn } (sig, siglen, m, mlen, sk);
100- }
101- #endif` ) . join ( '\n' ) }
102- ${ functions ( signNames , 'sign' , 'verify' ) . map ( ( fn ) => `#ifdef ${ fn }
103- static inline int _fn_symbol_${ fn } (const uint8_t *sig, size_t siglen, const uint8_t *m, size_t mlen, const uint8_t *pk) {
104- return ${ fn } (sig, siglen, m, mlen, pk);
105- }
106- #undef ${ fn }
107- int ${ fn } (const uint8_t *sig, size_t siglen, const uint8_t *m, size_t mlen, const uint8_t *pk) {
108- return _fn_symbol_${ fn } (sig, siglen, m, mlen, pk);
109- }
110- #endif
111- ` ) . join ( '\n' ) }
112- ${ functions ( signNames , 'sign' , 'open' ) . map ( ( fn ) => `#ifdef ${ fn }
113- static inline int _fn_symbol_${ fn } (uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk) {
114- return ${ fn } (sig, siglen, m, mlen, sk);
115- }
116- #undef ${ fn }
117- int ${ fn } (uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk) {
118- return _fn_symbol_${ fn } (sig, siglen, m, mlen, sk);
119- }
120- #endif` ) . join ( '\n' ) }
121- ` ;
122-
123- await writeFile ( `${ buildDir } /missing-symbols.c` , wrapperCode ) ;
124-
125- console . log ( `Compiling ${ commonSourceFiles . length } common source files, ${ kemSourceFiles . length } KEM source files, ${ signSourceFiles . length } sign source files, and missing symbols` ) ;
79+ console . log ( `Compiling ${ commonSourceFiles . length } common source files, ${ kemSourceFiles . length } KEM source files, ${ signSourceFiles . length } sign source files` ) ;
12680
12781const proc = spawn ( 'emcc' , [
12882 '-std=c11' ,
@@ -142,7 +96,6 @@ const proc = spawn('emcc', [
14296 ...commonSourceFiles ,
14397 ...kemSourceFiles ,
14498 ...signSourceFiles ,
145- `${ buildDir } /missing-symbols.c` ,
14699] , {
147100 stdio : 'inherit'
148101} ) ;
@@ -151,7 +104,5 @@ if (code !== 0) {
151104 throw new Error ( `emcc exited with ${ code !== null ? `code ${ code } ` : `signal ${ signal } ` } ` ) ;
152105}
153106
154- await unlink ( `${ buildDir } /missing-symbols.c` ) ;
155-
156107const { size } = await stat ( `${ buildDir } /pqclean.wasm` ) ;
157108console . log ( `WebAssembly module size is ${ ( size / 1024 ) . toFixed ( 1 ) } KiB` ) ;
0 commit comments