Lines Matching refs:blob

30 largeblob_reset(largeblob_t *blob)  in largeblob_reset()  argument
32 fido_blob_reset(&blob->ciphertext); in largeblob_reset()
33 fido_blob_reset(&blob->nonce); in largeblob_reset()
34 blob->origsiz = 0; in largeblob_reset()
40 largeblob_t *blob; in largeblob_free() local
42 if (blob_ptr == NULL || (blob = *blob_ptr) == NULL) in largeblob_free()
44 largeblob_reset(blob); in largeblob_free()
45 free(blob); in largeblob_free()
65 largeblob_decrypt(const largeblob_t *blob, const fido_blob_t *key) in largeblob_decrypt() argument
75 if (largeblob_aad(aad, blob->origsiz) < 0) { in largeblob_decrypt()
79 if (aes256_gcm_dec(key, &blob->nonce, aad, &blob->ciphertext, in largeblob_decrypt()
96 largeblob_get_nonce(largeblob_t *blob) in largeblob_get_nonce() argument
105 if (fido_blob_set(&blob->nonce, buf, sizeof(buf)) < 0) { in largeblob_get_nonce()
118 largeblob_seal(largeblob_t *blob, const fido_blob_t *body, in largeblob_seal() argument
137 if (largeblob_get_nonce(blob) < 0) { in largeblob_seal()
141 if (aes256_gcm_enc(key, &blob->nonce, aad, plaintext, in largeblob_seal()
142 &blob->ciphertext) < 0) { in largeblob_seal()
146 blob->origsiz = body->len; in largeblob_seal()
279 largeblob_t *blob = arg; in largeblob_do_decode() local
290 if (fido_blob_decode(val, &blob->ciphertext) < 0 || in largeblob_do_decode()
291 blob->ciphertext.len < LARGEBLOB_TAG_LENGTH) in largeblob_do_decode()
295 if (fido_blob_decode(val, &blob->nonce) < 0 || in largeblob_do_decode()
296 blob->nonce.len != LARGEBLOB_NONCE_LENGTH) in largeblob_do_decode()
303 blob->origsiz = (size_t)origsiz; in largeblob_do_decode()
312 largeblob_decode(largeblob_t *blob, const cbor_item_t *item) in largeblob_decode() argument
318 if (cbor_map_iter(item, blob, largeblob_do_decode) < 0) { in largeblob_decode()
322 if (fido_blob_is_empty(&blob->ciphertext) || in largeblob_decode()
323 fido_blob_is_empty(&blob->nonce) || blob->origsiz == 0) { in largeblob_decode()
334 largeblob_t *blob; in largeblob_encode() local
338 if ((blob = largeblob_new()) == NULL || in largeblob_encode()
339 largeblob_seal(blob, body, key) < 0) { in largeblob_encode()
343 if ((argv[0] = fido_blob_encode(&blob->ciphertext)) == NULL || in largeblob_encode()
344 (argv[1] = fido_blob_encode(&blob->nonce)) == NULL || in largeblob_encode()
345 (argv[2] = cbor_build_uint(blob->origsiz)) == NULL) { in largeblob_encode()
352 largeblob_free(&blob); in largeblob_encode()
363 largeblob_t blob; in largeblob_array_lookup() local
366 memset(&blob, 0, sizeof(blob)); in largeblob_array_lookup()
372 if (largeblob_decode(&blob, v[i]) < 0 || in largeblob_array_lookup()
373 (plaintext = largeblob_decrypt(&blob, key)) == NULL) { in largeblob_array_lookup()
375 largeblob_reset(&blob); in largeblob_array_lookup()
387 r = fido_uncompress(out, plaintext, blob.origsiz); in largeblob_array_lookup()
392 largeblob_reset(&blob); in largeblob_array_lookup()