val expected:lbytes 16
let expected : lbytes 16 =
  let l = List.Tot.map u8_from_UInt8 [
    0xa8uy; 0x06uy; 0x1duy; 0xc1uy; 0x30uy; 0x51uy; 0x36uy; 0xc6uy;
    0xc2uy; 0x2buy; 0x8buy; 0xafuy; 0x0cuy; 0x01uy; 0x27uy; 0xa9uy
  ] in
  assert_norm (List.Tot.length l == 16);
  of_list l
val expected:lbytes 16
let expected:lbytes 16 =
let l =
  List.Tot.map u8_from_UInt8
    [
      0xa8uy; 0x06uy; 0x1duy; 0xc1uy; 0x30uy; 0x51uy; 0x36uy; 0xc6uy; 0xc2uy; 0x2buy; 0x8buy; 0xafuy;
      0x0cuy; 0x01uy; 0x27uy; 0xa9uy
    ]
in
assert_norm (List.Tot.length l == 16);
of_list l
Spec.Poly1305.Test.fst.checked
Spec.Poly1305.fst.checked prims.fst.checked Lib.Sequence.fsti.checked Lib.RawIntTypes.fsti.checked Lib.PrintSequence.fsti.checked Lib.IntTypes.fsti.checked Lib.ByteSequence.fsti.checked FStar.UInt8.fsti.checked FStar.Pervasives.fsti.checked FStar.Mul.fst.checked FStar.List.Tot.fst.checked FStar.IO.fst.checked
Spec.Poly1305.Test.fst
Lib.Sequence.of_list Lib.IntTypes.int_t Lib.IntTypes.U8 Lib.IntTypes.SEC Prims.unit FStar.Pervasives.assert_norm Prims.eq2 Prims.int FStar.List.Tot.Base.length Prims.list FStar.List.Tot.Base.map FStar.UInt8.t Lib.RawIntTypes.u8_from_UInt8 Prims.Cons FStar.UInt8.__uint_to_t Prims.Nil
module Spec.Poly1305.Test

open FStar.Mul
open Lib.IntTypes
open Lib.RawIntTypes
open Lib.Sequence
open Lib.ByteSequence
module PS = Lib.PrintSequence

open Spec.Poly1305

#set-options "--z3rlimit 50 --fuel 0 --ifuel 0"

(* ********************* *)
(* RFC 7539 Test Vectors *)
(* ********************* *)

let msg : lbytes 34 =
  let l = List.Tot.map u8_from_UInt8 [
    0x43uy; 0x72uy; 0x79uy; 0x70uy; 0x74uy; 0x6fuy; 0x67uy; 0x72uy;
    0x61uy; 0x70uy; 0x68uy; 0x69uy; 0x63uy; 0x20uy; 0x46uy; 0x6fuy;
    0x72uy; 0x75uy; 0x6duy; 0x20uy; 0x52uy; 0x65uy; 0x73uy; 0x65uy;
    0x61uy; 0x72uy; 0x63uy; 0x68uy; 0x20uy; 0x47uy; 0x72uy; 0x6fuy;
    0x75uy; 0x70uy
  ] in
  assert_norm (List.Tot.length l == 34);
  of_list l


let key : lbytes 32 =
  let l = List.Tot.map u8_from_UInt8 [
    0x85uy; 0xd6uy; 0xbeuy; 0x78uy; 0x57uy; 0x55uy; 0x6duy; 0x33uy;
    0x7fuy; 0x44uy; 0x52uy; 0xfeuy; 0x42uy; 0xd5uy; 0x06uy; 0xa8uy;
    0x01uy; 0x03uy; 0x80uy; 0x8auy; 0xfbuy; 0x0duy; 0xb2uy; 0xfduy;
    0x4auy; 0xbfuy; 0xf6uy; 0xafuy; 0x41uy; 0x49uy; 0xf5uy; 0x1buy
  ] in
  assert_norm (List.Tot.length l == 32);
  of_list l
val expected:lbytes 16
Lib.Sequence.lseq (Lib.IntTypes.int_t Lib.IntTypes.U8 Lib.IntTypes.SEC) 16