Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
6814 Discussions

ippsRSAGetSize() produces different results between Windows and Linux

Yueheng_X_Intel
Employee
454 Views
I am porting a Windows version of HDCP2 code to Linux. Following functions with same
input produces different results between Windows and Linux.

with KnSize = 3072, kpSize = 1536,

Following fucntion call:

ippStatus = ippsRSAGetSize(knSize, kpSize, IppRSApublic, &pRSASize);

produces pRSASize = 34997 on Windows, and, pRSASize = 34163 On Linux

I am using ipp 7.0.1.107_ia32

Any one can explain to me why the difference ? is this difference will cause authentication problem later on ?

I do experience later on DCP signature verification failure with following call:

// Verify the Signature

ippStatus =ippsRSASSAVerify_SHA256_PKCSv15((const Ipp8u*)pMsg,msg_sz_bytes,pSign, Result, pRSApub);

On Windows we will have Result = ippTrue and On Linux we have Result = ippFalse. The behavior is the same even I manually modified the pRSASize on Linux to match iwth its value on Windows (try to
avoid the problem of ippsRSAGetSize).

Anyone in the IPP cryptography team can help ?

0 Kudos
1 Reply
Ying_H_Intel
Moderator
454 Views

Dear ,

Here is some investigation result from IPP team,

We decided that package 7.0.1.107_ia32 corresponds to IPP 205.23 build.

We've tried static seriallibrary version of ippsRSAGetSize() and found:

1) size of RSA context for both win32 and linux32 is the same.

2) it has 33491 bytes long, if RSA has bitsize(N)=3072 and bitsize(P)=1536 correspondingly.

3) and it's correct value.

If your problem insists, could you provide us as much infolike,

1) your IPP version information.
const IppLibraryVersion* pVerion = ippcpGetLibVersion();
cout<Name
<<" "<Version
<<" "<BuildDate
<<" "<major
<<" "<minor
<<" "<majorBuild
<<"\n";
}

2) how do you link the library? (static/threaded static/ dynamic) nor theirprocessor specific

3) the platform information, ia32 or x64, the cpu type and OS?

Regards,
Ying H.

0 Kudos
Reply