28#include <crypto_utils/android_pubkey.h>
34#ifndef SHA256_DIGEST_LENGTH
35#define SHA256_DIGEST_LENGTH 32
38#define FEC_BLOCKSIZE 4096
39#define FEC_DEFAULT_ROOTS 2
41#define FEC_MAGIC 0xFECFECFE
126 explicit io(
const std::string& fn,
int mode = O_RDONLY,
int flags = 0,
131 explicit operator bool()
const {
135 bool open(
const std::string& fn,
int mode = O_RDONLY,
int flags = 0,
150 bool seek(int64_t offset,
int whence) {
151 return !
fec_seek(handle_.get(), offset, whence);
154 ssize_t
read(
void *buf,
size_t count) {
155 return fec_read(handle_.get(), buf, count);
158 ssize_t
pread(
void *buf,
size_t count, uint64_t offset) {
159 return fec_pread(handle_.get(), buf, count, offset);
172 return get_verity_metadata(
data);
181 return get_ecc_metadata(
data) &&
data.valid;
184 bool set_verity_status(
bool enabled) {
#define ANDROID_PUBKEY_MODULUS_SIZE
Definition: android_pubkey.h:31
int status()
Definition: health.cpp:42
char data[Size]
Definition: incremental_server.cpp:1
int fec_ecc_get_metadata(struct fec_handle *f, struct fec_ecc_metadata *data)
Definition: fec_open.cpp:457
int fec_open(struct fec_handle **f, const char *path, int mode, int flags, int roots)
Definition: fec_open.cpp:497
int fec_close(struct fec_handle *f)
Definition: fec_open.cpp:409
int fec_verity_set_status(struct fec_handle *f, bool enabled)
Definition: fec_verity.cpp:627
struct fec_status __attribute__
uint32_t roots
Definition: io.h:3
int fec_verity_get_metadata(struct fec_handle *f, struct fec_verity_metadata *data)
Definition: fec_open.cpp:429
ssize_t fec_read(struct fec_handle *f, void *buf, size_t count)
Definition: fec_read.cpp:448
#define FEC_DEFAULT_ROOTS
Definition: io.h:39
int fec_get_status(struct fec_handle *f, struct fec_status *s)
Definition: fec_open.cpp:481
ssize_t fec_pread(struct fec_handle *f, void *buf, size_t count, uint64_t offset)
Definition: fec_read.cpp:520
int fec_seek(struct fec_handle *f, int64_t offset, int whence)
Definition: fec_read.cpp:407
#define SHA256_DIGEST_LENGTH
Definition: io.h:35
@ FEC_FS_EXT4
Definition: io.h:82
@ FEC_FS_SQUASH
Definition: io.h:83
@ FEC_VERITY_DISABLE
Definition: io.h:84
Definition: fec_private.h:134
int mode
Definition: fec_private.h:138
int flags
Definition: fec_private.h:137
uint64_t data_size
Definition: io.h:59
int flags
Definition: io.h:56
uint64_t errors
Definition: io.h:58
uint64_t size
Definition: io.h:60
int mode
Definition: io.h:57
#define pread
Definition: sysdeps.h:545
#define read
Definition: sysdeps.h:543
#define open
Definition: sysdeps.h:492
int close(const android::base::unique_fd_impl< T > &) __attribute__((__unavailable__("close called on unique_fd")))