crmdesc Struct

C

struct crmdesc {
    char *addr;
    struct crmdesc *next;
    uint32_t sz;
    uint32_t dmatag;
};

Description

A cryptomaster DMA descriptor

crm_dmaslot Struct

C

struct crm_dmaslot {
    uint32_t cfg;
    struct crmdesc outdescs[5];
};

Description

Input and output descriptors and related state for cmdma

crm_dmactl Struct

C

struct crm_dmactl {
    struct crm_regs *regs;
    struct crmdesc *d;
    struct crmdesc *out;
    char *mapped;
    struct crm_dmaslot dmamem;
};

Description

DMA controller. For internal use only. Don't access directly.

crmkeyref Struct

C

struct crmkeyref {
    const char *key;
    size_t sz;
    uint32_t cfg;
};

Description

Key reference Used for making a reference to a key stored in memory or to a key selected by an identifier. Created by CRM_KEYREF_LOAD_MATERIAL() or CRM_KEYREF_LOAD_BY_ID(). Used by blkcipher and aead creation functions. All members should be considered INTERNAL and may not be accessed directly.

crmaead Struct

C

struct crmaead {
    const struct crm_aead_cmdma_cfg *cfg;
    const char *expectedtag;
    uint8_t tagsz;
    uint8_t headersz;
    uint32_t discardaadsz;
    uint32_t datainsz;
    uint64_t dataintotalsz;
    uint64_t totalaadsz;
    uint8_t granularity;
    int is_in_ctx;
    size_t ctxsz;
    unsigned int compatible;
    const struct crmkeyref *key;
    struct crm_dmactl dma;
    struct crmdesc allindescs[7];
    uint8_t extramem[CRM_AEAD_PRIV_SZ];
};

Description

An AEAD operation. To be used with crm_aead() functions. All members should be considered INTERNAL and may not be accessed directly.

crmblkcipher Struct

C

struct crmblkcipher {
    const struct crm_blkcipher_cmdma_cfg *cfg;
    size_t inminsz;
    size_t granularity;
    uint32_t mode;
    unsigned int compatible;
    const struct crmkeyref *key;
    struct crm_dmactl dma;
    struct crmdesc allindescs[5];
    char extramem[CRM_BLKCIPHER_PRIV_SZ];
};

Description

A simple block cipher operation To be used with crm_blkcipher() functions. All members should be considered INTERNAL and may not be accessed directly.

crmhash Struct

C

struct crmhash {
    const struct crmhashalg *algo;
    const struct crm_digesttags *dmatags;
    uint32_t cntindescs;
    size_t totalsz;
    uint32_t feedsz;
    void(*digest)(struct crmhash* c, char *digest);
    struct crm_dmactl dma;
    struct crmdesc allindescs[7 + CRM_EXTRA_IN_DESCS];
    uint8_t extramem[CRM_HASH_PRIV_SZ];
};

Description

A hash operation. To be used with crm_hash functions. All members should be considered INTERNAL and may not be accessed directly.

crmcmmask Struct

C

struct crmcmmask {
    struct crm_dmactl dma;
    struct crmdesc allindescs[1];
};

Description

A operation to load a countermeasures mask into the hardware. To be used with crm_cm() functions. All members should be considered INTERNAL and may not be accessed directly.

crmmac Struct

C

struct crmmac {
    const struct crm_mac_cmdma_cfg *cfg;
    uint32_t cntindescs;
    uint32_t feedsz;
    int macsz;
    unsigned int compatible;
    const struct crmkeyref *key;
    struct crm_dmactl dma;
    struct crmdesc allindescs[5];
    uint8_t extramem[16];
};

Description

A simple MAC(message authentication code) operation To be used with crm_mac() functions. All members should be considered INTERNAL and may not be accessed directly.