> -----Original Message-----
> From: Kusztal, ArkadiuszX <arkadiuszx.kusz...@intel.com>
> Sent: Thursday, July 25, 2019 11:22 PM
> To: Shally Verma <shal...@marvell.com>; Nowak, DamianX
> <damianx.no...@intel.com>; dev@dpdk.org
> Cc: Trahe, Fiona <fiona.tr...@intel.com>; Ayuj Verma
> <ayve...@marvell.com>; Sunila Sahu <ss...@marvell.com>; Kanaka Durga
> Kotamarthy <kkotamar...@marvell.com>; Anoob Joseph
> <ano...@marvell.com>; Narayana Prasad Raju Athreya
> <pathr...@marvell.com>
> Subject: RE: [dpdk-dev] [PATCH v5 1/1] test: new test structure for
> asymmetric crypto
> 
> 
> 
...
> > > > > > > +static const struct
> > > > > > > +modex_test_data modex_test_case[] = { {
> > > > > > > + .description = "Modular Exponentiation "
> > > > > > > +                            "(mod=128, base=20, exp=3,
> > > res=128)",
> > > > > > > + .xform_type = RTE_CRYPTO_ASYM_XFORM_MODEX,
> > > > > > ...
> > > > > > > + .modulus = {
> > > > > > > +         .data = {
> > > > > > > +                 0xb3, 0xa1, 0xaf, 0xb7, 0x13, 0x08, 0x00,
> > 0x0a,
> > > > > > There's already a testvector mod_p[] in file with leading 0.
> > > > > > Where as I see this one duplicate of that but without leading 0.
> > > > > > Could you tell me if you ever tested with mod_p[] with leading
> > > > > > 0 and if your qat PMD passed that?
> > > > >
> > > > > [AK] - Hi Shally,
> > > > > The problem with this vector is that it has 1024bit long number
> > > > > but
> > > > > sizeof(mod_p) Is 129 bytes (1032 bit).
> > > > > It is no problem for QAT to get correct result, but test will
> > > > > fail because QAT PMD will return 129 bytes of date (with leading
> > > > > zero, number right-shifted) so comparison will fail. This is the
> > > > > same question as
> > > > padding NONE for RSA.
> > > > > Should we trim zeroes, or shouldn't we.
> > > > [Shally] Ya. Now, I correlate changes that you proposed to another
> > > > RSA xform patch. Because Spec simply expect Key input as positive
> > > > integer and does not know if its DER formatted input.
> > > >
> > > > So, I have one question here: How QAT is handling leading 0? Do
> > > > you pass data as is to HW with 0 in it and it is still able to
> > > > produce correct result for you?
> > > [AK] - We pass as is (with 0), it will still produce correct result
> > > (4096 bits are size upper limit for QAT currently). So there may be
> > > any number of leading zeroes up to 512bytes, and we don't care.
> > > Right now there are discrepancies between OPENSSL and QAT in that as
> > > QAT will return shifted data and OPENSSL will not, we need to choose
> > > one way
> > or other.
> > [Shally] "shifted data" mean? Can you help clarify with some example
> here?
> Sure. Let use aforementioned vector in test_mod_exp. Size of result is equal
> to sizeof(mod_p) so 129 bytes but number is 128 bytes long. So result[0] = 0,
> result[1] = 0x2C, result[128] = 0x5A.
> 
[Shally] Okay, you mean QAT HW returns o/p with pre-appended 0s but openssl 
doesn't . Is that right?

Thanks
Shally

> >
> > >
> > >  Or, you take care in PMD to remove it and then append it back later
> > > at
> > > > o/p?
> > > > In case, you pass to HW, then does all bytes after 0 store correct o/p?
> > > >
> > > > > >
> > > > > > > +                 0x35, 0xdc, 0x2b, 0x20, 0x8d, 0xa1, 0xb5,
> > > 0xce,
> > > > > > > +                 0x47, 0x8a, 0xc3, 0x80, 0xf4, 0x7d, 0x4a,
> > 0xa2,
> > > > > > > +                 0x62, 0xfd, 0x61, 0x7f, 0xb5, 0xa8, 0xde,
> > 0x0a,
> > > > > > > +                 0x17, 0x97, 0xa0, 0xbf, 0xdf, 0x56, 0x5a,
> > 0x3d,
> > > > > > > +                 0x51, 0x56, 0x4f, 0x70, 0x70, 0x3f, 0x63,
> > 0x6a,
> > > > > > > +                 0x44, 0x5b, 0xad, 0x84, 0x0d, 0x3f, 0x27,
> > > 0x6e,
> > > > > > > +                 0x3b, 0x34, 0x91, 0x60, 0x14, 0xb9, 0xaa,
> > > 0x72,
> > > > > > > +                 0xfd, 0xa3, 0x64, 0xd2, 0x03, 0xa7, 0x53,
> > 0x87,
> > > > > > > +                 0x9e, 0x88, 0x0b, 0xc1, 0x14, 0x93, 0x1a,
> > 0x62,
> > > > > > > +                 0xff, 0xb1, 0x5d, 0x74, 0xcd, 0x59, 0x63,
> > 0x18,
> > > > > > > +                 0x11, 0x3d, 0x4f, 0xba, 0x75, 0xd4, 0x33,
> > > 0x4e,
> > > > > > > +                 0x23, 0x6b, 0x7b, 0x57, 0x44, 0xe1, 0xd3,
> > > 0x03,
> > > > > > > +                 0x13, 0xa6, 0xf0, 0x8b, 0x60, 0xb0, 0x9e,
> > > 0xee,
> > > > > > > +                 0x75, 0x08, 0x9d, 0x71, 0x63, 0x13, 0xcb,
> > 0xa6,
> > > > > > > +                 0x81, 0x92, 0x14, 0x03, 0x22, 0x2d, 0xde,
> > 0x55
> > > > > > > +         },
> > > > > > > +         .len = 128
> > > > > > > + },
> > > > > > > + .result_len = 128
> > > > > > > +},
> > > > > > ....
> > > > > > >  /* modular operation test data */  uint8_t base[] = {
> > > > > > >   0xF8, 0xBA, 0x1A, 0x55, 0xD0, 0x2F, 0x85,
> > > > > > > --
> > > > > > > 2.7.4

Reply via email to