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
62f566e3
authored
Jan 20, 2020
by
Sebastian Renner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Gapuino integration
parent
9da44c2a
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
9 additions
and
269 deletions
+9
-269
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/LWC_AEAD_KAT_0_0.txt
+0
-0
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/Makefile
+0
-17
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/api.h
+0
-5
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/crypto_aead.h
+0
-36
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/genkat_aead.c
+0
-163
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/nocrypt.c
+0
-36
templates/gapuino/src/main.cpp
+3
-3
templates/gapuino/test
+6
-9
No files found.
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/LWC_AEAD_KAT_0_0.txt
deleted
100644 → 0
View file @
9da44c2a
This source diff could not be displayed because it is too large. You can
view the blob
instead.
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/Makefile
deleted
100644 → 0
View file @
9da44c2a
CC
=
gcc
#NISTGCCFLAGS=-std=c99 -Wall -Wextra -Wshadow -fsanitize=address,undefined -O2
NISTGCCFLAGS
=
-std
=
c99
-Wall
-Wextra
-Wshadow
-Os
LFLAGS
=
-lm
all
:
nocrypt
nocrypt
:
nocrypt.c genkat_aead.c
$(CC)
$(NISTGCCFLAGS)
-o
$@
$^
$(LFLAGS)
.PHONY
:
clean
clean
:
rm
-f
*
.o
rm
-f
nocrypt
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/api.h
deleted
100644 → 0
View file @
9da44c2a
#define CRYPTO_KEYBYTES 0
#define CRYPTO_NSECBYTES 0
#define CRYPTO_NPUBBYTES 0
#define CRYPTO_ABYTES 0
#define CRYPTO_NOOVERLAP 1
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/crypto_aead.h
deleted
100644 → 0
View file @
9da44c2a
typedef
unsigned
long
long
u64
;
int
crypto_encrypt
(
unsigned
char
*
c
,
unsigned
long
long
*
clen
,
const
unsigned
char
*
m
,
unsigned
long
long
mlen
,
const
unsigned
char
*
nsec
,
const
unsigned
char
*
npub
,
const
unsigned
char
*
k
);
int
crypto_decrypt
(
unsigned
char
*
m
,
unsigned
long
long
*
mlen
,
unsigned
char
*
nsec
,
const
unsigned
char
*
c
,
unsigned
long
long
clen
,
const
unsigned
char
*
npub
,
const
unsigned
char
*
k
);
int
crypto_aead_encrypt
(
unsigned
char
*
c
,
unsigned
long
long
*
clen
,
const
unsigned
char
*
m
,
unsigned
long
long
mlen
,
const
unsigned
char
*
ad
,
unsigned
long
long
adlen
,
const
unsigned
char
*
nsec
,
const
unsigned
char
*
npub
,
const
unsigned
char
*
k
);
int
crypto_aead_decrypt
(
unsigned
char
*
m
,
unsigned
long
long
*
mlen
,
unsigned
char
*
nsec
,
const
unsigned
char
*
c
,
unsigned
long
long
clen
,
const
unsigned
char
*
ad
,
unsigned
long
long
adlen
,
const
unsigned
char
*
npub
,
const
unsigned
char
*
k
);
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/genkat_aead.c
deleted
100644 → 0
View file @
9da44c2a
//
// NIST-developed software is provided by NIST as a public service.
// You may use, copy and distribute copies of the software in any medium,
// provided that you keep intact this entire notice. You may improve,
// modify and create derivative works of the software or any portion of
// the software, and you may copy and distribute such modifications or
// works. Modified works should carry a notice stating that you changed
// the software and should note the date and nature of any such change.
// Please explicitly acknowledge the National Institute of Standards and
// Technology as the source of the software.
//
// NIST-developed software is expressly provided "AS IS." NIST MAKES NO
// WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION
// OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST
// NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE
// UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST
// DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE
// OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY,
// RELIABILITY, OR USEFULNESS OF THE SOFTWARE.
//
// You are solely responsible for determining the appropriateness of using and
// distributing the software and you assume all risks associated with its use,
// including but not limited to the risks and costs of program errors, compliance
// with applicable laws, damage to or loss of data, programs or equipment, and
// the unavailability or interruption of operation. This software is not intended
// to be used in any situation where a failure could cause risk of injury or
// damage to property. The software developed by NIST employees is not subject to
// copyright protection within the United States.
//
// disable deprecation for sprintf and fopen
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
#include <string.h>
#include "crypto_aead.h"
#include "api.h"
#define KAT_SUCCESS 0
#define KAT_FILE_OPEN_ERROR -1
#define KAT_DATA_ERROR -3
#define KAT_CRYPTO_FAILURE -4
#define MAX_FILE_NAME 256
#define MAX_MESSAGE_LENGTH 32
#define MAX_ASSOCIATED_DATA_LENGTH 32
void
init_buffer
(
unsigned
char
*
buffer
,
unsigned
long
long
numbytes
);
void
fprint_bstr
(
FILE
*
fp
,
const
char
*
label
,
const
unsigned
char
*
data
,
unsigned
long
long
length
);
int
generate_test_vectors
();
int
main
()
{
int
ret
=
generate_test_vectors
();
if
(
ret
!=
KAT_SUCCESS
)
{
fprintf
(
stderr
,
"test vector generation failed with code %d
\n
"
,
ret
);
}
return
ret
;
}
int
generate_test_vectors
()
{
FILE
*
fp
;
char
fileName
[
MAX_FILE_NAME
];
unsigned
char
key
[
CRYPTO_KEYBYTES
];
unsigned
char
nonce
[
CRYPTO_NPUBBYTES
];
unsigned
char
msg
[
MAX_MESSAGE_LENGTH
];
unsigned
char
msg2
[
MAX_MESSAGE_LENGTH
];
unsigned
char
ad
[
MAX_ASSOCIATED_DATA_LENGTH
];
unsigned
char
ct
[
MAX_MESSAGE_LENGTH
+
CRYPTO_ABYTES
];
unsigned
long
long
clen
,
mlen2
;
int
count
=
1
;
int
func_ret
,
ret_val
=
KAT_SUCCESS
;
init_buffer
(
key
,
sizeof
(
key
));
init_buffer
(
nonce
,
sizeof
(
nonce
));
init_buffer
(
msg
,
sizeof
(
msg
));
init_buffer
(
ad
,
sizeof
(
ad
));
sprintf
(
fileName
,
"LWC_AEAD_KAT_%d_%d.txt"
,
(
CRYPTO_KEYBYTES
*
8
),
(
CRYPTO_NPUBBYTES
*
8
));
if
((
fp
=
fopen
(
fileName
,
"w"
))
==
NULL
)
{
fprintf
(
stderr
,
"Couldn't open <%s> for write
\n
"
,
fileName
);
return
KAT_FILE_OPEN_ERROR
;
}
for
(
unsigned
long
long
mlen
=
0
;
(
mlen
<=
MAX_MESSAGE_LENGTH
)
&&
(
ret_val
==
KAT_SUCCESS
);
mlen
++
)
{
//for (unsigned long long mlen = 0; (mlen <= 32) && (ret_val == KAT_SUCCESS); mlen++) {
for
(
unsigned
long
long
adlen
=
0
;
adlen
<=
MAX_ASSOCIATED_DATA_LENGTH
;
adlen
++
)
{
//for (unsigned long long adlen = 0; adlen <= 32; adlen++) {
printf
(
"%0d
\n
"
,
(
int
)
clen
);
fprintf
(
fp
,
"Count = %d
\n
"
,
count
++
);
printf
(
"Count = %d
\n
"
,
count
-
1
);
fprint_bstr
(
fp
,
"Key = "
,
key
,
CRYPTO_KEYBYTES
);
fprint_bstr
(
fp
,
"Nonce = "
,
nonce
,
CRYPTO_NPUBBYTES
);
fprint_bstr
(
fp
,
"PT = "
,
msg
,
mlen
);
fprint_bstr
(
fp
,
"AD = "
,
ad
,
adlen
);
if
((
func_ret
=
crypto_aead_encrypt
(
ct
,
&
clen
,
msg
,
mlen
,
ad
,
adlen
,
NULL
,
nonce
,
key
))
!=
0
)
{
fprintf
(
fp
,
"crypto_aead_encrypt returned <%d>
\n
"
,
func_ret
);
ret_val
=
KAT_CRYPTO_FAILURE
;
break
;
}
fprint_bstr
(
fp
,
"CT = "
,
ct
,
clen
);
fprintf
(
fp
,
"
\n
"
);
if
((
func_ret
=
crypto_aead_decrypt
(
msg2
,
&
mlen2
,
NULL
,
ct
,
clen
,
ad
,
adlen
,
nonce
,
key
))
!=
0
)
{
fprintf
(
fp
,
"crypto_aead_decrypt returned <%d>
\n
"
,
func_ret
);
ret_val
=
KAT_CRYPTO_FAILURE
;
break
;
}
if
(
mlen
!=
mlen2
)
{
fprintf
(
fp
,
"crypto_aead_decrypt returned bad 'mlen': Got <%llu>, expected <%llu>
\n
"
,
mlen2
,
mlen
);
ret_val
=
KAT_CRYPTO_FAILURE
;
break
;
}
if
(
memcmp
(
msg
,
msg2
,
mlen
))
{
fprintf
(
fp
,
"crypto_aead_decrypt did not recover the plaintext
\n
"
);
ret_val
=
KAT_CRYPTO_FAILURE
;
break
;
}
}
}
fclose
(
fp
);
return
ret_val
;
}
void
fprint_bstr
(
FILE
*
fp
,
const
char
*
label
,
const
unsigned
char
*
data
,
unsigned
long
long
length
)
{
fprintf
(
fp
,
"%s"
,
label
);
for
(
unsigned
long
long
i
=
0
;
i
<
length
;
i
++
)
fprintf
(
fp
,
"%02X"
,
data
[
i
]);
fprintf
(
fp
,
"
\n
"
);
}
void
init_buffer
(
unsigned
char
*
buffer
,
unsigned
long
long
numbytes
)
{
for
(
unsigned
long
long
i
=
0
;
i
<
numbytes
;
i
++
)
buffer
[
i
]
=
(
unsigned
char
)
i
;
}
all-lwc-submission-files/nocrypt/Implementations/crypto_aead/nocrypt/ref/nocrypt.c
deleted
100644 → 0
View file @
9da44c2a
#include "api.h"
#include "crypto_aead.h"
#include <string.h>
int
crypto_aead_encrypt
(
unsigned
char
*
c
,
unsigned
long
long
*
clen
,
const
unsigned
char
*
m
,
unsigned
long
long
mlen
,
const
unsigned
char
*
ad
,
unsigned
long
long
adlen
,
const
unsigned
char
*
nsec
,
const
unsigned
char
*
npub
,
const
unsigned
char
*
k
)
{
*
clen
=
mlen
+
CRYPTO_ABYTES
;
memcpy
(
c
,
m
,
mlen
);
memset
(
c
+
mlen
,
0
,
CRYPTO_ABYTES
);
return
0
;
}
int
crypto_aead_decrypt
(
unsigned
char
*
m
,
unsigned
long
long
*
mlen
,
unsigned
char
*
nsec
,
const
unsigned
char
*
c
,
unsigned
long
long
clen
,
const
unsigned
char
*
ad
,
unsigned
long
long
adlen
,
const
unsigned
char
*
npub
,
const
unsigned
char
*
k
)
{
unsigned
long
long
len
=
*
mlen
=
clen
-
CRYPTO_ABYTES
;
memcpy
(
m
,
c
,
len
);
return
0
;
}
templates/gapuino/src/main.cpp
View file @
62f566e3
...
@@ -49,14 +49,14 @@ void my_assert(bool b) {
...
@@ -49,14 +49,14 @@ void my_assert(bool b) {
if
(
b
)
if
(
b
)
return
;
return
;
for
(;;)
for
(;;)
wait
(
1
);
wait
_ms
(
0.
1
);
}
}
void
setup
()
{
void
setup
()
{
device
.
baud
(
96
00
);
device
.
baud
(
1152
00
);
PORT_SetPinMux
(
PORTA
,
35
,
uPORT_MuxGPIO
);
PORT_SetPinMux
(
PORTA
,
35
,
uPORT_MuxGPIO
);
crypto_pin
=
1
;
crypto_pin
=
1
;
wait
(
100
);
wait
_ms
(
100
);
memset
(
npub
,
0
,
CRYPTO_NPUBBYTES
);
memset
(
npub
,
0
,
CRYPTO_NPUBBYTES
);
memset
(
nsec
,
0
,
CRYPTO_NSECBYTES
);
memset
(
nsec
,
0
,
CRYPTO_NSECBYTES
);
memset
(
k
,
0
,
CRYPTO_KEYBYTES
);
memset
(
k
,
0
,
CRYPTO_KEYBYTES
);
...
...
templates/gapuino/test
View file @
62f566e3
...
@@ -15,20 +15,17 @@ def eprint(*args, **kargs):
...
@@ -15,20 +15,17 @@ def eprint(*args, **kargs):
def
flash
(
tty
=
None
):
def
flash
(
tty
=
None
):
pipe
=
subprocess
.
PIPE
pipe
=
subprocess
.
PIPE
cmd
=
[
'platformio'
,
'run'
,
'--target'
,
'upload'
]
cmd
=
[
'make'
,
'run'
]
if
tty
is
not
None
:
cmd
.
extend
([
'--upload-port'
,
tty
])
p
=
subprocess
.
Popen
(
cmd
,
p
=
subprocess
.
Popen
(
cmd
,
stdout
=
sys
.
stderr
,
stdin
=
pipe
)
stdout
=
sys
.
stderr
,
stdin
=
pipe
)
stdout
,
stderr
=
p
.
communicate
(
""
)
def
get_serial
():
def
get_serial
():
import
serial.tools.list_ports
import
serial.tools.list_ports
ports
=
serial
.
tools
.
list_ports
.
comports
()
ports
=
serial
.
tools
.
list_ports
.
comports
()
devices
=
[
p
.
device
for
p
in
ports
]
devices
=
[
p
.
device
for
p
in
ports
]
devices
.
sort
()
devices
.
sort
()
# Might also be 0, one is JTAG, one UART
return
devices
return
devices
[
0
]
class
UARTP
:
class
UARTP
:
...
@@ -128,10 +125,10 @@ def main(argv):
...
@@ -128,10 +125,10 @@ def main(argv):
dev
=
get_serial
()
dev
=
get_serial
()
flash
(
dev
)
flash
()
eprint
(
"Flashed"
)
eprint
(
"Flashed"
)
time
.
sleep
(
0.1
)
time
.
sleep
(
1.5
)
ser
=
serial
.
Serial
(
dev
,
baudrate
=
15000
00
,
timeout
=
5
)
ser
=
serial
.
Serial
(
dev
[
0
],
baudrate
=
1152
00
,
timeout
=
5
)
uartp
=
UARTP
(
ser
)
uartp
=
UARTP
(
ser
)
ser
.
setRTS
(
True
)
ser
.
setRTS
(
True
)
...
...
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