master hovercats/oakiss / pkg / bearssl / gen.lua
  1cflags{
  2	'-Wall',
  3	'-I $srcdir/src',
  4	'-I $srcdir/inc',
  5	'-D BR_RDRAND=0',
  6	'-D BR_USE_GETENTROPY',
  7}
  8
  9pkg.hdrs = copy('$outdir/include', '$srcdir/inc', {
 10	'bearssl.h',
 11	'bearssl_aead.h',
 12	'bearssl_block.h',
 13	'bearssl_ec.h',
 14	'bearssl_hash.h',
 15	'bearssl_hmac.h',
 16	'bearssl_kdf.h',
 17	'bearssl_pem.h',
 18	'bearssl_prf.h',
 19	'bearssl_rand.h',
 20	'bearssl_rsa.h',
 21	'bearssl_ssl.h',
 22	'bearssl_x509.h',
 23})
 24pkg.hdrs.install = true
 25
 26lib('libbearssl.a', [[src/(
 27	settings.c
 28	aead/ccm.c
 29	aead/eax.c
 30	aead/gcm.c
 31	codec/ccopy.c
 32	codec/dec16be.c
 33	codec/dec16le.c
 34	codec/dec32be.c
 35	codec/dec32le.c
 36	codec/dec64be.c
 37	codec/dec64le.c
 38	codec/enc16be.c
 39	codec/enc16le.c
 40	codec/enc32be.c
 41	codec/enc32le.c
 42	codec/enc64be.c
 43	codec/enc64le.c
 44	codec/pemdec.c
 45	codec/pemenc.c
 46	ec/ec_all_m15.c
 47	ec/ec_all_m31.c
 48	ec/ec_c25519_i15.c
 49	ec/ec_c25519_i31.c
 50	ec/ec_c25519_m15.c
 51	ec/ec_c25519_m31.c
 52	ec/ec_c25519_m62.c
 53	ec/ec_c25519_m64.c
 54	ec/ec_curve25519.c
 55	ec/ec_default.c
 56	ec/ec_keygen.c
 57	ec/ec_p256_m15.c
 58	ec/ec_p256_m31.c
 59	ec/ec_p256_m62.c
 60	ec/ec_p256_m64.c
 61	ec/ec_prime_i15.c
 62	ec/ec_prime_i31.c
 63	ec/ec_pubkey.c
 64	ec/ec_secp256r1.c
 65	ec/ec_secp384r1.c
 66	ec/ec_secp521r1.c
 67	ec/ecdsa_atr.c
 68	ec/ecdsa_default_sign_asn1.c
 69	ec/ecdsa_default_sign_raw.c
 70	ec/ecdsa_default_vrfy_asn1.c
 71	ec/ecdsa_default_vrfy_raw.c
 72	ec/ecdsa_i15_bits.c
 73	ec/ecdsa_i15_sign_asn1.c
 74	ec/ecdsa_i15_sign_raw.c
 75	ec/ecdsa_i15_vrfy_asn1.c
 76	ec/ecdsa_i15_vrfy_raw.c
 77	ec/ecdsa_i31_bits.c
 78	ec/ecdsa_i31_sign_asn1.c
 79	ec/ecdsa_i31_sign_raw.c
 80	ec/ecdsa_i31_vrfy_asn1.c
 81	ec/ecdsa_i31_vrfy_raw.c
 82	ec/ecdsa_rta.c
 83	hash/dig_oid.c
 84	hash/dig_size.c
 85	hash/ghash_ctmul.c
 86	hash/ghash_ctmul32.c
 87	hash/ghash_ctmul64.c
 88	hash/ghash_pclmul.c
 89	hash/ghash_pwr8.c
 90	hash/md5.c
 91	hash/md5sha1.c
 92	hash/mgf1.c
 93	hash/multihash.c
 94	hash/sha1.c
 95	hash/sha2big.c
 96	hash/sha2small.c
 97	int/i15_add.c
 98	int/i15_bitlen.c
 99	int/i15_decmod.c
100	int/i15_decode.c
101	int/i15_decred.c
102	int/i15_encode.c
103	int/i15_fmont.c
104	int/i15_iszero.c
105	int/i15_moddiv.c
106	int/i15_modpow.c
107	int/i15_modpow2.c
108	int/i15_montmul.c
109	int/i15_mulacc.c
110	int/i15_muladd.c
111	int/i15_ninv15.c
112	int/i15_reduce.c
113	int/i15_rshift.c
114	int/i15_sub.c
115	int/i15_tmont.c
116	int/i31_add.c
117	int/i31_bitlen.c
118	int/i31_decmod.c
119	int/i31_decode.c
120	int/i31_decred.c
121	int/i31_encode.c
122	int/i31_fmont.c
123	int/i31_iszero.c
124	int/i31_moddiv.c
125	int/i31_modpow.c
126	int/i31_modpow2.c
127	int/i31_montmul.c
128	int/i31_mulacc.c
129	int/i31_muladd.c
130	int/i31_ninv31.c
131	int/i31_reduce.c
132	int/i31_rshift.c
133	int/i31_sub.c
134	int/i31_tmont.c
135	int/i32_add.c
136	int/i32_bitlen.c
137	int/i32_decmod.c
138	int/i32_decode.c
139	int/i32_decred.c
140	int/i32_div32.c
141	int/i32_encode.c
142	int/i32_fmont.c
143	int/i32_iszero.c
144	int/i32_modpow.c
145	int/i32_montmul.c
146	int/i32_mulacc.c
147	int/i32_muladd.c
148	int/i32_ninv32.c
149	int/i32_reduce.c
150	int/i32_sub.c
151	int/i32_tmont.c
152	int/i62_modpow2.c
153	kdf/hkdf.c
154	kdf/shake.c
155	mac/hmac.c
156	mac/hmac_ct.c
157	rand/aesctr_drbg.c
158	rand/hmac_drbg.c
159	rand/sysrng.c
160	rsa/rsa_default_keygen.c
161	rsa/rsa_default_modulus.c
162	rsa/rsa_default_oaep_decrypt.c
163	rsa/rsa_default_oaep_encrypt.c
164	rsa/rsa_default_pkcs1_sign.c
165	rsa/rsa_default_pkcs1_vrfy.c
166	rsa/rsa_default_priv.c
167	rsa/rsa_default_privexp.c
168	rsa/rsa_default_pss_sign.c
169	rsa/rsa_default_pss_vrfy.c
170	rsa/rsa_default_pub.c
171	rsa/rsa_default_pubexp.c
172	rsa/rsa_i15_keygen.c
173	rsa/rsa_i15_modulus.c
174	rsa/rsa_i15_oaep_decrypt.c
175	rsa/rsa_i15_oaep_encrypt.c
176	rsa/rsa_i15_pkcs1_sign.c
177	rsa/rsa_i15_pkcs1_vrfy.c
178	rsa/rsa_i15_priv.c
179	rsa/rsa_i15_privexp.c
180	rsa/rsa_i15_pss_sign.c
181	rsa/rsa_i15_pss_vrfy.c
182	rsa/rsa_i15_pub.c
183	rsa/rsa_i15_pubexp.c
184	rsa/rsa_i31_keygen.c
185	rsa/rsa_i31_keygen_inner.c
186	rsa/rsa_i31_modulus.c
187	rsa/rsa_i31_oaep_decrypt.c
188	rsa/rsa_i31_oaep_encrypt.c
189	rsa/rsa_i31_pkcs1_sign.c
190	rsa/rsa_i31_pkcs1_vrfy.c
191	rsa/rsa_i31_priv.c
192	rsa/rsa_i31_privexp.c
193	rsa/rsa_i31_pss_sign.c
194	rsa/rsa_i31_pss_vrfy.c
195	rsa/rsa_i31_pub.c
196	rsa/rsa_i31_pubexp.c
197	rsa/rsa_i32_oaep_decrypt.c
198	rsa/rsa_i32_oaep_encrypt.c
199	rsa/rsa_i32_pkcs1_sign.c
200	rsa/rsa_i32_pkcs1_vrfy.c
201	rsa/rsa_i32_priv.c
202	rsa/rsa_i32_pss_sign.c
203	rsa/rsa_i32_pss_vrfy.c
204	rsa/rsa_i32_pub.c
205	rsa/rsa_i62_keygen.c
206	rsa/rsa_i62_oaep_decrypt.c
207	rsa/rsa_i62_oaep_encrypt.c
208	rsa/rsa_i62_pkcs1_sign.c
209	rsa/rsa_i62_pkcs1_vrfy.c
210	rsa/rsa_i62_priv.c
211	rsa/rsa_i62_pss_sign.c
212	rsa/rsa_i62_pss_vrfy.c
213	rsa/rsa_i62_pub.c
214	rsa/rsa_oaep_pad.c
215	rsa/rsa_oaep_unpad.c
216	rsa/rsa_pkcs1_sig_pad.c
217	rsa/rsa_pkcs1_sig_unpad.c
218	rsa/rsa_pss_sig_pad.c
219	rsa/rsa_pss_sig_unpad.c
220	rsa/rsa_ssl_decrypt.c
221	ssl/prf.c
222	ssl/prf_md5sha1.c
223	ssl/prf_sha256.c
224	ssl/prf_sha384.c
225	ssl/ssl_ccert_single_ec.c
226	ssl/ssl_ccert_single_rsa.c
227	ssl/ssl_client.c
228	ssl/ssl_client_default_rsapub.c
229	ssl/ssl_client_full.c
230	ssl/ssl_engine.c
231	ssl/ssl_engine_default_aescbc.c
232	ssl/ssl_engine_default_aesccm.c
233	ssl/ssl_engine_default_aesgcm.c
234	ssl/ssl_engine_default_chapol.c
235	ssl/ssl_engine_default_descbc.c
236	ssl/ssl_engine_default_ec.c
237	ssl/ssl_engine_default_ecdsa.c
238	ssl/ssl_engine_default_rsavrfy.c
239	ssl/ssl_hashes.c
240	ssl/ssl_hs_client.c
241	ssl/ssl_hs_server.c
242	ssl/ssl_io.c
243	ssl/ssl_keyexport.c
244	ssl/ssl_lru.c
245	ssl/ssl_rec_cbc.c
246	ssl/ssl_rec_ccm.c
247	ssl/ssl_rec_chapol.c
248	ssl/ssl_rec_gcm.c
249	ssl/ssl_scert_single_ec.c
250	ssl/ssl_scert_single_rsa.c
251	ssl/ssl_server.c
252	ssl/ssl_server_full_ec.c
253	ssl/ssl_server_full_rsa.c
254	ssl/ssl_server_mine2c.c
255	ssl/ssl_server_mine2g.c
256	ssl/ssl_server_minf2c.c
257	ssl/ssl_server_minf2g.c
258	ssl/ssl_server_minr2g.c
259	ssl/ssl_server_minu2g.c
260	ssl/ssl_server_minv2g.c
261	symcipher/aes_big_cbcdec.c
262	symcipher/aes_big_cbcenc.c
263	symcipher/aes_big_ctr.c
264	symcipher/aes_big_ctrcbc.c
265	symcipher/aes_big_dec.c
266	symcipher/aes_big_enc.c
267	symcipher/aes_common.c
268	symcipher/aes_ct.c
269	symcipher/aes_ct64.c
270	symcipher/aes_ct64_cbcdec.c
271	symcipher/aes_ct64_cbcenc.c
272	symcipher/aes_ct64_ctr.c
273	symcipher/aes_ct64_ctrcbc.c
274	symcipher/aes_ct64_dec.c
275	symcipher/aes_ct64_enc.c
276	symcipher/aes_ct_cbcdec.c
277	symcipher/aes_ct_cbcenc.c
278	symcipher/aes_ct_ctr.c
279	symcipher/aes_ct_ctrcbc.c
280	symcipher/aes_ct_dec.c
281	symcipher/aes_ct_enc.c
282	symcipher/aes_pwr8.c
283	symcipher/aes_pwr8_cbcdec.c
284	symcipher/aes_pwr8_cbcenc.c
285	symcipher/aes_pwr8_ctr.c
286	symcipher/aes_pwr8_ctrcbc.c
287	symcipher/aes_small_cbcdec.c
288	symcipher/aes_small_cbcenc.c
289	symcipher/aes_small_ctr.c
290	symcipher/aes_small_ctrcbc.c
291	symcipher/aes_small_dec.c
292	symcipher/aes_small_enc.c
293	symcipher/aes_x86ni.c
294	symcipher/aes_x86ni_cbcdec.c
295	symcipher/aes_x86ni_cbcenc.c
296	symcipher/aes_x86ni_ctr.c
297	symcipher/aes_x86ni_ctrcbc.c
298	symcipher/chacha20_ct.c
299	symcipher/chacha20_sse2.c
300	symcipher/des_ct.c
301	symcipher/des_ct_cbcdec.c
302	symcipher/des_ct_cbcenc.c
303	symcipher/des_support.c
304	symcipher/des_tab.c
305	symcipher/des_tab_cbcdec.c
306	symcipher/des_tab_cbcenc.c
307	symcipher/poly1305_ctmul.c
308	symcipher/poly1305_ctmul32.c
309	symcipher/poly1305_ctmulq.c
310	symcipher/poly1305_i15.c
311	x509/asn1enc.c
312	x509/encode_ec_pk8der.c
313	x509/encode_ec_rawder.c
314	x509/encode_rsa_pk8der.c
315	x509/encode_rsa_rawder.c
316	x509/skey_decoder.c
317	x509/x509_decoder.c
318	x509/x509_knownkey.c
319	x509/x509_minimal.c
320	x509/x509_minimal_full.c
321)]])
322file('lib/libbearssl.a', '644', '$outdir/libbearssl.a')
323
324exe('brssl', [[
325	tools/(
326		brssl.c
327		certs.c
328		chain.c
329		client.c
330		errors.c
331		files.c
332		impl.c
333		keys.c
334		names.c
335		server.c
336		skey.c
337		sslio.c
338		ta.c
339		twrch.c
340		vector.c
341		verify.c
342		xmem.c
343	)
344	libbearssl.a
345]])
346file('bin/brssl', '755', '$outdir/brssl')
347
348fetch 'git'