• Home
  • History
  • Annotate
  • Raw
  • Download

Lines Matching refs:key

49   Key* key = NULL;  in parse_key_data()  local
79 key = (Key*)(avb_malloc(sizeof(Key) + 2 * h.key_num_bits / 8)); in parse_key_data()
80 if (key == NULL) { in parse_key_data()
84 key->len = h.key_num_bits / 32; in parse_key_data()
85 key->n0inv = h.n0inv; in parse_key_data()
86 key->n = (uint32_t*)(key + 1); /* Skip ahead sizeof(Key) bytes. */ in parse_key_data()
87 key->rr = key->n + key->len; in parse_key_data()
93 for (i = 0; i < key->len; i++) { in parse_key_data()
94 key->n[i] = avb_be32toh(((uint32_t*)n)[key->len - i - 1]); in parse_key_data()
95 key->rr[i] = avb_be32toh(((uint32_t*)rr)[key->len - i - 1]); in parse_key_data()
97 return key; in parse_key_data()
100 if (key != NULL) { in parse_key_data()
101 avb_free(key); in parse_key_data()
106 void free_parsed_key(Key* key) { in free_parsed_key() argument
107 avb_free(key); in free_parsed_key()
111 static void subM(const Key* key, uint32_t* a) { in subM() argument
114 for (i = 0; i < key->len; ++i) { in subM()
115 A += (uint64_t)a[i] - key->n[i]; in subM()
122 static int geM(const Key* key, uint32_t* a) { in geM() argument
124 for (i = key->len; i;) { in geM()
126 if (a[i] < key->n[i]) { in geM()
129 if (a[i] > key->n[i]) { in geM()
137 static void montMulAdd(const Key* key, in montMulAdd() argument
142 uint32_t d0 = (uint32_t)A * key->n0inv; in montMulAdd()
143 uint64_t B = (uint64_t)d0 * key->n[0] + (uint32_t)A; in montMulAdd()
146 for (i = 1; i < key->len; ++i) { in montMulAdd()
148 B = (B >> 32) + (uint64_t)d0 * key->n[i] + (uint32_t)A; in montMulAdd()
157 subM(key, c); in montMulAdd()
162 static void montMul(const Key* key, uint32_t* c, uint32_t* a, uint32_t* b) { in montMul() argument
164 for (i = 0; i < key->len; ++i) { in montMul()
167 for (i = 0; i < key->len; ++i) { in montMul()
168 montMulAdd(key, c, a[i], b); in montMul()
175 static void modpowF4(const Key* key, uint8_t* inout) { in modpowF4() argument
176 uint32_t* a = (uint32_t*)avb_malloc(key->len * sizeof(uint32_t)); in modpowF4()
177 uint32_t* aR = (uint32_t*)avb_malloc(key->len * sizeof(uint32_t)); in modpowF4()
178 uint32_t* aaR = (uint32_t*)avb_malloc(key->len * sizeof(uint32_t)); in modpowF4()
187 for (i = 0; i < (int)key->len; ++i) { in modpowF4()
188 uint32_t tmp = (inout[((key->len - 1 - i) * 4) + 0] << 24) | in modpowF4()
189 (inout[((key->len - 1 - i) * 4) + 1] << 16) | in modpowF4()
190 (inout[((key->len - 1 - i) * 4) + 2] << 8) | in modpowF4()
191 (inout[((key->len - 1 - i) * 4) + 3] << 0); in modpowF4()
195 montMul(key, aR, a, key->rr); /* aR = a * RR / R mod M */ in modpowF4()
197 montMul(key, aaR, aR, aR); /* aaR = aR * aR / R mod M */ in modpowF4()
198 montMul(key, aR, aaR, aaR); /* aR = aaR * aaR / R mod M */ in modpowF4()
200 montMul(key, aaa, aR, a); /* aaa = aR * a / R mod M */ in modpowF4()
203 if (geM(key, aaa)) { in modpowF4()
204 subM(key, aaa); in modpowF4()
208 for (i = (int)key->len - 1; i >= 0; --i) { in modpowF4()
231 bool avb_rsa_verify(const uint8_t* key, in avb_rsa_verify() argument
243 if (key == NULL || sig == NULL || hash == NULL || padding == NULL) { in avb_rsa_verify()
248 parsed_key = parse_key_data(key, key_num_bytes); in avb_rsa_verify()