struct {
uint8_t *data; /**< pointer to key data */
- size_t length; /**< key length in bytes */
+ uint16_t length;/**< key length in bytes */
} key;
/**< Cipher key
*
struct {
uint8_t *data; /**< pointer to key data */
- size_t length; /**< key length in bytes */
+ uint16_t length;/**< key length in bytes */
} key;
/**< Authentication key data.
* The authentication key length MUST be less than or equal to the
* (for example RFC 2104, FIPS 198a).
*/
- uint16_t digest_length;
- /**< Length of the digest to be returned. If the verify option is set,
- * this specifies the length of the digest to be compared for the
- * session.
- *
- * It is the caller's responsibility to ensure that the
- * digest length is compliant with the hash algorithm being used.
- * If the value is less than the maximum length allowed by the hash,
- * the result shall be truncated.
- */
-
struct {
uint16_t offset;
/**< Starting point for Initialisation Vector or Counter,
* specified as number of bytes from start of crypto
* operation (rte_crypto_op).
*
- * - For KASUMI in F9 mode, SNOW 3G in UIA2 mode,
- * for ZUC in EIA3 mode and for AES-GMAC, this is the
- * authentication Initialisation Vector (IV) value.
+ * - For SNOW 3G in UIA2 mode, for ZUC in EIA3 mode and
+ * for AES-GMAC, this is the authentication
+ * Initialisation Vector (IV) value.
*
+ * - For KASUMI in F9 mode and other authentication
+ * algorithms, this field is not used.
*
* For optimum performance, the data pointed to SHOULD
* be 8-byte aligned.
uint16_t length;
/**< Length of valid IV data.
*
- * - For KASUMI in F9 mode, SNOW3G in UIA2 mode, for
- * ZUC in EIA3 mode and for AES-GMAC, this is the length
- * of the IV.
+ * - For SNOW3G in UIA2 mode, for ZUC in EIA3 mode and
+ * for AES-GMAC, this is the length of the IV.
+ *
+ * - For KASUMI in F9 mode and other authentication
+ * algorithms, this field is not used.
*
*/
} iv; /**< Initialisation vector parameters */
+
+ uint16_t digest_length;
+ /**< Length of the digest to be returned. If the verify option is set,
+ * this specifies the length of the digest to be compared for the
+ * session.
+ *
+ * It is the caller's responsibility to ensure that the
+ * digest length is compliant with the hash algorithm being used.
+ * If the value is less than the maximum length allowed by the hash,
+ * the result shall be truncated.
+ */
};
struct {
uint8_t *data; /**< pointer to key data */
- size_t length; /**< key length in bytes */
+ uint16_t length;/**< key length in bytes */
} key;
struct {
*/
} iv; /**< Initialisation vector parameters */
- uint32_t digest_length;
+ uint16_t digest_length;
- uint16_t add_auth_data_length;
+ uint16_t aad_length;
/**< The length of the additional authenticated data (AAD) in bytes. */
};
/**< Session-less API crypto operation parameters */
};
+ RTE_STD_C11
union {
struct {
struct {
* KASUMI @ RTE_CRYPTO_AUTH_KASUMI_F9
* and ZUC @ RTE_CRYPTO_AUTH_ZUC_EIA3,
* this field should be in bits.
+ *
+ * @note
+ * For KASUMI @ RTE_CRYPTO_AUTH_KASUMI_F9,
+ * this offset should be such that
+ * data to authenticate starts at COUNT.
*/
uint32_t length;
/**< The message length, in bytes, of the source
* KASUMI @ RTE_CRYPTO_AUTH_KASUMI_F9
* and ZUC @ RTE_CRYPTO_AUTH_ZUC_EIA3,
* this field should be in bits.
+ *
+ * @note
+ * For KASUMI @ RTE_CRYPTO_AUTH_KASUMI_F9,
+ * the length should include the COUNT,
+ * FRESH, message, direction bit and padding
+ * (to be multiple of 8 bits).
*/
} data;
/**< Data offsets and length for authentication */