Vale.h (4497B)
1 /* MIT License 2 * 3 * Copyright (c) 2016-2022 INRIA, CMU and Microsoft Corporation 4 * Copyright (c) 2022-2023 HACL* Contributors 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a copy 7 * of this software and associated documentation files (the "Software"), to deal 8 * in the Software without restriction, including without limitation the rights 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 * copies of the Software, and to permit persons to whom the Software is 11 * furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice shall be included in all 14 * copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 * SOFTWARE. 23 */ 24 25 #ifndef __internal_Vale_H 26 #define __internal_Vale_H 27 28 #if defined(__cplusplus) 29 extern "C" { 30 #endif 31 32 #include <string.h> 33 #include "krml/internal/types.h" 34 #include "krml/lowstar_endianness.h" 35 #include "krml/internal/target.h" 36 37 extern uint64_t add_scalar_e(uint64_t *x0, uint64_t *x1, uint64_t x2); 38 39 extern uint64_t fadd_e(uint64_t *x0, uint64_t *x1, uint64_t *x2); 40 41 extern uint64_t sha256_update(uint32_t *x0, uint8_t *x1, uint64_t x2, uint32_t *x3); 42 43 extern uint64_t x64_poly1305(uint8_t *x0, uint8_t *x1, uint64_t x2, uint64_t x3); 44 45 extern uint64_t check_aesni(void); 46 47 extern uint64_t check_sha(void); 48 49 extern uint64_t check_adx_bmi2(void); 50 51 extern uint64_t check_avx(void); 52 53 extern uint64_t check_avx2(void); 54 55 extern uint64_t check_movbe(void); 56 57 extern uint64_t check_sse(void); 58 59 extern uint64_t check_rdrand(void); 60 61 extern uint64_t check_avx512(void); 62 63 extern uint64_t check_osxsave(void); 64 65 extern uint64_t check_avx_xcr0(void); 66 67 extern uint64_t check_avx512_xcr0(void); 68 69 extern uint64_t 70 gcm128_decrypt_opt( 71 uint8_t *x0, 72 uint64_t x1, 73 uint64_t x2, 74 uint8_t *x3, 75 uint8_t *x4, 76 uint8_t *x5, 77 uint8_t *x6, 78 uint8_t *x7, 79 uint8_t *x8, 80 uint64_t x9, 81 uint8_t *x10, 82 uint8_t *x11, 83 uint64_t x12, 84 uint8_t *x13, 85 uint64_t x14, 86 uint8_t *x15, 87 uint8_t *x16); 88 89 extern uint64_t 90 gcm256_decrypt_opt( 91 uint8_t *x0, 92 uint64_t x1, 93 uint64_t x2, 94 uint8_t *x3, 95 uint8_t *x4, 96 uint8_t *x5, 97 uint8_t *x6, 98 uint8_t *x7, 99 uint8_t *x8, 100 uint64_t x9, 101 uint8_t *x10, 102 uint8_t *x11, 103 uint64_t x12, 104 uint8_t *x13, 105 uint64_t x14, 106 uint8_t *x15, 107 uint8_t *x16); 108 109 extern uint64_t aes128_key_expansion(uint8_t *x0, uint8_t *x1); 110 111 extern uint64_t aes256_key_expansion(uint8_t *x0, uint8_t *x1); 112 113 extern uint64_t 114 compute_iv_stdcall( 115 uint8_t *x0, 116 uint64_t x1, 117 uint64_t x2, 118 uint8_t *x3, 119 uint8_t *x4, 120 uint8_t *x5); 121 122 extern uint64_t 123 gcm128_encrypt_opt( 124 uint8_t *x0, 125 uint64_t x1, 126 uint64_t x2, 127 uint8_t *x3, 128 uint8_t *x4, 129 uint8_t *x5, 130 uint8_t *x6, 131 uint8_t *x7, 132 uint8_t *x8, 133 uint64_t x9, 134 uint8_t *x10, 135 uint8_t *x11, 136 uint64_t x12, 137 uint8_t *x13, 138 uint64_t x14, 139 uint8_t *x15, 140 uint8_t *x16); 141 142 extern uint64_t 143 gcm256_encrypt_opt( 144 uint8_t *x0, 145 uint64_t x1, 146 uint64_t x2, 147 uint8_t *x3, 148 uint8_t *x4, 149 uint8_t *x5, 150 uint8_t *x6, 151 uint8_t *x7, 152 uint8_t *x8, 153 uint64_t x9, 154 uint8_t *x10, 155 uint8_t *x11, 156 uint64_t x12, 157 uint8_t *x13, 158 uint64_t x14, 159 uint8_t *x15, 160 uint8_t *x16); 161 162 extern uint64_t aes128_keyhash_init(uint8_t *x0, uint8_t *x1); 163 164 extern uint64_t aes256_keyhash_init(uint8_t *x0, uint8_t *x1); 165 166 extern uint64_t cswap2_e(uint64_t x0, uint64_t *x1, uint64_t *x2); 167 168 extern uint64_t fsqr_e(uint64_t *x0, uint64_t *x1, uint64_t *x2); 169 170 extern uint64_t fsqr2_e(uint64_t *x0, uint64_t *x1, uint64_t *x2); 171 172 extern uint64_t fmul_e(uint64_t *x0, uint64_t *x1, uint64_t *x2, uint64_t *x3); 173 174 extern uint64_t fmul2_e(uint64_t *x0, uint64_t *x1, uint64_t *x2, uint64_t *x3); 175 176 extern uint64_t fmul_scalar_e(uint64_t *x0, uint64_t *x1, uint64_t x2); 177 178 extern uint64_t fsub_e(uint64_t *x0, uint64_t *x1, uint64_t *x2); 179 180 #if defined(__cplusplus) 181 } 182 #endif 183 184 #define __internal_Vale_H_DEFINED 185 #endif