]> granicus.if.org Git - esp-idf/blob - components/esp32/include/rom/aes.h
Initial public version
[esp-idf] / components / esp32 / include / rom / aes.h
1 // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 #ifndef _ROM_AES_H_
15 #define _ROM_AES_H_
16
17 #include <stdint.h>
18 #include <stdbool.h>
19
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
24 enum AES_BITS {
25     AES128,
26     AES192,
27     AES256
28 };
29
30 void ets_aes_enable(void);
31
32 void ets_aes_disable(void);
33
34 void ets_set_endian(bool key_word_swap, bool key_byte_swap,
35                     bool in_word_swap, bool in_byte_swap,
36                     bool out_word_swap, bool out_byte_swap);
37
38 bool ets_aes_setkey_enc(const uint8_t *key, enum AES_BITS bits);
39
40 bool ets_aes_setkey_dec(const uint8_t *key, enum AES_BITS bits);
41
42 void ets_aes_crypt(const uint8_t input[16], uint8_t output[16]);
43
44 #ifdef __cplusplus
45 }
46 #endif
47
48 #endif /* _ROM_AES_H_ */