Developer Reference

Contents

RSA_ValidateKeys

Validates key components of the RSA cryptographic system.

Syntax

IppStatus ippsRSA_ValidateKeys(int*
pResult
, const IppsRSAPublicKeyState*
pPublicKey
, const IppsRSAPrivateKeyState*
pPrivateKeyType2
, const IppsRSAPrivateKeyState*
pPrivateKeyType1
, Ipp8u*
pScratchBuffer
, int
nTrials
, IppsPrimeState*
pPrimeGen
, IppBitSupplier
rndFunc
, void*
pRndParam
);
Include Files
ippcp.h
Parameters
pResult
Pointer to the result of validation.
pPublicKey
Pointer to the RSA public key.
pPrivateKeyType2
Pointer to the RSA private key type 2.
pPrivateKeyType1
Pointer to the RSA private key type 1. This parameter is optional and can have the value of
NULL
.
pScratchBuffer
Pointer to the temporary buffer of size not less than returned by the
RSA_GetBufferSizePrivateKey
function.
nTrials
Security parameter specified for the Miller-Rabin test for probable primality.
pPrimeGen
Pointer to the prime number generator.
rndFunc
Pseudorandom number generator.
pRndParam
Pointer to the context of the pseudorandom number generator.
Description
The function validates key components of the RSA cryptographic system and stores the result of the validation procedure in
*pResult
.
The meanings of values of
*pResult
are as follows:
IS_VALID_KEY
The RSA key pair is valid.
IS_INVALID_KEY
The RSA key is not valid.
The key pair is valid under the following conditions:
  • The
    p
    and
    q
    factors are prime.
  • The type 2 private key meets these conditions:
    • e*dP
      = 1 (mod
      p
      -1) and
      e*dQ
      = 1 (mod
      q
      -1)
    • q*qInv
      = 1 (mod
      p
      )
  • If the
    pPrivateKeyType1
    parameter is not
    NULL
    , the type 1 private key meets the condition
    e
    *
    d
    = 1 mod ((
    p
    -1)*(
    q
    -1)).
Validation of the public and type 1 private key pair requires type 2 private key.
Return Values
ippStsNoErr
Indicates no error. Any other value indicates an error or warning.
ippStsNullPtrErr
Indicates an error condition if any of the specified pointers is
NULL
.
ippStsContextMatchErr
Indicates an error condition if the context parameter does not match the operation.
ippStsSizeErr
Indicates an error condition if the prime number generator, specified by
pPrimeGen
, is not sufficient to generate suitable values.
ippStsIncompleteContextErr
Indicates an error condition if the public or private key is not set up.
ippStsBadArgErr
Indicates an error condition if any of the RSA keys
*pPublicKey
,
*pPrivateKeyType2
, or, optional,
*pPrivateKeyType1
is not properly set up or generated.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804