| OLD | NEW |
| 1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public |
| 2 * License, v. 2.0. If a copy of the MPL was not distributed with this | 2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
| 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| 4 | 4 |
| 5 /* This implementation of poly1305 is by Andrew Moon | 5 /* This implementation of poly1305 is by Andrew Moon |
| 6 * (https://github.com/floodyberry/poly1305-donna) and released as public | 6 * (https://github.com/floodyberry/poly1305-donna) and released as public |
| 7 * domain. It implements SIMD vectorization based on the algorithm described in | 7 * domain. It implements SIMD vectorization based on the algorithm described in |
| 8 * http://cr.yp.to/papers.html#neoncrypto. Unrolled to 2 powers, i.e. 64 byte | 8 * http://cr.yp.to/papers.html#neoncrypto. Unrolled to 2 powers, i.e. 64 byte |
| 9 * block size. */ | 9 * block size. */ |
| 10 | 10 |
| (...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 614 /* pad */ | 614 /* pad */ |
| 615 t0 = ((uint64_t)p->R23.d[3] << 32) | (uint64_t)p->R23.d[1]; | 615 t0 = ((uint64_t)p->R23.d[3] << 32) | (uint64_t)p->R23.d[1]; |
| 616 t1 = ((uint64_t)p->R24.d[3] << 32) | (uint64_t)p->R24.d[1]; | 616 t1 = ((uint64_t)p->R24.d[3] << 32) | (uint64_t)p->R24.d[1]; |
| 617 h0 += (t0 & 0xfffffffffff) ; c = (h0 >> 44); h0 &= 0xfffffffffff; t0
= shr128_pair(t1, t0, 44); | 617 h0 += (t0 & 0xfffffffffff) ; c = (h0 >> 44); h0 &= 0xfffffffffff; t0
= shr128_pair(t1, t0, 44); |
| 618 h1 += (t0 & 0xfffffffffff) + c; c = (h1 >> 44); h1 &= 0xfffffffffff; t1
= (t1 >> 24); | 618 h1 += (t0 & 0xfffffffffff) + c; c = (h1 >> 44); h1 &= 0xfffffffffff; t1
= (t1 >> 24); |
| 619 h2 += (t1 ) + c; | 619 h2 += (t1 ) + c; |
| 620 | 620 |
| 621 U64TO8_LE(mac + 0, ((h0 ) | (h1 << 44))); | 621 U64TO8_LE(mac + 0, ((h0 ) | (h1 << 44))); |
| 622 U64TO8_LE(mac + 8, ((h1 >> 20) | (h2 << 24))); | 622 U64TO8_LE(mac + 8, ((h1 >> 20) | (h2 << 24))); |
| 623 } | 623 } |
| OLD | NEW |