]>
Commit | Line | Data |
---|---|---|
90112edb NM |
1 | /* write-le64.c |
2 | ||
3 | Copyright (C) 2001, 2011, 2012 Niels Möller | |
4 | ||
5 | This file is part of GNU Nettle. | |
6 | ||
7 | GNU Nettle is free software: you can redistribute it and/or | |
8 | modify it under the terms of either: | |
9 | ||
10 | * the GNU Lesser General Public License as published by the Free | |
11 | Software Foundation; either version 3 of the License, or (at your | |
12 | option) any later version. | |
13 | ||
14 | or | |
15 | ||
16 | * the GNU General Public License as published by the Free | |
17 | Software Foundation; either version 2 of the License, or (at your | |
18 | option) any later version. | |
19 | ||
20 | or both in parallel, as here. | |
21 | ||
22 | GNU Nettle is distributed in the hope that it will be useful, | |
23 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
24 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
25 | General Public License for more details. | |
26 | ||
27 | You should have received copies of the GNU General Public License and | |
28 | the GNU Lesser General Public License along with this program. If | |
29 | not, see http://www.gnu.org/licenses/. | |
30 | */ | |
c835888e NM |
31 | |
32 | #if HAVE_CONFIG_H | |
33 | # include "config.h" | |
34 | #endif | |
35 | ||
36 | #include "nettle-write.h" | |
37 | ||
38 | #include "macros.h" | |
39 | ||
40 | void | |
c15a79d4 | 41 | _nettle_write_le64(size_t length, uint8_t *dst, |
f8ad54fa | 42 | const uint64_t *src) |
c835888e | 43 | { |
c15a79d4 NM |
44 | size_t i; |
45 | size_t words; | |
c835888e NM |
46 | unsigned leftover; |
47 | ||
48 | words = length / 8; | |
49 | leftover = length % 8; | |
50 | ||
51 | for (i = 0; i < words; i++, dst += 8) | |
52 | LE_WRITE_UINT64(dst, src[i]); | |
53 | ||
54 | if (leftover) | |
55 | { | |
56 | uint64_t word; | |
57 | ||
58 | word = src[i]; | |
59 | ||
60 | do | |
61 | { | |
62 | *dst++ = word & 0xff; | |
63 | word >>= 8; | |
64 | } | |
65 | while (--leftover); | |
66 | } | |
67 | } |