159#define peerblk_msg_blk_t( digestsize, len, vrf_len, blksize ) \
161 struct peerdist_msg_transport_header hdr; \
162 peerdist_msg_blk_t ( digestsize, len, vrf_len, \
164 } __attribute__ (( packed ))
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
uint8_t block[3][8]
DES-encrypted blocks.
Peer Content Caching and Retrieval: Content Identification [MS-PCCRC].
#define PEERDIST_DIGEST_MAX_SIZE
Maximum digest size for any supported algorithm.
peerdist_block_decrypt_index
PeerDist retrieval protocol decryption data transfer buffer indices.
@ PEERBLK_NUM_BUFFERS
Number of decryption buffers.
@ PEERBLK_AFTER
Data after the trimmed content.
@ PEERBLK_BEFORE
Data before the trimmed content.
@ PEERBLK_DURING
Data within the trimmed content.
int peerblk_open(struct interface *xfer, struct uri *uri, struct peerdist_info_block *block)
Open PeerDist block download.
Peer Content Caching and Retrieval (PeerDist) protocol peer discovery.
A message digest algorithm.
A doubly-linked list entry (or list head)
A PeerDist discovery client.
A PeerDist discovery peer.
A PeerDist retrieval protocol decryption buffer descriptor.
struct xfer_buffer * xferbuf
Data transfer buffer.
size_t offset
Offset within data transfer buffer.
size_t len
Length to use from data transfer buffer.
PeerDist block download queue.
struct list_head list
List of queued downloads.
struct process process
Download opening process.
unsigned int count
Number of open downloads.
int(* open)(struct peerdist_block *peerblk)
Open block download.
unsigned int max
Maximum number of open downloads.
A PeerDist block download.
unsigned int segment
Segment index.
struct retry_timer timer
Retry timer.
struct interface raw
Raw data interface.
size_t end
End of trimmed content (relative to incoming data stream)
struct uri * uri
Original URI.
struct cipher_algorithm * cipher
Cipher algorithm.
struct peerdist_block_decrypt decrypt[PEERBLK_NUM_BUFFERS]
Decryption data buffer descriptors.
void * digestctx
Digest context (statically allocated at instantiation time)
size_t start
Start of trimmed content (relative to incoming data stream)
unsigned long started
Time at which block download was started.
struct peerdist_block_queue * queue
Block download queue.
struct digest_algorithm * digest
Digest algorithm.
unsigned int cycles
Number of full attempt cycles completed.
struct peerdist_range range
Content range of this block.
struct xfer_buffer buffer
Data buffer.
size_t digestsize
Digest size.
size_t offset
Offset of first byte in trimmed range within overall download.
uint8_t secret[PEERDIST_DIGEST_MAX_SIZE]
Segment secret.
struct peerdisc_client discovery
Discovery client.
size_t pos
Current position (relative to incoming data stream)
struct interface xfer
Data transfer interface.
struct process process
Decryption process.
void * cipherctx
Cipher context (dynamically allocated as needed)
unsigned long attempted
Time at which most recent attempt was started.
struct peerdist_range trim
Trimmed range of this block.
uint8_t hash[PEERDIST_DIGEST_MAX_SIZE]
Block hash.
size_t cipher_remaining
Remaining decryption length.
unsigned int block
Block index.
struct refcnt refcnt
Reference count.
struct list_head queued
List of queued block downloads.
struct peerdisc_peer * peer
Current position in discovered peer list.
size_t digest_remaining
Remaining digest length (excluding AES padding bytes)
struct interface retrieval
Retrieval protocol interface.
int rc
Most recent attempt failure.
A content information block.
A Uniform Resource Identifier.