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
5 years ago
by
Sebastian Renner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Gapuino integration
parent
9da44c2a
Hide 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.
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
);
This diff is collapsed.
Click to expand it.
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
;
}
This diff is collapsed.
Click to expand it.
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
;
}
This diff is collapsed.
Click to expand it.
templates/gapuino/src/main.cpp
View file @
62f566e3
...
...
@@ -49,14 +49,14 @@ void my_assert(bool b) {
if
(
b
)
return
;
for
(;;)
wait
(
1
);
wait
_ms
(
0.
1
);
}
void
setup
()
{
device
.
baud
(
96
00
);
device
.
baud
(
1152
00
);
PORT_SetPinMux
(
PORTA
,
35
,
uPORT_MuxGPIO
);
crypto_pin
=
1
;
wait
(
100
);
wait
_ms
(
100
);
memset
(
npub
,
0
,
CRYPTO_NPUBBYTES
);
memset
(
nsec
,
0
,
CRYPTO_NSECBYTES
);
memset
(
k
,
0
,
CRYPTO_KEYBYTES
);
...
...
This diff is collapsed.
Click to expand it.
templates/gapuino/test
View file @
62f566e3
...
...
@@ -15,20 +15,17 @@ def eprint(*args, **kargs):
def
flash
(
tty
=
None
):
pipe
=
subprocess
.
PIPE
cmd
=
[
'platformio'
,
'run'
,
'--target'
,
'upload'
]
if
tty
is
not
None
:
cmd
.
extend
([
'--upload-port'
,
tty
])
cmd
=
[
'make'
,
'run'
]
p
=
subprocess
.
Popen
(
cmd
,
stdout
=
sys
.
stderr
,
stdin
=
pipe
)
stdout
,
stderr
=
p
.
communicate
(
""
)
def
get_serial
():
import
serial.tools.list_ports
ports
=
serial
.
tools
.
list_ports
.
comports
()
devices
=
[
p
.
device
for
p
in
ports
]
devices
.
sort
()
# Might also be 0, one is JTAG, one UART
return
devices
[
0
]
return
devices
class
UARTP
:
...
...
@@ -128,10 +125,10 @@ def main(argv):
dev
=
get_serial
()
flash
(
dev
)
flash
()
eprint
(
"Flashed"
)
time
.
sleep
(
0.1
)
ser
=
serial
.
Serial
(
dev
,
baudrate
=
15000
00
,
timeout
=
5
)
time
.
sleep
(
1.5
)
ser
=
serial
.
Serial
(
dev
[
0
],
baudrate
=
1152
00
,
timeout
=
5
)
uartp
=
UARTP
(
ser
)
ser
.
setRTS
(
True
)
...
...
This diff is collapsed.
Click to expand it.
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