Showing results for 
Search instead for 
Did you mean: 

ippsRSAGetSize() produces different results between Windows and Linux

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

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

Dear ,

Here is some investigation result from IPP team,

We decided that package 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();
<<" "<Version
<<" "<BuildDate
<<" "<major
<<" "<minor
<<" "<majorBuild

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?

Ying H.

0 Kudos