Skip to content

Commit 9311b66

Browse files
kevin-whisperNahal Farhi
authored andcommitted
Adding CCM software mode
1 parent 9922380 commit 9311b66

File tree

6 files changed

+565
-0
lines changed

6 files changed

+565
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/* Copyright (c) 2010 - 2020, Nordic Semiconductor ASA
2+
* All rights reserved.
3+
*
4+
* Redistribution and use in source and binary forms, with or without modification,
5+
* are permitted provided that the following conditions are met:
6+
*
7+
* 1. Redistributions of source code must retain the above copyright notice, this
8+
* list of conditions and the following disclaimer.
9+
*
10+
* 2. Redistributions in binary form, except as embedded into a Nordic
11+
* Semiconductor ASA integrated circuit in a product or a software update for
12+
* such product, must reproduce the above copyright notice, this list of
13+
* conditions and the following disclaimer in the documentation and/or other
14+
* materials provided with the distribution.
15+
*
16+
* 3. Neither the name of Nordic Semiconductor ASA nor the names of its
17+
* contributors may be used to endorse or promote products derived from this
18+
* software without specific prior written permission.
19+
*
20+
* 4. This software, with or without modification, must only be used with a
21+
* Nordic Semiconductor ASA integrated circuit.
22+
*
23+
* 5. Any software provided in binary form under this license must not be reverse
24+
* engineered, decompiled, modified and/or disassembled.
25+
*
26+
* THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
27+
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28+
* OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
29+
* DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
30+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
32+
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
35+
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36+
*/
37+
#include <stdint.h>
38+
#include "aes.h"
39+
40+
#include <hal/nrf_ecb.h>
41+
42+
#if !AES_USE_SOFTDEVICE_ECB_WRAPPER
43+
void aes_encrypt(aes_data_t * p_aes_data)
44+
{
45+
NRF_ECB->ECBDATAPTR = (uint32_t) p_aes_data;
46+
47+
NRF_ECB->EVENTS_ENDECB = 0;
48+
NRF_ECB->TASKS_STARTECB = 1;
49+
50+
while (NRF_ECB->EVENTS_ENDECB == 0)
51+
{
52+
; /* Wait for hardware to complete */
53+
}
54+
55+
NRF_ECB->EVENTS_ENDECB = 0;
56+
}
57+
#endif
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/* Copyright (c) 2010 - 2020, Nordic Semiconductor ASA
2+
* All rights reserved.
3+
*
4+
* Redistribution and use in source and binary forms, with or without modification,
5+
* are permitted provided that the following conditions are met:
6+
*
7+
* 1. Redistributions of source code must retain the above copyright notice, this
8+
* list of conditions and the following disclaimer.
9+
*
10+
* 2. Redistributions in binary form, except as embedded into a Nordic
11+
* Semiconductor ASA integrated circuit in a product or a software update for
12+
* such product, must reproduce the above copyright notice, this list of
13+
* conditions and the following disclaimer in the documentation and/or other
14+
* materials provided with the distribution.
15+
*
16+
* 3. Neither the name of Nordic Semiconductor ASA nor the names of its
17+
* contributors may be used to endorse or promote products derived from this
18+
* software without specific prior written permission.
19+
*
20+
* 4. This software, with or without modification, must only be used with a
21+
* Nordic Semiconductor ASA integrated circuit.
22+
*
23+
* 5. Any software provided in binary form under this license must not be reverse
24+
* engineered, decompiled, modified and/or disassembled.
25+
*
26+
* THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
27+
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28+
* OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
29+
* DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE
30+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
32+
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
35+
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36+
*/
37+
#ifndef MESH_AES_H__
38+
#define MESH_AES_H__
39+
40+
// #include "nrf_soc.h"
41+
// #include "nrf_mesh_config_core.h"
42+
#include <stdint.h>
43+
44+
typedef struct {
45+
uint8_t key[16];
46+
uint8_t cleartext[16];
47+
uint8_t ciphertext[16];
48+
} nrf_ecb_hal_data_t;
49+
50+
typedef nrf_ecb_hal_data_t aes_data_t;
51+
52+
#ifndef AES_USE_SOFTDEVICE_ECB_WRAPPER
53+
#define AES_USE_SOFTDEVICE_ECB_WRAPPER SOFTDEVICE_PRESENT
54+
#endif
55+
56+
#if AES_USE_SOFTDEVICE_ECB_WRAPPER
57+
#define aes_encrypt(data) (void)sd_ecb_block_encrypt((nrf_ecb_hal_data_t *)(data))
58+
#else
59+
void aes_encrypt(aes_data_t *p_aes_data);
60+
61+
#endif
62+
63+
#endif

0 commit comments

Comments
 (0)