Lines Matching +full:a +full:- +full:c
1 //====- SHA1.cpp - Private copy of the SHA1 implementation ---*- C++ -* ======//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 // (http://oauth.googlecode.com/svn/code/c/liboauth/src/sha1.c and
11 // http://cvsweb.netbsd.org/bsdweb.cgi/src/common/lib/libc/hash/sha1/sha1.c?rev=1.6)
12 // and modified by wrapping it in a C++ interface for LLVM,
15 //===----------------------------------------------------------------------===//
27 return (Number << Bits) | (Number >> (32 - Bits)); in rol()
39 static inline void r0(uint32_t &A, uint32_t &B, uint32_t &C, uint32_t &D, in r0() argument
41 E += ((B & (C ^ D)) ^ D) + blk0(Buf, I) + 0x5A827999 + rol(A, 5); in r0()
45 static inline void r1(uint32_t &A, uint32_t &B, uint32_t &C, uint32_t &D, in r1() argument
47 E += ((B & (C ^ D)) ^ D) + blk(Buf, I) + 0x5A827999 + rol(A, 5); in r1()
51 static inline void r2(uint32_t &A, uint32_t &B, uint32_t &C, uint32_t &D, in r2() argument
53 E += (B ^ C ^ D) + blk(Buf, I) + 0x6ED9EBA1 + rol(A, 5); in r2()
57 static inline void r3(uint32_t &A, uint32_t &B, uint32_t &C, uint32_t &D, in r3() argument
59 E += (((B | C) & D) | (B & C)) + blk(Buf, I) + 0x8F1BBCDC + rol(A, 5); in r3()
63 static inline void r4(uint32_t &A, uint32_t &B, uint32_t &C, uint32_t &D, in r4() argument
65 E += (B ^ C ^ D) + blk(Buf, I) + 0xCA62C1D6 + rol(A, 5); in r4()
92 uint32_t A = InternalState.State[0]; in hashBlock() local
94 uint32_t C = InternalState.State[2]; in hashBlock() local
99 r0(A, B, C, D, E, 0, InternalState.Buffer.L); in hashBlock()
100 r0(E, A, B, C, D, 1, InternalState.Buffer.L); in hashBlock()
101 r0(D, E, A, B, C, 2, InternalState.Buffer.L); in hashBlock()
102 r0(C, D, E, A, B, 3, InternalState.Buffer.L); in hashBlock()
103 r0(B, C, D, E, A, 4, InternalState.Buffer.L); in hashBlock()
104 r0(A, B, C, D, E, 5, InternalState.Buffer.L); in hashBlock()
105 r0(E, A, B, C, D, 6, InternalState.Buffer.L); in hashBlock()
106 r0(D, E, A, B, C, 7, InternalState.Buffer.L); in hashBlock()
107 r0(C, D, E, A, B, 8, InternalState.Buffer.L); in hashBlock()
108 r0(B, C, D, E, A, 9, InternalState.Buffer.L); in hashBlock()
109 r0(A, B, C, D, E, 10, InternalState.Buffer.L); in hashBlock()
110 r0(E, A, B, C, D, 11, InternalState.Buffer.L); in hashBlock()
111 r0(D, E, A, B, C, 12, InternalState.Buffer.L); in hashBlock()
112 r0(C, D, E, A, B, 13, InternalState.Buffer.L); in hashBlock()
113 r0(B, C, D, E, A, 14, InternalState.Buffer.L); in hashBlock()
114 r0(A, B, C, D, E, 15, InternalState.Buffer.L); in hashBlock()
115 r1(E, A, B, C, D, 16, InternalState.Buffer.L); in hashBlock()
116 r1(D, E, A, B, C, 17, InternalState.Buffer.L); in hashBlock()
117 r1(C, D, E, A, B, 18, InternalState.Buffer.L); in hashBlock()
118 r1(B, C, D, E, A, 19, InternalState.Buffer.L); in hashBlock()
120 r2(A, B, C, D, E, 20, InternalState.Buffer.L); in hashBlock()
121 r2(E, A, B, C, D, 21, InternalState.Buffer.L); in hashBlock()
122 r2(D, E, A, B, C, 22, InternalState.Buffer.L); in hashBlock()
123 r2(C, D, E, A, B, 23, InternalState.Buffer.L); in hashBlock()
124 r2(B, C, D, E, A, 24, InternalState.Buffer.L); in hashBlock()
125 r2(A, B, C, D, E, 25, InternalState.Buffer.L); in hashBlock()
126 r2(E, A, B, C, D, 26, InternalState.Buffer.L); in hashBlock()
127 r2(D, E, A, B, C, 27, InternalState.Buffer.L); in hashBlock()
128 r2(C, D, E, A, B, 28, InternalState.Buffer.L); in hashBlock()
129 r2(B, C, D, E, A, 29, InternalState.Buffer.L); in hashBlock()
130 r2(A, B, C, D, E, 30, InternalState.Buffer.L); in hashBlock()
131 r2(E, A, B, C, D, 31, InternalState.Buffer.L); in hashBlock()
132 r2(D, E, A, B, C, 32, InternalState.Buffer.L); in hashBlock()
133 r2(C, D, E, A, B, 33, InternalState.Buffer.L); in hashBlock()
134 r2(B, C, D, E, A, 34, InternalState.Buffer.L); in hashBlock()
135 r2(A, B, C, D, E, 35, InternalState.Buffer.L); in hashBlock()
136 r2(E, A, B, C, D, 36, InternalState.Buffer.L); in hashBlock()
137 r2(D, E, A, B, C, 37, InternalState.Buffer.L); in hashBlock()
138 r2(C, D, E, A, B, 38, InternalState.Buffer.L); in hashBlock()
139 r2(B, C, D, E, A, 39, InternalState.Buffer.L); in hashBlock()
141 r3(A, B, C, D, E, 40, InternalState.Buffer.L); in hashBlock()
142 r3(E, A, B, C, D, 41, InternalState.Buffer.L); in hashBlock()
143 r3(D, E, A, B, C, 42, InternalState.Buffer.L); in hashBlock()
144 r3(C, D, E, A, B, 43, InternalState.Buffer.L); in hashBlock()
145 r3(B, C, D, E, A, 44, InternalState.Buffer.L); in hashBlock()
146 r3(A, B, C, D, E, 45, InternalState.Buffer.L); in hashBlock()
147 r3(E, A, B, C, D, 46, InternalState.Buffer.L); in hashBlock()
148 r3(D, E, A, B, C, 47, InternalState.Buffer.L); in hashBlock()
149 r3(C, D, E, A, B, 48, InternalState.Buffer.L); in hashBlock()
150 r3(B, C, D, E, A, 49, InternalState.Buffer.L); in hashBlock()
151 r3(A, B, C, D, E, 50, InternalState.Buffer.L); in hashBlock()
152 r3(E, A, B, C, D, 51, InternalState.Buffer.L); in hashBlock()
153 r3(D, E, A, B, C, 52, InternalState.Buffer.L); in hashBlock()
154 r3(C, D, E, A, B, 53, InternalState.Buffer.L); in hashBlock()
155 r3(B, C, D, E, A, 54, InternalState.Buffer.L); in hashBlock()
156 r3(A, B, C, D, E, 55, InternalState.Buffer.L); in hashBlock()
157 r3(E, A, B, C, D, 56, InternalState.Buffer.L); in hashBlock()
158 r3(D, E, A, B, C, 57, InternalState.Buffer.L); in hashBlock()
159 r3(C, D, E, A, B, 58, InternalState.Buffer.L); in hashBlock()
160 r3(B, C, D, E, A, 59, InternalState.Buffer.L); in hashBlock()
162 r4(A, B, C, D, E, 60, InternalState.Buffer.L); in hashBlock()
163 r4(E, A, B, C, D, 61, InternalState.Buffer.L); in hashBlock()
164 r4(D, E, A, B, C, 62, InternalState.Buffer.L); in hashBlock()
165 r4(C, D, E, A, B, 63, InternalState.Buffer.L); in hashBlock()
166 r4(B, C, D, E, A, 64, InternalState.Buffer.L); in hashBlock()
167 r4(A, B, C, D, E, 65, InternalState.Buffer.L); in hashBlock()
168 r4(E, A, B, C, D, 66, InternalState.Buffer.L); in hashBlock()
169 r4(D, E, A, B, C, 67, InternalState.Buffer.L); in hashBlock()
170 r4(C, D, E, A, B, 68, InternalState.Buffer.L); in hashBlock()
171 r4(B, C, D, E, A, 69, InternalState.Buffer.L); in hashBlock()
172 r4(A, B, C, D, E, 70, InternalState.Buffer.L); in hashBlock()
173 r4(E, A, B, C, D, 71, InternalState.Buffer.L); in hashBlock()
174 r4(D, E, A, B, C, 72, InternalState.Buffer.L); in hashBlock()
175 r4(C, D, E, A, B, 73, InternalState.Buffer.L); in hashBlock()
176 r4(B, C, D, E, A, 74, InternalState.Buffer.L); in hashBlock()
177 r4(A, B, C, D, E, 75, InternalState.Buffer.L); in hashBlock()
178 r4(E, A, B, C, D, 76, InternalState.Buffer.L); in hashBlock()
179 r4(D, E, A, B, C, 77, InternalState.Buffer.L); in hashBlock()
180 r4(C, D, E, A, B, 78, InternalState.Buffer.L); in hashBlock()
181 r4(B, C, D, E, A, 79, InternalState.Buffer.L); in hashBlock()
183 InternalState.State[0] += A; in hashBlock()
185 InternalState.State[2] += C; in hashBlock()
192 InternalState.Buffer.C[InternalState.BufferOffset] = Data; in addUncounted()
194 InternalState.Buffer.C[InternalState.BufferOffset ^ 3] = Data; in addUncounted()
214 Data.size(), BLOCK_LENGTH - InternalState.BufferOffset); in update()
232 for (uint8_t C : Data) in update() local
233 addUncounted(C); in update()
242 // Implement SHA-1 padding (fips180-2 5.1.1) in pad()
251 addUncounted(0); // But SHA-1 supports 64 bit lengths in pad()
255 21); // as SHA-1 supports bitstreams as well as in pad()