text: /**
   * Copyright (c) 2017, Armando Faz <armfazh@ic.unicamp.br>. All rights reserved.
   * Institute of Computing.
   * University of Campinas, Brazil.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   *  * Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *  * Redistributions in binary form must reproduce the above
   *    copyright notice, this list of conditions and the following
   *    disclaimer in the documentation and/or other materials provided
   *    with the distribution.
   *  * Neither the name of University of Campinas nor the names of its
   *    contributors may be used to endorse or promote products derived
   *    from this software without specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
   * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   * OF THE POSSIBILITY OF SUCH DAMAGE.
   */
  
  #include <rfc7748_precomputed.h>
  #include <stdio.h>
  #include "clocks.h"
  #include "random.h"
  
  static void random_X448_key(argKey key) {
    random_bytes(key, X448_KEYSIZE_BYTES);
  }
  
  void bench_x448(void) {
    X448_KEY secret_key;
    X448_KEY public_key;
    X448_KEY shared_secret;
  
    printf("===== X448  =====\n");
    oper_second(random_X448_key(secret_key), "KeyGen",
                X448_KeyGen(public_key, secret_key));
    oper_second(random_X448_key(secret_key);
                random_X448_key(public_key), "Shared",
                X448_Shared(shared_secret, public_key, secret_key));
  }
  