xref: /btstack/port/archive/wiced-h5/btstack_aes128_wiced.c (revision 1182cb7ea894b41819446c5518b6753290421863)
1*1182cb7eSMatthias Ringwald /*
2*1182cb7eSMatthias Ringwald  * Copyright (C) 2015 BlueKitchen GmbH
3*1182cb7eSMatthias Ringwald  *
4*1182cb7eSMatthias Ringwald  * Redistribution and use in source and binary forms, with or without
5*1182cb7eSMatthias Ringwald  * modification, are permitted provided that the following conditions
6*1182cb7eSMatthias Ringwald  * are met:
7*1182cb7eSMatthias Ringwald  *
8*1182cb7eSMatthias Ringwald  * 1. Redistributions of source code must retain the above copyright
9*1182cb7eSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer.
10*1182cb7eSMatthias Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
11*1182cb7eSMatthias Ringwald  *    notice, this list of conditions and the following disclaimer in the
12*1182cb7eSMatthias Ringwald  *    documentation and/or other materials provided with the distribution.
13*1182cb7eSMatthias Ringwald  * 3. Neither the name of the copyright holders nor the names of
14*1182cb7eSMatthias Ringwald  *    contributors may be used to endorse or promote products derived
15*1182cb7eSMatthias Ringwald  *    from this software without specific prior written permission.
16*1182cb7eSMatthias Ringwald  * 4. Any redistribution, use, or modification is done solely for
17*1182cb7eSMatthias Ringwald  *    personal benefit and not for any commercial purpose or for
18*1182cb7eSMatthias Ringwald  *    monetary gain.
19*1182cb7eSMatthias Ringwald  *
20*1182cb7eSMatthias Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
21*1182cb7eSMatthias Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22*1182cb7eSMatthias Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23*1182cb7eSMatthias Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
24*1182cb7eSMatthias Ringwald  * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25*1182cb7eSMatthias Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26*1182cb7eSMatthias Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
27*1182cb7eSMatthias Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28*1182cb7eSMatthias Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29*1182cb7eSMatthias Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
30*1182cb7eSMatthias Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31*1182cb7eSMatthias Ringwald  * SUCH DAMAGE.
32*1182cb7eSMatthias Ringwald  *
33*1182cb7eSMatthias Ringwald  * Please inquire about commercial licensing options at
34*1182cb7eSMatthias Ringwald  * [email protected]
35*1182cb7eSMatthias Ringwald  *
36*1182cb7eSMatthias Ringwald  */
37*1182cb7eSMatthias Ringwald 
38*1182cb7eSMatthias Ringwald #define __BTSTACK_FILE__ "main.c"
39*1182cb7eSMatthias Ringwald 
40*1182cb7eSMatthias Ringwald #ifndef WICED_HAVE_MBEDTLS
41*1182cb7eSMatthias Ringwald 
42*1182cb7eSMatthias Ringwald // pre 5.2
43*1182cb7eSMatthias Ringwald #include "wiced_security.h"
44*1182cb7eSMatthias Ringwald 
45*1182cb7eSMatthias Ringwald static aes_context_t wiced_aes128_context;
46*1182cb7eSMatthias Ringwald 
47*1182cb7eSMatthias Ringwald void btstack_aes128_calc(uint8_t * key, uint8_t * plaintext, uint8_t * result);
48*1182cb7eSMatthias Ringwald void btstack_aes128_calc(uint8_t * key, uint8_t * plaintext, uint8_t * result){
49*1182cb7eSMatthias Ringwald     aes_setkey_enc(&wiced_aes128_context, key, 128);
50*1182cb7eSMatthias Ringwald     aes_crypt_ecb(&wiced_aes128_context, AES_ENCRYPT , plaintext, result);
51*1182cb7eSMatthias Ringwald }
52*1182cb7eSMatthias Ringwald 
53*1182cb7eSMatthias Ringwald #else
54*1182cb7eSMatthias Ringwald 
55*1182cb7eSMatthias Ringwald // 5.2+
56*1182cb7eSMatthias Ringwald #include <string.h>
57*1182cb7eSMatthias Ringwald #include "mbedtls/aes.h"
58*1182cb7eSMatthias Ringwald 
59*1182cb7eSMatthias Ringwald static aes_context_t wiced_aes128_context;
60*1182cb7eSMatthias Ringwald 
61*1182cb7eSMatthias Ringwald void btstack_aes128_calc(uint8_t * key, uint8_t * plaintext, uint8_t * result);
62*1182cb7eSMatthias Ringwald void btstack_aes128_calc(uint8_t * key, uint8_t * plaintext, uint8_t * result){
63*1182cb7eSMatthias Ringwald     memset(&wiced_aes128_context, 0, sizeof(aes_context_t));
64*1182cb7eSMatthias Ringwald     mbedtls_aes_setkey_enc(&wiced_aes128_context, key, 128);
65*1182cb7eSMatthias Ringwald     mbedtls_aes_crypt_ecb(&wiced_aes128_context, AES_ENCRYPT, plaintext, result);
66*1182cb7eSMatthias Ringwald }
67*1182cb7eSMatthias Ringwald 
68*1182cb7eSMatthias Ringwald #endif
69*1182cb7eSMatthias Ringwald 
70*1182cb7eSMatthias Ringwald 
71