43 scError = SYMCRYPT_INVALID_ARGUMENT;
55 piTmpInteger =
SymCryptIntCreate( pbScratch, cbTmpInteger, pkRsakey->nDigitsOfModulus );
58 if (scError != SYMCRYPT_NO_ERROR)
65 scError = SYMCRYPT_INVALID_ARGUMENT;
103 if (scError != SYMCRYPT_NO_ERROR)
115 pbFnScratch = pbScratch;
125 if (scError!=SYMCRYPT_NO_ERROR)
135 scError = SYMCRYPT_HARDWARE_FAILURE;
153 if (scError!=SYMCRYPT_NO_ERROR)
172 UINT32 cbModElementTotal = 0;
180 for (
UINT32 i=0;
i<pkRsakey->nPrimes;
i++)
231 UINT32 cbModElementTotal = 0;
236 UINT32 cbModElementVerify = 0;
244 if (!pkRsakey->hasPrivateKey)
246 scError = SYMCRYPT_INVALID_ARGUMENT;
251 if (scError != SYMCRYPT_NO_ERROR)
259 scError = SYMCRYPT_INVALID_ARGUMENT;
265 for (
UINT32 i=0;
i<pkRsakey->nPrimes;
i++)
268 cbModElementTotal += cbModElements[
i];
282 3*cbInt + cbTmp + cbModElementTotal + cbModElementVerify +
288 pbFnScratch = pbScratch;
291 piPlaintext =
SymCryptIntCreate( pbFnScratch, cbFnScratch, pkRsakey->nDigitsOfModulus );
293 pbFnScratch += cbInt;
294 cbFnScratch -= cbInt;
296 piCiphertext =
SymCryptIntCreate( pbFnScratch, cbFnScratch, pkRsakey->nDigitsOfModulus );
298 pbFnScratch += cbInt;
299 cbFnScratch -= cbInt;
301 piTmp =
SymCryptIntCreate( pbFnScratch, cbFnScratch, pkRsakey->nMaxDigitsOfPrimes );
303 pbFnScratch += cbTmp;
304 cbFnScratch -= cbTmp;
307 for (
UINT32 i=0;
i<pkRsakey->nPrimes;
i++)
311 pbFnScratch += cbModElements[
i];
312 cbFnScratch -= cbModElements[
i];
315 piVerify =
SymCryptIntCreate( pbFnScratch, cbFnScratch, pkRsakey->nDigitsOfModulus );
317 pbFnScratch += cbInt;
318 cbFnScratch -= cbInt;
322 pbFnScratch += cbModElementVerify;
323 cbFnScratch -= cbModElementVerify;
327 if (scError!=SYMCRYPT_NO_ERROR)
333 for (
UINT32 i=0;
i<pkRsakey->nPrimes;
i++)
350 pkRsakey->pmPrimes[
i],
352 pkRsakey->piCrtPrivExps[
i],
353 pkRsakey->nBitsOfPrimes[
i],
370 if (scError!=SYMCRYPT_NO_ERROR)
411 scError = SYMCRYPT_HARDWARE_FAILURE;
417 if (scError!=SYMCRYPT_NO_ERROR)
453 (!pkRsakey->hasPrivateKey) )
455 scError = SYMCRYPT_INVALID_ARGUMENT;
466 pbFnScratch = pbScratch;
476 if (scError!=SYMCRYPT_NO_ERROR)
485 pkRsakey->piPrivExps[0],
486 pkRsakey->nBitsOfModulus,
494 if (scError!=SYMCRYPT_NO_ERROR)
527 scError = SYMCRYPT_INVALID_ARGUMENT;
534 if (pbScratch ==
NULL)
536 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
541 if (scError != SYMCRYPT_NO_ERROR)
546 scError = SYMCRYPT_NO_ERROR;
577 scError = SYMCRYPT_INVALID_ARGUMENT;
582 if (!pkRsakey->hasPrivateKey)
584 scError = SYMCRYPT_INVALID_ARGUMENT;
588#define SYMCRYPT_CRT_DECRYPTION (1)
591#if (SYMCRYPT_CRT_DECRYPTION)
598 if (pbScratch ==
NULL)
600 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
604#if (SYMCRYPT_CRT_DECRYPTION)
610 if (scError != SYMCRYPT_NO_ERROR)
615 scError = SYMCRYPT_NO_ERROR;
654 scError = SYMCRYPT_INVALID_ARGUMENT;
663 scError = SYMCRYPT_NO_ERROR;
668 if (pbScratch ==
NULL)
670 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
681 if (scError != SYMCRYPT_NO_ERROR)
696 if (scError != SYMCRYPT_NO_ERROR)
704 scError = SYMCRYPT_NOT_IMPLEMENTED;
708 scError = SYMCRYPT_NO_ERROR;
747 scError = SYMCRYPT_INVALID_ARGUMENT;
752 if (!pkRsakey->hasPrivateKey)
754 scError = SYMCRYPT_INVALID_ARGUMENT;
758#if (SYMCRYPT_CRT_DECRYPTION)
767 if (pbScratch ==
NULL)
769 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
778 scError = SYMCRYPT_NOT_IMPLEMENTED;
782#if (SYMCRYPT_CRT_DECRYPTION)
805 if (scError != SYMCRYPT_NO_ERROR)
859 scError = SYMCRYPT_INVALID_ARGUMENT;
868 scError = SYMCRYPT_NO_ERROR;
876 if (pbScratch ==
NULL)
878 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
896 if (scError != SYMCRYPT_NO_ERROR)
911 if (scError != SYMCRYPT_NO_ERROR)
919 scError = SYMCRYPT_NOT_IMPLEMENTED;
923 scError = SYMCRYPT_NO_ERROR;
964 scError = SYMCRYPT_INVALID_ARGUMENT;
970 scError = SYMCRYPT_INVALID_ARGUMENT;
975 if (!pkRsakey->hasPrivateKey)
977 scError = SYMCRYPT_INVALID_ARGUMENT;
983#if (SYMCRYPT_CRT_DECRYPTION)
990 if (pbScratch ==
NULL)
992 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1001 scError = SYMCRYPT_NOT_IMPLEMENTED;
1005#if (SYMCRYPT_CRT_DECRYPTION)
1029 if (scError != SYMCRYPT_NO_ERROR)
1046 if (scError != SYMCRYPT_NO_ERROR)
1051 scError = SYMCRYPT_NO_ERROR;
1054 if (pbScratch!=
NULL)
1060 *pcbDst = cbDstResult;
1096 pbOID = pHashOIDs ? pHashOIDs->pbOID :
NULL;
1097 cbOID = pHashOIDs ? pHashOIDs->cbOID : 0;
1102 scError = SYMCRYPT_INVALID_ARGUMENT;
1107 if (!pkRsakey->hasPrivateKey)
1109 scError = SYMCRYPT_INVALID_ARGUMENT;
1113 *pcbSignature = cbTmp;
1116 if (pbSignature ==
NULL)
1118 scError = SYMCRYPT_NO_ERROR;
1122#if (SYMCRYPT_CRT_DECRYPTION)
1129 if (pbScratch ==
NULL)
1131 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1145 if (scError != SYMCRYPT_NO_ERROR)
1150#if (SYMCRYPT_CRT_DECRYPTION)
1173 if (scError != SYMCRYPT_NO_ERROR)
1181 scError = SYMCRYPT_NOT_IMPLEMENTED;
1185 scError = SYMCRYPT_NO_ERROR;
1188 if (pbScratch!=
NULL)
1221 scError = SYMCRYPT_INVALID_ARGUMENT;
1225 if (cbSignature > cbTmp)
1227 scError = SYMCRYPT_INVALID_ARGUMENT;
1234 scError = SYMCRYPT_NOT_IMPLEMENTED;
1245 if (pbScratch ==
NULL)
1247 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1263 if (scError != SYMCRYPT_NO_ERROR)
1278 if (scError != SYMCRYPT_NO_ERROR)
1283 scError = SYMCRYPT_NO_ERROR;
1286 if (pbScratch!=
NULL)
1320 scError = SYMCRYPT_INVALID_ARGUMENT;
1324 if ( (cbHashValue > cbTmp) ||
1327 scError = SYMCRYPT_INVALID_ARGUMENT;
1332 if (!pkRsakey->hasPrivateKey)
1334 scError = SYMCRYPT_INVALID_ARGUMENT;
1338 *pcbSignature = cbTmp;
1341 if (pbSignature ==
NULL)
1343 scError = SYMCRYPT_NO_ERROR;
1349#if (SYMCRYPT_CRT_DECRYPTION)
1360 if (pbScratch ==
NULL)
1362 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1374 pkRsakey->nBitsOfModulus,
1380 if (scError != SYMCRYPT_NO_ERROR)
1385#if (SYMCRYPT_CRT_DECRYPTION)
1408 if (scError != SYMCRYPT_NO_ERROR)
1416 scError = SYMCRYPT_NOT_IMPLEMENTED;
1420 scError = SYMCRYPT_NO_ERROR;
1423 if (pbScratch!=
NULL)
1456 scError = SYMCRYPT_INVALID_ARGUMENT;
1460 if ( (cbHashValue > cbTmp) ||
1462 (cbSignature > cbTmp) )
1464 scError = SYMCRYPT_INVALID_ARGUMENT;
1471 scError = SYMCRYPT_NOT_IMPLEMENTED;
1482 if (pbScratch ==
NULL)
1484 scError = SYMCRYPT_MEMORY_ALLOCATION_FAILURE;
1500 if (scError != SYMCRYPT_NO_ERROR)
1512 pkRsakey->nBitsOfModulus,
1516 if (scError != SYMCRYPT_NO_ERROR)
1521 scError = SYMCRYPT_NO_ERROR;
1524 if (pbScratch!=
NULL)
static void cleanup(void)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
void SYMCRYPT_CALL SymCryptCallbackFree(void *ptr)
void *SYMCRYPT_CALL SymCryptCallbackAlloc(SIZE_T size)
#define _In_reads_bytes_(s)
#define _Out_writes_opt_(s)
#define _In_reads_opt_(s)
#define _Out_writes_bytes_(s)
#define UNREFERENCED_PARAMETER(P)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPkcs1Verify(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbHashValue) PCBYTE pbHashValue, SIZE_T cbHashValue, _In_reads_bytes_(cbSignature) PCBYTE pbSignature, SIZE_T cbSignature, SYMCRYPT_NUMBER_FORMAT nfSignature, _In_reads_opt_(nOIDCount) PCSYMCRYPT_OID pHashOIDs, _In_ SIZE_T nOIDCount, UINT32 flags)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaCoreDecCrt(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT numFormat, UINT32 flags, _Out_writes_(cbDst) PBYTE pbDst, SIZE_T cbDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptRsaCoreEncScratchSpace(_In_ PCSYMCRYPT_RSAKEY pkRsakey)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPssSign(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbHashValue) PCBYTE pbHashValue, SIZE_T cbHashValue, _In_ PCSYMCRYPT_HASH hashAlgorithm, SIZE_T cbSalt, UINT32 flags, SYMCRYPT_NUMBER_FORMAT nfSignature, _Out_writes_opt_(cbSignature) PBYTE pbSignature, SIZE_T cbSignature, _Out_ SIZE_T *pcbSignature)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaRawEncrypt(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT numFormat, UINT32 flags, _Out_writes_(cbDst) PBYTE pbDst, SIZE_T cbDst)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPssVerify(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbHashValue) PCBYTE pbHashValue, SIZE_T cbHashValue, _In_reads_bytes_(cbSignature) PCBYTE pbSignature, SIZE_T cbSignature, SYMCRYPT_NUMBER_FORMAT nfSignature, _In_ PCSYMCRYPT_HASH hashAlgorithm, SIZE_T cbSalt, UINT32 flags)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPkcs1Sign(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbHashValue) PCBYTE pbHashValue, SIZE_T cbHashValue, _In_ PCSYMCRYPT_OID pHashOIDs, _In_ SIZE_T nOIDCount, UINT32 flags, SYMCRYPT_NUMBER_FORMAT nfSignature, _Out_writes_opt_(cbSignature) PBYTE pbSignature, SIZE_T cbSignature, _Out_ SIZE_T *pcbSignature)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPkcs1Decrypt(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT nfSrc, UINT32 flags, _Out_writes_opt_(cbDst) PBYTE pbDst, SIZE_T cbDst, _Out_ SIZE_T *pcbDst)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaRawDecrypt(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT numFormat, UINT32 flags, _Out_writes_(cbDst) PBYTE pbDst, SIZE_T cbDst)
SYMCRYPT_ERROR SymCryptRsaCoreVerifyInput(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT numFormat, SIZE_T cbDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaCoreDec(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT numFormat, UINT32 flags, _Out_writes_(cbDst) PBYTE pbDst, SIZE_T cbDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptRsaCoreDecCrtScratchSpace(_In_ PCSYMCRYPT_RSAKEY pkRsakey)
UINT32 SYMCRYPT_CALL SymCryptRsaCoreDecScratchSpace(_In_ PCSYMCRYPT_RSAKEY pkRsakey)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaCoreEnc(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT numFormat, UINT32 flags, _Out_writes_(cbDst) PBYTE pbDst, SIZE_T cbDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaOaepEncrypt(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, _In_ PCSYMCRYPT_HASH hashAlgorithm, _In_reads_bytes_(cbLabel) PCBYTE pbLabel, SIZE_T cbLabel, UINT32 flags, SYMCRYPT_NUMBER_FORMAT nfDst, _Out_writes_opt_(cbDst) PBYTE pbDst, SIZE_T cbDst, _Out_ SIZE_T *pcbDst)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaOaepDecrypt(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT nfSrc, _In_ PCSYMCRYPT_HASH hashAlgorithm, _In_reads_bytes_(cbLabel) PCBYTE pbLabel, SIZE_T cbLabel, UINT32 flags, _Out_writes_opt_(cbDst) PBYTE pbDst, SIZE_T cbDst, _Out_ SIZE_T *pcbDst)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPkcs1Encrypt(_In_ PCSYMCRYPT_RSAKEY pkRsakey, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, UINT32 flags, SYMCRYPT_NUMBER_FORMAT nfDst, _Out_writes_opt_(cbDst) PBYTE pbDst, SIZE_T cbDst, _Out_ SIZE_T *pcbDst)
UINT32 UINT32 UINT32 UINT32 cbScratch
#define SYMCRYPT_ASSERT(_x)
VOID SYMCRYPT_CALL SymCryptWipe(_Out_writes_bytes_(cbData) PVOID pbData, SIZE_T cbData)
UINT32 SYMCRYPT_CALL SymCryptRsakeySizeofModulus(_In_ PCSYMCRYPT_RSAKEY pkRsakey)
enum _SYMCRYPT_NUMBER_FORMAT SYMCRYPT_NUMBER_FORMAT
#define SYMCRYPT_FLAG_RSAKEY_SIGN
#define SYMCRYPT_FLAG_RSAKEY_ENCRYPT
@ SYMCRYPT_NUMBER_FORMAT_MSB_FIRST
@ SYMCRYPT_NUMBER_FORMAT_LSB_FIRST
SYMCRYPT_MODELEMENT * PSYMCRYPT_MODELEMENT
#define SYMCRYPT_RSAKEY_MAX_NUMOF_PRIMES
const SYMCRYPT_HASH * PCSYMCRYPT_HASH
#define SYMCRYPT_MIN(_a, _b)
#define SYMCRYPT_MAX(_a, _b)
const SYMCRYPT_RSAKEY * PCSYMCRYPT_RSAKEY
#define SYMCRYPT_ASYM_ALIGN_VALUE
#define SYMCRYPT_RSAKEY_MAX_BITSIZE_MODULUS
#define SYMCRYPT_ASYM_ALIGN_UP(_p)
const SYMCRYPT_MODULUS * PCSYMCRYPT_MODULUS
SYMCRYPT_INT * PSYMCRYPT_INT
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptCrtSolve(UINT32 nCoprimes, _In_reads_(nCoprimes) PCSYMCRYPT_MODULUS *ppmCoprimes, _In_reads_(nCoprimes) PCSYMCRYPT_MODELEMENT *ppeCrtInverses, _In_reads_(nCoprimes) PCSYMCRYPT_MODELEMENT *ppeCrtRemainders, UINT32 flags, _Out_ PSYMCRYPT_INT piSolution, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptIntWipe(_Out_ PSYMCRYPT_INT piObj)
UINT32 SYMCRYPT_CALL SymCryptIntIsLessThan(_In_ PCSYMCRYPT_INT piSrc1, _In_ PCSYMCRYPT_INT piSrc2)
UINT32 SYMCRYPT_CALL SymCryptSizeofModElementFromModulus(PCSYMCRYPT_MODULUS pmMod)
VOID SYMCRYPT_CALL SymCryptIntToModElement(_In_ PCSYMCRYPT_INT piSrc, _In_ PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
#define SYMCRYPT_SIZEOF_INT_FROM_BITS(_bitsize)
VOID SYMCRYPT_CALL SymCryptIntSetValueUint64(UINT64 u64Src, _Out_ PSYMCRYPT_INT piDst)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaOaepRemoveEncryptionPadding(_In_reads_bytes_(cbOAEPFormat) PCBYTE pbOAEPFormat, SIZE_T cbOAEPFormat, _In_ PCSYMCRYPT_HASH hashAlgorithm, _In_reads_bytes_(cbLabel) PCBYTE pbLabel, SIZE_T cbLabel, UINT32 flags, _Out_writes_bytes_(cbPlaintext) PBYTE pbPlaintext, SIZE_T cbPlaintext, _Out_ SIZE_T *pcbPlaintext, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
PSYMCRYPT_DIVISOR SYMCRYPT_CALL SymCryptDivisorFromModulus(_In_ PSYMCRYPT_MODULUS pmSrc)
#define SYMCRYPT_SCRATCH_BYTES_FOR_INT_DIVMOD(_nSrcDigits, _nDivisorDigits)
#define SYMCRYPT_SCRATCH_BYTES_FOR_RSA_PKCS1(_nBytesPKCS1)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPssVerifySignaturePadding(_In_reads_bytes_(cbHash) PCBYTE pbHash, SIZE_T cbHash, _In_ PCSYMCRYPT_HASH hashAlgorithm, _In_range_(0, cbPSSFormat) SIZE_T cbSalt, _In_reads_bytes_(cbPSSFormat) PCBYTE pbPSSFormat, SIZE_T cbPSSFormat, UINT32 nBitsOfModulus, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
#define SYMCRYPT_SCRATCH_BYTES_FOR_CRT_SOLUTION(_nDigits)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptModElementSetValue(_In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT format, PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
#define SYMCRYPT_SIZEOF_MODELEMENT_FROM_BITS(_bitsize)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptModElementGetValue(PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_writes_bytes_(cbDst) PBYTE pbDst, SIZE_T cbDst, SYMCRYPT_NUMBER_FORMAT format, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptIntSetValue(_In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT format, _Out_ PSYMCRYPT_INT piDst)
PSYMCRYPT_MODELEMENT SYMCRYPT_CALL SymCryptModElementCreate(_Out_writes_bytes_(cbBuffer) PBYTE pbBuffer, SIZE_T cbBuffer, _In_ PCSYMCRYPT_MODULUS pmMod)
#define SYMCRYPT_SCRATCH_BYTES_FOR_RSA_OAEP(_hashAlgorithm, _nBytesOAEP)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPkcs1ApplySignaturePadding(_In_reads_bytes_(cbHash) PCBYTE pbHash, SIZE_T cbHash, _In_reads_bytes_(cbHashOid) PCBYTE pbHashOid, SIZE_T cbHashOid, UINT32 flags, _Out_writes_bytes_(cbPKCS1Format) PBYTE pbPKCS1Format, SIZE_T cbPKCS1Format)
SIZE_T SYMCRYPT_CALL SymCryptRoundUpPow2Sizet(SIZE_T v)
#define SYMCRYPT_SCRATCH_BYTES_FOR_COMMON_MOD_OPERATIONS(_nDigits)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPkcs1VerifySignaturePadding(_In_reads_bytes_(cbHash) PCBYTE pbHash, SIZE_T cbHash, _In_reads_(nOIDCount) PCSYMCRYPT_OID pHashOIDs, _In_ SIZE_T nOIDCount, _In_reads_bytes_(cbPKCS1Format) PCBYTE pbPKCS1Format, SIZE_T cbPKCS1Format, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptModElementToInt(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, _Out_ PSYMCRYPT_INT piDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
PSYMCRYPT_INT SYMCRYPT_CALL SymCryptIntFromModulus(_In_ PSYMCRYPT_MODULUS pmSrc)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPkcs1RemoveEncryptionPadding(_Inout_updates_bytes_(cbPkcs1Buffer) PBYTE pbPkcs1Format, SIZE_T cbPkcs1Format, SIZE_T cbPkcs1Buffer, _Out_writes_bytes_opt_(cbPlaintext) PBYTE pbPlaintext, SIZE_T cbPlaintext, _Out_ SIZE_T *pcbPlaintext)
UINT32 SYMCRYPT_CALL SymCryptIntBitsizeOfValue(_In_ PCSYMCRYPT_INT piSrc)
#define SYMCRYPT_SCRATCH_BYTES_FOR_RSA_PSS(_hashAlgorithm, _nBytesMessage, _nBytesPSS)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPssApplySignaturePadding(_In_reads_bytes_(cbHash) PCBYTE pbHash, SIZE_T cbHash, _In_ PCSYMCRYPT_HASH hashAlgorithm, _In_reads_bytes_opt_(cbSalt) PCBYTE pbSalt, _In_range_(0, cbPSSFormat) SIZE_T cbSalt, UINT32 nBitsOfModulus, UINT32 flags, _Out_writes_bytes_(cbPSSFormat) PBYTE pbPSSFormat, SIZE_T cbPSSFormat, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptSizeofIntFromDigits(UINT32 nDigits)
VOID SYMCRYPT_CALL SymCryptModExp(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peBase, _In_ PCSYMCRYPT_INT piExp, UINT32 nBitsExp, UINT32 flags, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptIntDivMod(_In_ PCSYMCRYPT_INT piSrc, _In_ PCSYMCRYPT_DIVISOR pdDivisor, _Out_opt_ PSYMCRYPT_INT piQuotient, _Out_opt_ PSYMCRYPT_INT piRemainder, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaPkcs1ApplyEncryptionPadding(_In_reads_bytes_(cbPlaintext) PCBYTE pbPlaintext, SIZE_T cbPlaintext, _Out_writes_bytes_(cbPkcs1Format) PBYTE pbPkcs1Format, SIZE_T cbPkcs1Format)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptIntGetValue(_In_ PCSYMCRYPT_INT piSrc, _Out_writes_bytes_(cbDst) PBYTE pbDst, SIZE_T cbDst, SYMCRYPT_NUMBER_FORMAT format)
UINT32 SYMCRYPT_CALL SymCryptIntIsEqual(_In_ PCSYMCRYPT_INT piSrc1, _In_ PCSYMCRYPT_INT piSrc2)
#define SYMCRYPT_FLAG_DATA_PUBLIC
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptRsaOaepApplyEncryptionPadding(_In_reads_bytes_(cbPlaintext) PCBYTE pbPlaintext, SIZE_T cbPlaintext, _In_ PCSYMCRYPT_HASH hashAlgorithm, _In_reads_bytes_(cbLabel) PCBYTE pbLabel, SIZE_T cbLabel, _In_reads_bytes_opt_(cbSeed) PCBYTE pbSeed, SIZE_T cbSeed, _Out_writes_bytes_(cbOaepFormat) PBYTE pbOaepFormat, SIZE_T cbOaepFormat, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
PSYMCRYPT_INT SYMCRYPT_CALL SymCryptIntCreate(_Out_writes_bytes_(cbBuffer) PBYTE pbBuffer, SIZE_T cbBuffer, UINT32 nDigits)
#define SYMCRYPT_SCRATCH_BYTES_FOR_MODEXP(_nDigits)