Removed need for aligned types (which are not portable)

Resolves #22
This commit is contained in:
Peter Schwabe 2019-02-11 09:41:32 +01:00
父節點 06b4279e0a
當前提交 69e593427a
共有 2 個檔案被更改,包括 17 行新增9 行删除

查看文件

@ -5,18 +5,23 @@
#define NTESTS 10
const unsigned char canary[8] = {0x01, 0x23, 0x45, 0x67,
0x89, 0xAB, 0xCD, 0xEF};
/* allocate a bit more for all keys and messages and
* make sure it is not touched by the implementations.
*/
static void write_canary(unsigned char *d) {
*((uint64_t *)d) = 0x0123456789ABCDEF;
for (int i = 0; i < 8; i++) {
d[i] = canary[i];
}
}
static int check_canary(const unsigned char *d) {
if (*(uint64_t *)d != 0x0123456789ABCDEF) {
return -1;
for (int i = 0; i < 8; i++) {
if (d[i] != canary[i])
return -1;
}
return 0;
}

查看文件

@ -6,20 +6,23 @@
#define NTESTS 15
#define MLEN 32
typedef uint64_t unaligned_uint64_t __attribute__((aligned(1)));
const unsigned char canary[8] = {0x01, 0x23, 0x45, 0x67,
0x89, 0xAB, 0xCD, 0xEF};
/* allocate a bit more for all keys and messages and
* make sure it is not touched by the implementations.
*/
static void write_canary(unsigned char *d) {
*((unaligned_uint64_t *)d) = 0x0123456789ABCDEF;
for (int i = 0; i < 8; i++) {
d[i] = canary[i];
}
}
static int check_canary(const unsigned char *d) {
if (*(unaligned_uint64_t *)d != 0x0123456789ABCDEF) {
return -1;
for (int i = 0; i < 8; i++) {
if (d[i] != canary[i])
return -1;
}
return 0;
}