Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
lwc
/
compare
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Pipelines
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d4fb65b1
authored
Jul 09, 2019
by
Enrico Pozzobon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
blackpill template builds
parent
cac7c7a9
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
110 additions
and
88 deletions
+110
-88
compile_all.py
+8
-4
templates/blackpill/Src/main.c
+102
-84
No files found.
compile_all.py
View file @
d4fb65b1
...
...
@@ -8,7 +8,7 @@ import random
import
subprocess
def
build
(
algo_dir
,
template_dir
=
"templates/linux"
):
def
build
(
algo_dir
,
template_dir
):
# create a new directory for the build
build_dir
=
None
while
build_dir
is
None
:
...
...
@@ -131,8 +131,8 @@ def main(argv):
# For testing, we only do the first
files
=
files
[:
1
]
# For testing, we only do the first
5
files
=
files
[:
5
]
# Clear the build directory as it is a leftover from the previous execution
if
os
.
path
.
isdir
(
'build'
):
...
...
@@ -148,11 +148,15 @@ def main(argv):
for
t
,
d
in
files
:
print
()
print
(
d
)
b
=
build
(
d
)
b
=
build
(
d
,
template_dir
)
test_script
.
write
(
"./test.py
%
s
%
s
\n
"
%
(
t
,
os
.
path
.
join
(
b
,
'test'
)))
st
=
os
.
stat
(
test_script_path
)
os
.
chmod
(
test_script_path
,
st
.
st_mode
|
stat
.
S_IEXEC
)
print
()
print
()
print
(
"Now execute '
%
s ' to start the test"
%
test_script_path
)
if
__name__
==
"__main__"
:
sys
.
exit
(
main
(
sys
.
argv
))
templates/blackpill/Src/main.c
View file @
d4fb65b1
...
...
@@ -44,32 +44,21 @@
#include "crypto_aead.h"
#include "api.h"
#ifndef KEY_LENGTH
#define KEY_LENGTH 16
#endif
#define MAX_LEN 1400
#ifndef NSEC_LENGTH
#define NSEC_LENGTH 0
#endif
#ifndef NPUB_LENGTH
#define NPUB_LENGTH 0
#endif
unsigned
char
c
[
1400
];
unsigned
char
c
[
MAX_LEN
];
unsigned
long
long
clen
=
0
;
unsigned
char
m
[
1400
];
unsigned
char
m
[
MAX_LEN
];
unsigned
long
long
mlen
=
0
;
unsigned
char
ad
[
1400
];
unsigned
char
ad
[
MAX_LEN
];
unsigned
long
long
adlen
=
0
;
unsigned
char
nsec
[
512
];
unsigned
long
long
nslen
=
NSEC_LENGTH
;
unsigned
char
npub
[
512
]
;
unsigned
long
long
nplen
=
NPUB_LENGTH
;
unsigned
char
k
[
512
]
;
unsigned
long
long
klen
=
KEY_LENGTH
;
unsigned
char
rcv
;
unsigned
char
nsec
[
CRYPTO_NSECBYTES
]
;
const
unsigned
long
long
nslen
=
CRYPTO_NSECBYTES
;
unsigned
char
npub
[
CRYPTO_NPUBBYTES
]
;
const
unsigned
long
long
nplen
=
CRYPTO_NPUBBYTES
;
unsigned
char
k
[
CRYPTO_KEYBYTES
]
;
const
unsigned
long
long
klen
=
CRYPTO_KEYBYTES
;
/* Private function prototypes -----------------------------------------------*/
void
SystemClock_Config
(
void
);
...
...
@@ -78,48 +67,67 @@ static void MX_USART1_UART_Init(void);
static
void
read_variable_serial
(
unsigned
char
action
);
static
void
write_variable_serial
(
unsigned
char
target
[],
unsigned
long
long
len
);
static
void
read_variable_serial
(
unsigned
char
action
){
uint32_t
len
;
for
(
int
i
=
3
;
i
>=
0
;
i
--
)
{
static
void
read_serial
(
void
*
dst
,
unsigned
int
len
)
{
unsigned
char
*
buf
=
dst
;
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
while
(
LL_USART_IsActiveFlag_RXNE
(
USART1
));
rcv
=
LL_USART_ReceiveData8
(
USART1
);
len
|=
(
uint32_t
)
rcv
<<
i
*
8
;
buf
[
i
]
=
LL_USART_ReceiveData8
(
USART1
);
}
}
static
void
write_serial
(
const
void
*
src
,
unsigned
int
len
)
{
const
unsigned
char
*
buf
=
src
;
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
while
(
LL_USART_IsActiveFlag_RXNE
(
USART1
));
rcv
=
LL_USART_ReceiveData8
(
USART1
);
// Implement all cases or use another concept at all
while
(
!
LL_USART_IsActiveFlag_TXE
(
USART1
));
LL_USART_TransmitData8
(
USART1
,
buf
[
i
]);
}
}
static
void
read_variable_serial
(
unsigned
char
action
)
{
uint32_t
len
;
read_serial
(
&
len
,
sizeof
(
len
));
switch
(
action
)
{
case
'k'
:
k
[
i
]
=
rcv
;
while
(
len
!=
CRYPTO_KEYBYTES
);
read_serial
(
k
,
len
);
break
;
case
'p'
:
while
(
len
!=
CRYPTO_NPUBBYTES
);
read_serial
(
k
,
len
);
break
;
case
's'
:
while
(
len
!=
CRYPTO_NSECBYTES
);
read_serial
(
k
,
len
);
break
;
case
'a'
:
while
(
len
>
MAX_LEN
);
adlen
=
len
;
read_serial
(
ad
,
len
);
break
;
case
'm'
:
while
(
len
>
MAX_LEN
);
mlen
=
len
;
read_serial
(
m
,
len
);
break
;
case
'c'
:
while
(
len
>
MAX_LEN
);
clen
=
len
;
read_serial
(
c
,
len
);
break
;
default:
return
-
1
:
}
for
(;;);
}
}
static
void
write_variable_serial
(
unsigned
char
target
[],
unsigned
long
long
len
)
{
unsigned
char
trm
;
for
(
int
i
=
3
;
i
>=
0
;
i
--
)
{
trm
=
(
uint8_t
)
len
>>
i
*
8
;
while
(
!
LL_USART_IsActiveFlag_TXE
(
USART1
));
LL_USART_TransmitData8
(
USART1
,
trm
);
}
static
void
write_variable_serial
(
unsigned
char
target
[],
unsigned
long
long
len
)
{
write_serial
(
&
len
,
sizeof
(
len
));
write_serial
(
target
,
len
);
}
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
while
(
!
LL_USART_IsActiveFlag_TXE
(
USART1
));
LL_USART_TransmitData8
(
USART1
,
target
[
i
]);
}
}
int
main
(
void
)
{
int
main
(
void
)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
...
...
@@ -160,39 +168,49 @@ static void read_variable_serial(unsigned char action){
/* Infinite loop */
/* USER CODE BEGIN WHILE */
unsigned
char
rcv
;
int
res
;
while
(
1
)
{
/* USER CODE END WHILE */
while
(
LL_USART_IsActiveFlag_RXNE
(
USART1
));
rcv
=
LL_USART_ReceiveData8
(
USART1
);
read_serial
(
&
rcv
,
sizeof
(
rcv
));
switch
(
rcv
)
{
case
'c'
:
case
'm'
:
case
'a'
:
case
'k'
:
case
's'
:
case
'p'
:
read_variable
(
rcv
);
break
;
case
'C'
:
write_variable
(
c
,
clen
);
break
;
case
'M'
:
write_variable
(
m
,
mlen
);
break
;
case
'A'
:
write_variable
(
ad
,
adlen
);
break
;
case
'K'
:
write_variable
(
k
,
klen
);
break
;
case
'S'
:
write_variable
(
nsec
,
nslen
);
break
;
case
'P'
:
write_variable
(
npub
,
nplen
);
break
;
case
'p'
:
read_variable_serial
(
rcv
);
break
;
case
'C'
:
write_variable_serial
(
c
,
clen
);
break
;
case
'M'
:
write_variable_serial
(
m
,
mlen
);
break
;
case
'A'
:
write_variable_serial
(
ad
,
adlen
);
break
;
case
'K'
:
write_variable_serial
(
k
,
klen
);
break
;
case
'S'
:
write_variable_serial
(
nsec
,
nslen
);
break
;
case
'P'
:
write_variable_serial
(
npub
,
nplen
);
break
;
case
'd'
:
res
=
crypto_aead_decrypt
(
m
,
&
mlen
,
nsec
,
c
,
clen
,
ad
,
adlen
,
npub
,
k
);
break
;
case
'e'
:
res
=
crypto_aead_encrypt
(
c
,
&
clen
,
m
,
mlen
,
ad
,
adlen
,
nsec
,
npub
,
k
);
break
;
default:
return
2
;
}
/* USER CODE END WHILE */
}
}
/**
/**
* @brief System Clock Configuration
* @retval None
*/
void
SystemClock_Config
(
void
)
{
void
SystemClock_Config
(
void
)
{
LL_FLASH_SetLatency
(
LL_FLASH_LATENCY_1
);
if
(
LL_FLASH_GetLatency
()
!=
LL_FLASH_LATENCY_1
)
...
...
@@ -228,15 +246,15 @@ static void read_variable_serial(unsigned char action){
LL_Init1msTick
(
48000000
);
LL_SYSTICK_SetClkSource
(
LL_SYSTICK_CLKSOURCE_HCLK
);
LL_SetSystemCoreClock
(
48000000
);
}
}
/**
/**
* @brief USART1 Initialization Function
* @param None
* @retval None
*/
static
void
MX_USART1_UART_Init
(
void
)
{
static
void
MX_USART1_UART_Init
(
void
)
{
/* USER CODE BEGIN USART1_Init 0 */
...
...
@@ -280,15 +298,15 @@ static void read_variable_serial(unsigned char action){
/* USER CODE END USART1_Init 2 */
}
}
/**
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static
void
MX_GPIO_Init
(
void
)
{
static
void
MX_GPIO_Init
(
void
)
{
LL_GPIO_InitTypeDef
GPIO_InitStruct
=
{
0
};
/* GPIO Ports Clock Enable */
...
...
@@ -335,39 +353,39 @@ static void read_variable_serial(unsigned char action){
/**/
LL_GPIO_AF_EnableRemap_PD01
();
}
}
/* USER CODE BEGIN 4 */
/* USER CODE BEGIN 4 */
/* USER CODE END 4 */
/* USER CODE END 4 */
/**
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void
Error_Handler
(
void
)
{
void
Error_Handler
(
void
)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
/* USER CODE END Error_Handler_Debug */
}
}
#ifdef USE_FULL_ASSERT
/**
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void
assert_failed
(
uint8_t
*
file
,
uint32_t
line
)
{
void
assert_failed
(
uint8_t
*
file
,
uint32_t
line
)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* USER CODE END 6 */
}
}
#endif
/* USE_FULL_ASSERT */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment