Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Brian Smith
nettle
Commits
7c1be763
Commit
7c1be763
authored
Apr 11, 2013
by
Niels Möller
Browse files
More efficient _umac_nh_n.
parent
a482e83c
Changes
2
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
7c1be763
2013-04-11 Niels Möller <nisse@lysator.liu.se>
* umac-nh-n.c (_umac_nh_n): Rewrote as a single pass over the
message data.
* examples/nettle-benchmark.c (time_umac): New function.
(main): Call it.
...
...
umac-nh-n.c
View file @
7c1be763
...
...
@@ -25,14 +25,39 @@
# include "config.h"
#endif
#include
<assert.h>
#include
<string.h>
#include
"umac.h"
#include
"macros.h"
/* FIXME: Single pass over the input */
void
_umac_nh_n
(
uint64_t
*
out
,
unsigned
n
,
const
uint32_t
*
key
,
unsigned
length
,
const
uint8_t
*
msg
)
{
unsigned
i
;
for
(
i
=
0
;
i
<
n
;
i
++
)
out
[
i
]
=
_umac_nh
(
key
+
4
*
i
,
length
,
msg
);
assert
(
length
>
0
);
assert
(
length
<=
1024
);
assert
(
length
%
32
==
0
);
memset
(
out
,
0
,
n
*
sizeof
(
*
out
));
for
(;
length
>
0
;
length
-=
32
,
msg
+=
32
,
key
+=
8
)
{
uint32_t
a0
,
a1
,
b0
,
b1
;
unsigned
i
;
a0
=
LE_READ_UINT32
(
msg
);
a1
=
LE_READ_UINT32
(
msg
+
4
);
b0
=
LE_READ_UINT32
(
msg
+
16
);
b1
=
LE_READ_UINT32
(
msg
+
20
);
for
(
i
=
0
;
i
<
n
;
i
++
)
out
[
i
]
+=
(
uint64_t
)
(
a0
+
key
[
0
+
4
*
i
])
*
(
b0
+
key
[
4
+
4
*
i
])
+
(
uint64_t
)
(
a1
+
key
[
1
+
4
*
i
])
*
(
b1
+
key
[
5
+
4
*
i
]);
a0
=
LE_READ_UINT32
(
msg
+
8
);
a1
=
LE_READ_UINT32
(
msg
+
12
);
b0
=
LE_READ_UINT32
(
msg
+
24
);
b1
=
LE_READ_UINT32
(
msg
+
28
);
for
(
i
=
0
;
i
<
n
;
i
++
)
out
[
i
]
+=
(
uint64_t
)
(
a0
+
key
[
2
+
4
*
i
])
*
(
b0
+
key
[
6
+
4
*
i
])
+
(
uint64_t
)
(
a1
+
key
[
3
+
4
*
i
])
*
(
b1
+
key
[
7
+
4
*
i
]);
}
}
Write
Preview
Supports
Markdown
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