tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

kyber-pqcrystals-ref.h (7612B)


      1 /*
      2 * SPDX-License-Identifier: Apache-2.0
      3 *
      4 * This file was generated from
      5 *   https://github.com/pq-crystals/kyber/commit/e0d1c6ff
      6 *
      7 * Files from that repository are listed here surrounded by
      8 * "* begin: [file] *" and "* end: [file] *" comments.
      9 *
     10 * The following changes have been made:
     11 *  - include guards have been removed,
     12 *  - include directives have been removed,
     13 *  - "#ifdef KYBER90S" blocks have been evaluated with "KYBER90S" undefined,
     14 *  - functions outside of kem.c have been made static.
     15 */
     16 
     17 /** begin: ref/LICENSE **
     18 Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/);
     19 or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
     20 
     21 For Keccak and AES we are using public-domain
     22 code from sources and by authors listed in
     23 comments on top of the respective files.
     24 ** end: ref/LICENSE **/
     25 
     26 /** begin: ref/AUTHORS **
     27 Joppe Bos,
     28 Léo Ducas,
     29 Eike Kiltz,
     30 Tancrède Lepoint,
     31 Vadim Lyubashevsky,
     32 John Schanck,
     33 Peter Schwabe,
     34 Gregor Seiler,
     35 Damien Stehlé
     36 ** end: ref/AUTHORS **/
     37 
     38 #ifndef KYBER_PQCRYSTALS_REF_H
     39 #define KYBER_PQCRYSTALS_REF_H
     40 
     41 /** begin: ref/api.h **/
     42 #include <stdint.h>
     43 
     44 #define pqcrystals_kyber512_SECRETKEYBYTES 1632
     45 #define pqcrystals_kyber512_PUBLICKEYBYTES 800
     46 #define pqcrystals_kyber512_CIPHERTEXTBYTES 768
     47 #define pqcrystals_kyber512_KEYPAIRCOINBYTES 64
     48 #define pqcrystals_kyber512_ENCCOINBYTES 32
     49 #define pqcrystals_kyber512_BYTES 32
     50 
     51 #define pqcrystals_kyber512_ref_SECRETKEYBYTES pqcrystals_kyber512_SECRETKEYBYTES
     52 #define pqcrystals_kyber512_ref_PUBLICKEYBYTES pqcrystals_kyber512_PUBLICKEYBYTES
     53 #define pqcrystals_kyber512_ref_CIPHERTEXTBYTES pqcrystals_kyber512_CIPHERTEXTBYTES
     54 #define pqcrystals_kyber512_ref_KEYPAIRCOINBYTES pqcrystals_kyber512_KEYPAIRCOINBYTES
     55 #define pqcrystals_kyber512_ref_ENCCOINBYTES pqcrystals_kyber512_ENCCOINBYTES
     56 #define pqcrystals_kyber512_ref_BYTES pqcrystals_kyber512_BYTES
     57 
     58 int pqcrystals_kyber512_ref_keypair_derand(uint8_t *pk, uint8_t *sk, const uint8_t *coins);
     59 int pqcrystals_kyber512_ref_keypair(uint8_t *pk, uint8_t *sk);
     60 int pqcrystals_kyber512_ref_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins);
     61 int pqcrystals_kyber512_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
     62 int pqcrystals_kyber512_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
     63 
     64 #define pqcrystals_kyber512_90s_ref_SECRETKEYBYTES pqcrystals_kyber512_SECRETKEYBYTES
     65 #define pqcrystals_kyber512_90s_ref_PUBLICKEYBYTES pqcrystals_kyber512_PUBLICKEYBYTES
     66 #define pqcrystals_kyber512_90s_ref_CIPHERTEXTBYTES pqcrystals_kyber512_CIPHERTEXTBYTES
     67 #define pqcrystals_kyber512_90s_ref_KEYPAIRCOINBYTES pqcrystals_kyber512_KEYPAIRCOINBYTES
     68 #define pqcrystals_kyber512_90s_ref_ENCCOINBYTES pqcrystals_kyber512_ENCCOINBYTES
     69 #define pqcrystals_kyber512_90s_ref_BYTES pqcrystals_kyber512_BYTES
     70 
     71 int pqcrystals_kyber512_90s_ref_keypair_derand(uint8_t *pk, uint8_t *sk, const uint8_t *coins);
     72 int pqcrystals_kyber512_90s_ref_keypair(uint8_t *pk, uint8_t *sk);
     73 int pqcrystals_kyber512_90s_ref_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins);
     74 int pqcrystals_kyber512_90s_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
     75 int pqcrystals_kyber512_90s_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
     76 
     77 #define pqcrystals_kyber768_SECRETKEYBYTES 2400
     78 #define pqcrystals_kyber768_PUBLICKEYBYTES 1184
     79 #define pqcrystals_kyber768_CIPHERTEXTBYTES 1088
     80 #define pqcrystals_kyber768_KEYPAIRCOINBYTES 64
     81 #define pqcrystals_kyber768_ENCCOINBYTES 32
     82 #define pqcrystals_kyber768_BYTES 32
     83 
     84 #define pqcrystals_kyber768_ref_SECRETKEYBYTES pqcrystals_kyber768_SECRETKEYBYTES
     85 #define pqcrystals_kyber768_ref_PUBLICKEYBYTES pqcrystals_kyber768_PUBLICKEYBYTES
     86 #define pqcrystals_kyber768_ref_CIPHERTEXTBYTES pqcrystals_kyber768_CIPHERTEXTBYTES
     87 #define pqcrystals_kyber768_ref_KEYPAIRCOINBYTES pqcrystals_kyber768_KEYPAIRCOINBYTES
     88 #define pqcrystals_kyber768_ref_ENCCOINBYTES pqcrystals_kyber768_ENCCOINBYTES
     89 #define pqcrystals_kyber768_ref_BYTES pqcrystals_kyber768_BYTES
     90 
     91 int pqcrystals_kyber768_ref_keypair_derand(uint8_t *pk, uint8_t *sk, const uint8_t *coins);
     92 int pqcrystals_kyber768_ref_keypair(uint8_t *pk, uint8_t *sk);
     93 int pqcrystals_kyber768_ref_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins);
     94 int pqcrystals_kyber768_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
     95 int pqcrystals_kyber768_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
     96 
     97 #define pqcrystals_kyber768_90s_ref_SECRETKEYBYTES pqcrystals_kyber768_SECRETKEYBYTES
     98 #define pqcrystals_kyber768_90s_ref_PUBLICKEYBYTES pqcrystals_kyber768_PUBLICKEYBYTES
     99 #define pqcrystals_kyber768_90s_ref_CIPHERTEXTBYTES pqcrystals_kyber768_CIPHERTEXTBYTES
    100 #define pqcrystals_kyber768_90s_ref_KEYPAIRCOINBYTES pqcrystals_kyber768_KEYPAIRCOINBYTES
    101 #define pqcrystals_kyber768_90s_ref_ENCCOINBYTES pqcrystals_kyber768_ENCCOINBYTES
    102 #define pqcrystals_kyber768_90s_ref_BYTES pqcrystals_kyber768_BYTES
    103 
    104 int pqcrystals_kyber768_90s_ref_keypair_derand(uint8_t *pk, uint8_t *sk, const uint8_t *coins);
    105 int pqcrystals_kyber768_90s_ref_keypair(uint8_t *pk, uint8_t *sk);
    106 int pqcrystals_kyber768_90s_ref_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins);
    107 int pqcrystals_kyber768_90s_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
    108 int pqcrystals_kyber768_90s_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
    109 
    110 #define pqcrystals_kyber1024_SECRETKEYBYTES 3168
    111 #define pqcrystals_kyber1024_PUBLICKEYBYTES 1568
    112 #define pqcrystals_kyber1024_CIPHERTEXTBYTES 1568
    113 #define pqcrystals_kyber1024_KEYPAIRCOINBYTES 64
    114 #define pqcrystals_kyber1024_ENCCOINBYTES 32
    115 #define pqcrystals_kyber1024_BYTES 32
    116 
    117 #define pqcrystals_kyber1024_ref_SECRETKEYBYTES pqcrystals_kyber1024_SECRETKEYBYTES
    118 #define pqcrystals_kyber1024_ref_PUBLICKEYBYTES pqcrystals_kyber1024_PUBLICKEYBYTES
    119 #define pqcrystals_kyber1024_ref_CIPHERTEXTBYTES pqcrystals_kyber1024_CIPHERTEXTBYTES
    120 #define pqcrystals_kyber1024_ref_KEYPAIRCOINBYTES pqcrystals_kyber1024_KEYPAIRCOINBYTES
    121 #define pqcrystals_kyber1024_ref_ENCCOINBYTES pqcrystals_kyber1024_ENCCOINBYTES
    122 #define pqcrystals_kyber1024_ref_BYTES pqcrystals_kyber1024_BYTES
    123 
    124 int pqcrystals_kyber1024_ref_keypair_derand(uint8_t *pk, uint8_t *sk, const uint8_t *coins);
    125 int pqcrystals_kyber1024_ref_keypair(uint8_t *pk, uint8_t *sk);
    126 int pqcrystals_kyber1024_ref_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins);
    127 int pqcrystals_kyber1024_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
    128 int pqcrystals_kyber1024_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
    129 
    130 #define pqcrystals_kyber1024_90s_ref_SECRETKEYBYTES pqcrystals_kyber1024_SECRETKEYBYTES
    131 #define pqcrystals_kyber1024_90s_ref_PUBLICKEYBYTES pqcrystals_kyber1024_PUBLICKEYBYTES
    132 #define pqcrystals_kyber1024_90s_ref_CIPHERTEXTBYTES pqcrystals_kyber1024_CIPHERTEXTBYTES
    133 #define pqcrystals_kyber1024_90s_ref_KEYPAIRCOINBYTES pqcrystals_kyber1024_KEYPAIRCOINBYTES
    134 #define pqcrystals_kyber1024_90s_ref_ENCCOINBYTES pqcrystals_kyber1024_ENCCOINBYTES
    135 #define pqcrystals_kyber1024_90s_ref_BYTES pqcrystals_kyber1024_BYTES
    136 
    137 int pqcrystals_kyber1024_90s_ref_keypair_derand(uint8_t *pk, uint8_t *sk, const uint8_t *coins);
    138 int pqcrystals_kyber1024_90s_ref_keypair(uint8_t *pk, uint8_t *sk);
    139 int pqcrystals_kyber1024_90s_ref_enc_derand(uint8_t *ct, uint8_t *ss, const uint8_t *pk, const uint8_t *coins);
    140 int pqcrystals_kyber1024_90s_ref_enc(uint8_t *ct, uint8_t *ss, const uint8_t *pk);
    141 int pqcrystals_kyber1024_90s_ref_dec(uint8_t *ss, const uint8_t *ct, const uint8_t *sk);
    142 /** end: ref/api.h **/
    143 
    144 #endif // KYBER_PQCRYSTALS_REF_H