From: "Trahe, Fiona" <fiona.trahe@intel.com>
To: "Doherty, Declan" <declan.doherty@intel.com>,
"De Lara Guarch, Pablo" <pablo.de.lara.guarch@intel.com>,
"akhil.goyal@nxp.com" <akhil.goyal@nxp.com>,
"ravi1.kumar@amd.com" <ravi1.kumar@amd.com>,
"Jerin Jacob Kollanukkaran" <jerinj@marvell.com>,
Anoob Joseph <anoobj@marvell.com>,
"Zhang, Roy Fan" <roy.fan.zhang@intel.com>,
"tdu@semihalf.com" <tdu@semihalf.com>,
"lironh@marvell.com" <lironh@marvell.com>,
"walan@marvell.com" <walan@marvell.com>,
"g.singh@nxp.com" <g.singh@nxp.com>,
Hemant Agrawal <hemant.agrawal@nxp.com>,
Jay Zhou <jianjay.zhou@huawei.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Trahe, Fiona" <fiona.trahe@intel.com>,
"Kusztal, ArkadiuszX" <arkadiuszx.kusztal@intel.com>,
"Nowak, DamianX" <damianx.nowak@intel.com>
Subject: [dpdk-dev] [RFC] crypto: handling of encrypted digest
Date: Wed, 8 May 2019 17:38:35 +0000 [thread overview]
Message-ID: <348A99DA5F5B7549AA880327E580B435897562CC@IRSMSX101.ger.corp.intel.com> (raw)
Message-ID: <20190508173835.A6o8OjxLMK7uSOaMRvqu5FnKTlXp9TvSLv9M7UxDWbw@z> (raw)
Hi all crypto PMD maintainers,
We're getting requests to handle the following case on symmetric crypto API, needed for 5G security:
Generate digest, append to end of raw data, then encrypt the raw data plus digest.
In opposite direction decryption returns raw data plus digest, authenticate
the raw data against that decrypted digest.
It's not clearly described on the cryptodev API whether this case is expected to be supported or not.
Tests are throwing up some issues - specifically
- In out-of-place generate-auth-then-encrypt operations, it's necessary to provide space at the end of both the source AND the destination buffer for the digest. Which should the op.auth.digest.data refer to?
- The unencrypted digest must be just stored temporarily until finished with, then zeroed, for proper security.
I see two options for handling this:
1. Use existing API - Document in comment under rte_crypto_sym_op.auth.digest.data that for encrypted digest cases
- In encrypt direction, xform chain must specify auth generate then cipher encrypt
- In decrypt direction, xform chain must specify cipher decrypt then auth verify
- digest ptr must point to where the unencrypted digest will be stored, i.e.
end of raw data+1 in m_dst for out-of-place operation in the decrypt direction
end of raw data+1 in m_src for all other operations.
- for out-of-place operation there must be space for digest at end of both m_src and m_dst
- as for any unencrypted data, the unencrypted digest will be cleared by the PMD once no longer needed
- cipher length >= auth length + digest length (Is it overkill to say this? might someone want partial digest encryption?)
2. Extend the API with an explicit encrypted_digest flag in rte_crypto_auth_xform.
Document usage in comment - almost same as above. EXCEPT digest ptr should not be set, instead PMD will assume its location as above.
Regardless of which option, should this be considered a specific feature - with a feature capability flag? Or are all PMDs expected to handle it and so treat as a bug or document as a limitation if they don't?
Pros/cons:
(1) could be considered as just a clarification and no deprecation notice needed. Test cases may work against some existing PMDs. However the 2 PMDs we've tested so far - QAT and aesni_mb - need patches to work so are affected anyway.
(2) is more explicit - but may affect more PMDs - needs a deprecation notice.
Opinions?
next reply other threads:[~2019-05-08 17:38 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-08 17:38 Trahe, Fiona [this message]
2019-05-08 17:38 ` Trahe, Fiona
2019-05-14 13:59 ` Trahe, Fiona
2019-05-14 13:59 ` Trahe, Fiona
2019-05-15 0:50 ` Kusztal, ArkadiuszX
2019-05-15 0:50 ` Kusztal, ArkadiuszX
2019-05-15 10:58 ` Trahe, Fiona
2019-05-15 10:58 ` Trahe, Fiona
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=348A99DA5F5B7549AA880327E580B435897562CC@IRSMSX101.ger.corp.intel.com \
--to=fiona.trahe@intel.com \
--cc=akhil.goyal@nxp.com \
--cc=anoobj@marvell.com \
--cc=arkadiuszx.kusztal@intel.com \
--cc=damianx.nowak@intel.com \
--cc=declan.doherty@intel.com \
--cc=dev@dpdk.org \
--cc=g.singh@nxp.com \
--cc=hemant.agrawal@nxp.com \
--cc=jerinj@marvell.com \
--cc=jianjay.zhou@huawei.com \
--cc=lironh@marvell.com \
--cc=pablo.de.lara.guarch@intel.com \
--cc=ravi1.kumar@amd.com \
--cc=roy.fan.zhang@intel.com \
--cc=tdu@semihalf.com \
--cc=walan@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).