There is a nice looking crypto library in small size. Best one so far I've found for Teensy/Arduino. Other suggestions are welcome if you have some! This one has one header and one source file. See here. However, when compiling in Arduino IDE, it can't handle this:
It says:
and seems to complain for each time it is used in the program. Yet this problem doesn't affect Arduino Uno, since compilation for that platform works correctly (besides a few errors).
Whats wrong?
Code:
#define FOR(i,n) for (i = 0;i < n;++i)
It says:
Arduino: 1.8.5 (Windows 10), TD: 1.41, Board: "Teensy 3.5, Serial, 120 MHz, Faster, US English"
In file included from C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.h:1:0,
from C:\Users\****\Documents\Arduino\TweetNACLtest2\TweetNACLtest2.ino:1:
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:13:3: error: uninitialized const '_0' [-fpermissive]
_0[16],
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:16:3: error: uninitialized const 'gf0' [-fpermissive]
gf0,
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c: In function 'int vn(const u8*, const u8*, int)':
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:57:3: note: in expansion of macro 'FOR'
FOR(i,n) d |= x^y;
^
In file included from C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.h:1:0,
from C:\Users\****\Documents\Arduino\TweetNACLtest2\TweetNACLtest2.ino:1:
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c: At global scope:
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:123:29: error: initializer-string for array of chars is too long [-fpermissive]
static const u8 sigma[16] = "expand 32-byte k";
^
In file included from C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.h:1:0,
from C:\Users\****\Documents\Arduino\TweetNACLtest2\TweetNACLtest2.ino:1:
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c: In function 'int crypto_sign(u8*, u64*, const u8*, u64, const u8*)':
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:723:3: note: in expansion of macro 'FOR'
FOR(i,n) sm[64 + i] = m;
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c: In function 'int crypto_sign_open(u8*, u64*, const u8*, u64, const u8*)':
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:790:3: note: in expansion of macro 'FOR'
FOR(i,n) m = sm;
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:802:5: note: in expansion of macro 'FOR'
FOR(i,n) m = 0;
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:806:3: note: in expansion of macro 'FOR'
FOR(i,n) m = sm[i + 64];
^
Error compiling for board Teensy 3.5.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
In file included from C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.h:1:0,
from C:\Users\****\Documents\Arduino\TweetNACLtest2\TweetNACLtest2.ino:1:
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:13:3: error: uninitialized const '_0' [-fpermissive]
_0[16],
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:16:3: error: uninitialized const 'gf0' [-fpermissive]
gf0,
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c: In function 'int vn(const u8*, const u8*, int)':
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:57:3: note: in expansion of macro 'FOR'
FOR(i,n) d |= x^y;
^
In file included from C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.h:1:0,
from C:\Users\****\Documents\Arduino\TweetNACLtest2\TweetNACLtest2.ino:1:
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c: At global scope:
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:123:29: error: initializer-string for array of chars is too long [-fpermissive]
static const u8 sigma[16] = "expand 32-byte k";
^
In file included from C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.h:1:0,
from C:\Users\****\Documents\Arduino\TweetNACLtest2\TweetNACLtest2.ino:1:
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c: In function 'int crypto_sign(u8*, u64*, const u8*, u64, const u8*)':
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:723:3: note: in expansion of macro 'FOR'
FOR(i,n) sm[64 + i] = m;
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c: In function 'int crypto_sign_open(u8*, u64*, const u8*, u64, const u8*)':
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:790:3: note: in expansion of macro 'FOR'
FOR(i,n) m = sm;
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:802:5: note: in expansion of macro 'FOR'
FOR(i,n) m = 0;
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:2:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define FOR(i,n) for (i = 0;i < n;++i)
^
C:\Users\****\Documents\Arduino\libraries\TweetNaCI/tweetnacl.c:806:3: note: in expansion of macro 'FOR'
FOR(i,n) m = sm[i + 64];
^
Error compiling for board Teensy 3.5.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
and seems to complain for each time it is used in the program. Yet this problem doesn't affect Arduino Uno, since compilation for that platform works correctly (besides a few errors).
Whats wrong?
Code:
#include <tweetnacl.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Last edited: