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