Hi Arek, > -----Original Message----- > From: Kusztal, ArkadiuszX > Sent: Wednesday, May 15, 2019 1:51 AM > To: Trahe, Fiona <fiona.tr...@intel.com>; Doherty, Declan > <declan.dohe...@intel.com>; De Lara Guarch, > Pablo <pablo.de.lara.gua...@intel.com>; akhil.go...@nxp.com; > ravi1.ku...@amd.com; Jerin Jacob > Kollanukkaran <jer...@marvell.com>; Anoob Joseph <ano...@marvell.com>; Zhang, > Roy Fan > <roy.fan.zh...@intel.com>; t...@semihalf.com; lir...@marvell.com; > wa...@marvell.com; > g.si...@nxp.com; Hemant Agrawal <hemant.agra...@nxp.com>; Jay Zhou > <jianjay.z...@huawei.com>; dev@dpdk.org > Cc: Nowak, DamianX <damianx.no...@intel.com> > Subject: RE: [RFC] crypto: handling of encrypted digest > > Hi Fiona, > > Two small things to clarify bit more. > > > -----Original Message----- > > From: Trahe, Fiona > > Sent: Tuesday, May 14, 2019 3:59 PM > > To: Doherty, Declan <declan.dohe...@intel.com>; De Lara Guarch, Pablo > > <pablo.de.lara.gua...@intel.com>; akhil.go...@nxp.com; > > ravi1.ku...@amd.com; Jerin Jacob Kollanukkaran <jer...@marvell.com>; > > Anoob Joseph <ano...@marvell.com>; Zhang, Roy Fan > > <roy.fan.zh...@intel.com>; t...@semihalf.com; lir...@marvell.com; > > wa...@marvell.com; g.si...@nxp.com; Hemant Agrawal > > <hemant.agra...@nxp.com>; Jay Zhou <jianjay.z...@huawei.com>; > > dev@dpdk.org > > Cc: Kusztal, ArkadiuszX <arkadiuszx.kusz...@intel.com>; Nowak, DamianX > > <damianx.no...@intel.com>; Trahe, Fiona <fiona.tr...@intel.com> > > Subject: RE: [RFC] crypto: handling of encrypted digest > > > > After discussions with Pablo and Fan we plan to go with option 1 below and > > add a feature flag to capabilities, so by default existing PMDs won't > > publish > > support for it. > > We plan to push this in 19.08. > > > > > -----Original Message----- > > > From: Trahe, Fiona > > > Sent: Wednesday, May 8, 2019 6:39 PM > > > To: Doherty, Declan <declan.dohe...@intel.com>; De Lara Guarch, Pablo > > > <pablo.de.lara.gua...@intel.com>; akhil.go...@nxp.com; > > > ravi1.ku...@amd.com; Jerin Jacob Kollanukkaran <jer...@marvell.com>; > > > Anoob Joseph <ano...@marvell.com>; Zhang, Roy Fan > > > <roy.fan.zh...@intel.com>; t...@semihalf.com; lir...@marvell.com; > > > wa...@marvell.com; g.si...@nxp.com; Hemant Agrawal > > > <hemant.agra...@nxp.com>; Jay Zhou <jianjay.z...@huawei.com>; > > > dev@dpdk.org > > > Cc: Trahe, Fiona <fiona.tr...@intel.com>; Kusztal, ArkadiuszX > > > <arkadiuszx.kusz...@intel.com>; Nowak, DamianX > > > <damianx.no...@intel.com> > > > Subject: [RFC] crypto: handling of encrypted digest > > > > > > 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. > > [AK] - By "raw data + 1" you mean "buffer ptr + auth offset + auth len +1" ? [Fiona] Almost. Actually, I suppose it's "buffer ptr + auth offset + auth len". The +1 is not needed. > > > - 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 > > [AK] for sure you meant this but to specify bit more : > cipher offset + cipher length >= auth offset + auth len + digest length [Fiona] Yes, that's better. But still doesn't answer the following question re partial digest encryption. So in case that's needed, and not to prevent it, how about: (cipher offset + cipher length) must be greater than (auth offset + auth len) and is typically (auth offset + auth len + 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? > > >