ECDSA op: rte_crypto_param k; /**< The ECDSA per-message secret number, which is an integer * in the interval (1, n-1) */ DSA op: No 'k'. This one I think have described some time ago: Only PMD that verifies ECDSA is OCTEON which apparently needs 'k' provided by user. Only PMD that verifies DSA is OpenSSL PMD which will generate its own random number internally. So in case PMD supports one of these options (or especially when supports both) we need to give some information here. The most obvious option would be to change rte_crypto_param k -> rte_crypto_param *k In case (k == NULL) PMD should generate it itself if possible, otherwise it should push crypto_op to the response ring with appropriate error code. Another options would be: * Extend rte_cryptodev_config and rte_cryptodev_info with information about random number generator for specific device (though it would be ABI breakage) * Provide some kind of callback to get random number from user (which could be useful for other things like RSA padding as well)