@@ -26,17 +26,15 @@ let burn_period = 2.0
26
26
let sizes = [16 ; 64 ; 256 ; 1024 ; 8192 ]
27
27
(* let sizes = [16] *)
28
28
29
- let big_b = Bytes. create List. (hd (rev sizes))
30
-
31
29
let burn f n =
32
- let cs = Cstruct. of_string ( Mirage_crypto_rng. generate n) in
30
+ let buf = Mirage_crypto_rng. generate n in
33
31
let (t1, i1) =
34
32
let rec loop it =
35
- let t = Time. time ~n: it f cs in
33
+ let t = Time. time ~n: it f buf in
36
34
if t > 0.2 then (t, it) else loop (it * 10 ) in
37
35
loop 10 in
38
36
let iters = int_of_float (float i1 *. burn_period /. t1) in
39
- let time = Time. time ~n: iters f cs in
37
+ let time = Time. time ~n: iters f buf in
40
38
(iters, time, float (n * iters) /. time)
41
39
42
40
let mb = 1024. *. 1024.
@@ -67,13 +65,7 @@ let count title f to_str args =
67
65
Printf. printf " %s: %.03f ops per second (%d iters in %.03f)\n %!"
68
66
(to_str arg) (float iters /. time) iters time
69
67
70
- let msg =
71
- let b = Cstruct. create 100 in
72
- Cstruct. memset b 0xAA ;
73
- b
74
-
75
- let msg_str =
76
- Cstruct. to_string msg
68
+ let msg_str = String. make 100 '\xAA'
77
69
78
70
let msg_str_32 = String. sub msg_str 0 32
79
71
let msg_str_48 = String. sub msg_str 0 48
@@ -357,62 +349,63 @@ let benchmarks = [
357
349
fst ecdh_shares);
358
350
359
351
bm " chacha20-poly1305" (fun name ->
360
- let key = Mirage_crypto.Chacha20. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 32 ) )
361
- and nonce = Cstruct. of_string ( Mirage_crypto_rng. generate 8 ) in
352
+ let key = Mirage_crypto.Chacha20. of_secret (Mirage_crypto_rng. generate 32 )
353
+ and nonce = Mirage_crypto_rng. generate 8 in
362
354
throughput name (Mirage_crypto.Chacha20. authenticate_encrypt ~key ~nonce )) ;
363
355
364
356
bm " aes-128-ecb" (fun name ->
365
- let key = AES.ECB. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 16 ) ) in
357
+ let key = AES.ECB. of_secret (Mirage_crypto_rng. generate 16 ) in
366
358
throughput name (fun cs -> AES.ECB. encrypt ~key cs)) ;
367
359
368
360
bm " aes-128-cbc-e" (fun name ->
369
- let key = AES.CBC. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 16 ) )
370
- and iv = Cstruct. of_string ( Mirage_crypto_rng. generate 16 ) in
361
+ let key = AES.CBC. of_secret (Mirage_crypto_rng. generate 16 )
362
+ and iv = Mirage_crypto_rng. generate 16 in
371
363
throughput name (fun cs -> AES.CBC. encrypt ~key ~iv cs)) ;
372
364
373
365
bm " aes-128-cbc-d" (fun name ->
374
- let key = AES.CBC. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 16 ) )
375
- and iv = Cstruct. of_string ( Mirage_crypto_rng. generate 16 ) in
366
+ let key = AES.CBC. of_secret (Mirage_crypto_rng. generate 16 )
367
+ and iv = Mirage_crypto_rng. generate 16 in
376
368
throughput name (fun cs -> AES.CBC. decrypt ~key ~iv cs)) ;
377
369
378
370
bm " aes-128-ctr" (fun name ->
379
- let key = Mirage_crypto_rng. generate 16 |> Cstruct. of_string |> AES.CTR. of_secret
380
- and ctr = Mirage_crypto_rng. generate 16 |> Cstruct. of_string |> AES.CTR. ctr_of_cstruct in
371
+ let key = Mirage_crypto_rng. generate 16 |> AES.CTR. of_secret
372
+ and ctr = Mirage_crypto_rng. generate 16 |> AES.CTR. ctr_of_octets in
381
373
throughput name (fun cs -> AES.CTR. encrypt ~key ~ctr cs)) ;
382
374
383
375
bm " aes-128-gcm" (fun name ->
384
- let key = AES.GCM. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 16 ) )
385
- and nonce = Cstruct. of_string ( Mirage_crypto_rng. generate 12 ) in
376
+ let key = AES.GCM. of_secret (Mirage_crypto_rng. generate 16 )
377
+ and nonce = Mirage_crypto_rng. generate 12 in
386
378
throughput name (fun cs -> AES.GCM. authenticate_encrypt ~key ~nonce cs));
387
379
388
380
bm " aes-128-ghash" (fun name ->
389
- let key = AES.GCM. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 16 ) )
390
- and nonce = Cstruct. of_string ( Mirage_crypto_rng. generate 12 ) in
391
- throughput name (fun cs -> AES.GCM. authenticate_encrypt ~key ~nonce ~adata: cs Cstruct. empty ));
381
+ let key = AES.GCM. of_secret (Mirage_crypto_rng. generate 16 )
382
+ and nonce = Mirage_crypto_rng. generate 12 in
383
+ throughput name (fun cs -> AES.GCM. authenticate_encrypt ~key ~nonce ~adata: cs " " ));
392
384
393
385
bm " aes-128-ccm" (fun name ->
394
- let key = AES.CCM16. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 16 ) )
395
- and nonce = Cstruct. of_string ( Mirage_crypto_rng. generate 10 ) in
386
+ let key = AES.CCM16. of_secret (Mirage_crypto_rng. generate 16 )
387
+ and nonce = Mirage_crypto_rng. generate 10 in
396
388
throughput name (fun cs -> AES.CCM16. authenticate_encrypt ~key ~nonce cs));
397
389
398
390
bm " aes-192-ecb" (fun name ->
399
- let key = AES.ECB. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 24 ) ) in
391
+ let key = AES.ECB. of_secret (Mirage_crypto_rng. generate 24 ) in
400
392
throughput name (fun cs -> AES.ECB. encrypt ~key cs)) ;
401
393
402
394
bm " aes-256-ecb" (fun name ->
403
- let key = AES.ECB. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 32 ) ) in
395
+ let key = AES.ECB. of_secret (Mirage_crypto_rng. generate 32 ) in
404
396
throughput name (fun cs -> AES.ECB. encrypt ~key cs)) ;
405
397
406
398
bm " d3des-ecb" (fun name ->
407
- let key = DES.ECB. of_secret (Cstruct. of_string ( Mirage_crypto_rng. generate 24 ) ) in
399
+ let key = DES.ECB. of_secret (Mirage_crypto_rng. generate 24 ) in
408
400
throughput name (fun cs -> DES.ECB. encrypt ~key cs)) ;
409
401
410
402
bm " fortuna" (fun name ->
411
403
let open Mirage_crypto_rng.Fortuna in
412
404
let g = create () in
413
405
reseed ~g " abcd" ;
414
- throughput name (fun cs ->
415
- generate_into ~g big_b ~off: 0 (Cstruct. length cs))) ;
406
+ throughput name (fun buf ->
407
+ let buf = Bytes. unsafe_of_string buf in
408
+ generate_into ~g buf ~off: 0 (Bytes. length buf))) ;
416
409
]
417
410
418
411
let help () =
0 commit comments