Lines Matching full:as

15  * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
39 rec_evaluate_query(struct assertion *as) in rec_evaluate_query() argument
45 as->as_kresult = KRESULT_IN_PROGRESS; in rec_evaluate_query()
51 keynote_evaluate_assertion(as); in rec_evaluate_query()
54 as->as_kresult = KRESULT_DONE; in rec_evaluate_query()
56 as->as_error = keynote_errno; in rec_evaluate_query()
66 if (as->as_result == 0) in rec_evaluate_query()
68 as->as_kresult = KRESULT_DONE; in rec_evaluate_query()
69 return as->as_result; in rec_evaluate_query()
72 for (kl = as->as_keylist; in rec_evaluate_query()
79 as->as_kresult = KRESULT_DONE; in rec_evaluate_query()
82 as->as_error = ERROR_MEMORY; in rec_evaluate_query()
114 as->as_error = ERROR_MEMORY; in rec_evaluate_query()
115 as->as_kresult = KRESULT_DONE; in rec_evaluate_query()
123 keynote_current_assertion = as; in rec_evaluate_query()
124 s = keynote_parse_keypred(as, 0); in rec_evaluate_query()
129 as->as_error = ERROR_MEMORY; in rec_evaluate_query()
130 as->as_kresult = KRESULT_DONE; in rec_evaluate_query()
141 as->as_result = (as->as_result < s ? as->as_result : s); in rec_evaluate_query()
144 if (as->as_sigresult == SIGRESULT_UNTOUCHED) in rec_evaluate_query()
146 if (!(as->as_flags & ASSERT_FLAG_LOCAL)) in rec_evaluate_query()
147 as->as_sigresult = keynote_sigverify_assertion(as); in rec_evaluate_query()
149 as->as_sigresult = SIGRESULT_TRUE; /* Trusted assertion */ in rec_evaluate_query()
152 if (as->as_sigresult != SIGRESULT_TRUE) in rec_evaluate_query()
154 as->as_result = 0; in rec_evaluate_query()
155 as->as_sigresult = SIGRESULT_FALSE; in rec_evaluate_query()
160 as->as_error = ERROR_MEMORY; in rec_evaluate_query()
161 as->as_kresult = KRESULT_DONE; in rec_evaluate_query()
166 as->as_kresult = KRESULT_DONE; in rec_evaluate_query()
167 return as->as_result; in rec_evaluate_query()
178 struct assertion *as; in keynote_fix_fields() local
197 for (as = keynote_current_session->ks_assertion_table[i]; in keynote_fix_fields()
198 as != NULL; in keynote_fix_fields()
199 as = as->as_next) in keynote_fix_fields()
201 if (!(as->as_internalflags & ASSERT_IFLAG_NEEDPROC) && in keynote_fix_fields()
202 !(as->as_internalflags & ASSERT_IFLAG_WEIRDLICS) && in keynote_fix_fields()
203 !(as->as_internalflags & ASSERT_IFLAG_WEIRDAUTH) && in keynote_fix_fields()
204 !(as->as_internalflags & ASSERT_IFLAG_WEIRDSIG)) in keynote_fix_fields()
208 if (((as->as_internalflags & ASSERT_IFLAG_WEIRDSIG) || in keynote_fix_fields()
209 (as->as_internalflags & ASSERT_IFLAG_NEEDPROC)) && in keynote_fix_fields()
210 (as->as_signature_string_s != NULL)) in keynote_fix_fields()
211 if (keynote_evaluate_authorizer(as, 0) == -1) in keynote_fix_fields()
214 as->as_error = keynote_errno; in keynote_fix_fields()
222 if ((as->as_internalflags & ASSERT_IFLAG_WEIRDLICS) || in keynote_fix_fields()
223 (as->as_internalflags & ASSERT_IFLAG_NEEDPROC)) in keynote_fix_fields()
224 if (keynote_parse_keypred(as, 1) == -1) in keynote_fix_fields()
227 as->as_error = keynote_errno; in keynote_fix_fields()
235 if ((as->as_internalflags & ASSERT_IFLAG_WEIRDAUTH) || in keynote_fix_fields()
236 (as->as_internalflags & ASSERT_IFLAG_NEEDPROC)) in keynote_fix_fields()
237 if (keynote_evaluate_authorizer(as, 1) == -1) in keynote_fix_fields()
240 as->as_error = keynote_errno; in keynote_fix_fields()
250 for (as = keynote_current_session->ks_assertion_table[i]; in keynote_fix_fields()
251 as != NULL; in keynote_fix_fields()
252 as = as->as_next) in keynote_fix_fields()
253 if (((as->as_internalflags & ASSERT_IFLAG_WEIRDAUTH) && in keynote_fix_fields()
254 !(as->as_internalflags & ASSERT_IFLAG_PROCESSED)) || in keynote_fix_fields()
255 (as->as_internalflags & ASSERT_IFLAG_NEEDPROC)) in keynote_fix_fields()
257 as->as_internalflags &= ~ASSERT_IFLAG_NEEDPROC; in keynote_fix_fields()
258 as->as_internalflags |= ASSERT_IFLAG_PROCESSED; in keynote_fix_fields()
260 as->as_id); in keynote_fix_fields()
262 if (keynote_add_htable(as, 1) != RESULT_TRUE) in keynote_fix_fields()
280 struct assertion *as; in keynote_evaluate_query() local
290 for (as = keynote_current_session->ks_assertion_table[i]; in keynote_evaluate_query()
291 as != NULL; in keynote_evaluate_query()
292 as = as->as_next) in keynote_evaluate_query()
293 if ((as->as_authorizer != NULL) && /* Paranoid */ in keynote_evaluate_query()
294 (as->as_signeralgorithm == KEYNOTE_ALGORITHM_NONE)) in keynote_evaluate_query()
295 if ((!strcmp("POLICY", as->as_authorizer)) && in keynote_evaluate_query()
296 (as->as_flags & ASSERT_FLAG_LOCAL)) in keynote_evaluate_query()
298 if ((p = rec_evaluate_query(as)) == -1) in keynote_evaluate_query()
301 as->as_error = keynote_errno; in keynote_evaluate_query()
372 struct assertion *as; in keynote_parse_assertion() local
375 as = calloc(1, sizeof(struct assertion)); in keynote_parse_assertion()
376 if (as == NULL) in keynote_parse_assertion()
383 as->as_buf = strdup(buf); in keynote_parse_assertion()
384 if (as->as_buf == NULL) in keynote_parse_assertion()
387 keynote_free_assertion(as); in keynote_parse_assertion()
391 as->as_flags = assertion_flags & ~(ASSERT_FLAG_SIGGEN | in keynote_parse_assertion()
395 for (i = 0, j = len; i < j && isspace((unsigned char)as->as_buf[i]); i++) in keynote_parse_assertion()
399 if ((i >= j) || ((i != 0) && (as->as_buf[i - 1] != '\n'))) in keynote_parse_assertion()
401 keynote_free_assertion(as); in keynote_parse_assertion()
408 ks = as->as_buf + i; in keynote_parse_assertion()
411 if (as->as_startofsignature == NULL) in keynote_parse_assertion()
412 as->as_startofsignature = ks; in keynote_parse_assertion()
415 if (as->as_buf[i] == '#') /* Comment */ in keynote_parse_assertion()
420 while ((i< j) && as->as_buf[++i] != '\n') in keynote_parse_assertion()
428 for (; (as->as_buf[i] != ':') && (i < j); i++) in keynote_parse_assertion()
433 keynote_free_assertion(as); in keynote_parse_assertion()
439 ke = as->as_buf + i; in keynote_parse_assertion()
442 ts = as->as_buf + i + 1; /* Skip ':' */ in keynote_parse_assertion()
455 te = as->as_buf + i; in keynote_parse_assertion()
460 if ((as->as_buf[i] == '\n') && (i + 1 < j) && in keynote_parse_assertion()
461 (as->as_buf[i + 1] == '\n')) in keynote_parse_assertion()
464 te = as->as_buf + i; in keynote_parse_assertion()
469 if ((as->as_buf[i] == '\n') && in keynote_parse_assertion()
470 (!isspace((unsigned char)as->as_buf[i + 1])) && in keynote_parse_assertion()
471 (as->as_buf[i + 1] != '#')) in keynote_parse_assertion()
473 te = as->as_buf + i; in keynote_parse_assertion()
490 keynote_free_assertion(as); in keynote_parse_assertion()
496 keynote_free_assertion(as); in keynote_parse_assertion()
505 keynote_free_assertion(as); in keynote_parse_assertion()
513 if (as->as_env != NULL) in keynote_parse_assertion()
515 keynote_free_assertion(as); in keynote_parse_assertion()
520 as->as_env = keynote_get_envlist(ts, te, 0); in keynote_parse_assertion()
523 keynote_free_assertion(as); in keynote_parse_assertion()
529 if (as->as_authorizer_string_s != NULL) in keynote_parse_assertion()
531 keynote_free_assertion(as); in keynote_parse_assertion()
536 as->as_authorizer_string_s = ts; in keynote_parse_assertion()
537 as->as_authorizer_string_e = te; in keynote_parse_assertion()
541 if (as->as_keypred_s != NULL) in keynote_parse_assertion()
543 keynote_free_assertion(as); in keynote_parse_assertion()
548 as->as_keypred_s = ts; in keynote_parse_assertion()
549 as->as_keypred_e = te; in keynote_parse_assertion()
553 if (as->as_conditions_s != NULL) in keynote_parse_assertion()
555 keynote_free_assertion(as); in keynote_parse_assertion()
560 as->as_conditions_s = ts; in keynote_parse_assertion()
561 as->as_conditions_e = te; in keynote_parse_assertion()
565 if (as->as_signature_string_s != NULL) in keynote_parse_assertion()
567 keynote_free_assertion(as); in keynote_parse_assertion()
573 as->as_allbutsignature = ks; in keynote_parse_assertion()
574 as->as_signature_string_s = ts; in keynote_parse_assertion()
575 as->as_signature_string_e = te; in keynote_parse_assertion()
579 if (as->as_comment_s != NULL) in keynote_parse_assertion()
581 keynote_free_assertion(as); in keynote_parse_assertion()
586 as->as_comment_s = ts; in keynote_parse_assertion()
587 as->as_comment_e = te; in keynote_parse_assertion()
595 if ((te == as->as_buf + len) || (te + 1 == as->as_buf + len) || in keynote_parse_assertion()
600 for (k = 1; te + k < as->as_buf + len && *(te + k) != '\n'; k++) in keynote_parse_assertion()
603 keynote_free_assertion(as); in keynote_parse_assertion()
613 if (as->as_authorizer_string_s == NULL) in keynote_parse_assertion()
615 keynote_free_assertion(as); in keynote_parse_assertion()
623 if (keynote_fix_fields(as, 0) != RESULT_TRUE) in keynote_parse_assertion()
625 keynote_free_assertion(as); in keynote_parse_assertion()
631 if (keynote_fix_fields(as, 1) != RESULT_TRUE) in keynote_parse_assertion()
633 keynote_free_assertion(as); in keynote_parse_assertion()
637 return as; in keynote_parse_assertion()