193{
196
200
202
203
205
207
209
211
212
213
214
215
216
218
219
221
222
223 pCurve->eCoordinates = pSizes->eCoordinates;
224
225
226 pCurve->FModDigits = pSizes->nDigitsFieldLength;
227
228
229 pCurve->GOrdDigits = pSizes->nDigitsSubgroupOrder;
230
231
233
234
236 pCurve->GOrdBytesize = (
UINT32)pParams->cbSubgroupOrder;
237
238
239 pCurve->cbModElement = pSizes->cbModElement;
240
241
242 pCurve->cbAlloc = pSizes->cbAlloc;
243
244
247
248
251 {
253 }
254
256 if ( pTempInt ==
NULL)
257 {
259 }
260
262 if ( scError != SYMCRYPT_NO_ERROR )
263 {
265 }
266
267
270 {
271 scError = SYMCRYPT_WRONG_KEY_SIZE;
273 }
274
276 {
277
278 scError = SYMCRYPT_INVALID_ARGUMENT;
280 }
281
282
283
285 pTempInt,
289 pbScratch,
290 pSizes->cbScratch );
291
292 pDst += pSizes->cbModulus;
293 pSrc += pParams->cbFieldLength;
294
295
298 {
300 }
302 pSrc,
303 pParams->cbFieldLength,
307 pbScratch,
308 pSizes->cbScratch );
309 if ( scError != SYMCRYPT_NO_ERROR )
310 {
312 }
313 pDst += pSizes->cbModElement;
314 pSrc += pParams->cbFieldLength;
315
316
319 {
321 }
322
323
324
326 {
328 3,
331 pbScratch,
332 pSizes->cbScratch );
333 if ( scError != SYMCRYPT_NO_ERROR )
334 {
336 }
338 {
340 }
341 }
342
343
345 pSrc,
346 pParams->cbFieldLength,
350 pbScratch,
351 pSizes->cbScratch );
352 if ( scError != SYMCRYPT_NO_ERROR )
353 {
355 }
356 pDst += pSizes->cbModElement;
357 pSrc += pParams->cbFieldLength;
358
359
360 pSrcGenerator = pSrc;
361 pSrc += pParams->cbFieldLength * 2;
362
363
366 {
368 }
369
371 if ( pTempInt ==
NULL)
372 {
374 }
375
377 if ( scError != SYMCRYPT_NO_ERROR )
378 {
380 }
381
382
385 {
386 scError = SYMCRYPT_WRONG_KEY_SIZE;
388 }
389
391 {
392
393 scError = SYMCRYPT_INVALID_ARGUMENT;
395 }
396
397
398
400 pTempInt,
404 pbScratch,
405 pSizes->cbScratch );
406
407 pDst += pSizes->cbSubgroupOrder;
408 pSrc += pParams->cbSubgroupOrder;
409
410
413 {
415 }
417 pSrc,
418 pParams->cbCofactor,
421 if ( scError != SYMCRYPT_NO_ERROR )
422 {
424 }
425
426
427
430 {
432 }
433
434
436 {
438 }
439
440 pDst += pSizes->cbCoFactor;
441 pSrc += pParams->cbCofactor;
442
443
445 {
448 pCurve->info.sw.nRecodedDigits =
pCurve->GOrdBitsize + 1;
449 }
451 {
454 pCurve->info.sw.nRecodedDigits =
pCurve->GOrdBitsize + 1;
455 }
456
458
459
462 {
464 }
467 pSrcGenerator,
468 pParams->cbFieldLength * 2,
473 pbScratch,
474 pSizes->cbScratch );
475 if ( scError != SYMCRYPT_NO_ERROR )
476 {
478 }
479 pDst += pSizes->cbEcpoint;
480
481
484 {
485
487
489 {
492 {
494 }
495 pDst += pSizes->cbEcpoint;
496 }
497
499 }
500
501
503 {
505
506
507
511 }
512
513
514 if (pParams->version == 2)
515 {
516
517 pSrc += pParams->cbSeed;
518
519
521 }
522 else
523 {
524
526 {
528 }
530 {
532 }
534 {
536 }
537 }
538
543
544
545
546 if ( (
pCurve->HighBitRestrictionNumOfBits>32) ||
547 ((
pCurve->HighBitRestrictionNumOfBits>0) &&
548 (
pCurve->HighBitRestrictionPosition +
pCurve->HighBitRestrictionNumOfBits >
pCurve->GOrdBitsize +
pCurve->coFactorPower)) )
549 {
550 scError = SYMCRYPT_INVALID_ARGUMENT;
552 }
553
554
556
558
560 if (!fSuccess)
561 {
564 }
565
567}
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
SYMCRYPT_DISABLE_CFG VOID SYMCRYPT_CALL SymCryptEcurveFillScratchSpaces(_Inout_ PSYMCRYPT_ECURVE pCurve)
const PCSYMCRYPT_ECURVE_PARAMS_V2_EXTENSION SymCryptEcurveParamsV2ExtensionShortWeierstrass
const PCSYMCRYPT_ECURVE_PARAMS_V2_EXTENSION SymCryptEcurveParamsV2ExtensionMontgomery
const PCSYMCRYPT_ECURVE_PARAMS_V2_EXTENSION SymCryptEcurveParamsV2ExtensionTwistedEdwards
VOID SYMCRYPT_CALL SymCryptOfflinePrecomputation(_In_ PSYMCRYPT_ECURVE pCurve, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
#define SYMCRYPT_INTERNAL_ECURVE_GROUP_ORDER_NUMOF_OPERATIONS
#define SYMCRYPT_INTERNAL_ECURVE_MODULUS_NUMOF_OPERATIONS(_bitsize)
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
#define UNREFERENCED_PARAMETER(P)
UINT32 HighBitRestrictionNumOfBits
UINT32 HighBitRestrictionPosition
UINT32 PrivateKeyDefaultFormat
UINT32 HighBitRestrictionValue
#define SYMCRYPT_ASSERT(_x)
struct _SYMCRYPT_ECURVE_PARAMS SYMCRYPT_ECURVE_PARAMS
const SYMCRYPT_ECURVE_PARAMS_V2_EXTENSION * PCSYMCRYPT_ECURVE_PARAMS_V2_EXTENSION
@ SYMCRYPT_ECPOINT_FORMAT_XY
@ SYMCRYPT_NUMBER_FORMAT_MSB_FIRST
@ SYMCRYPT_ECURVE_TYPE_TWISTED_EDWARDS
@ SYMCRYPT_ECURVE_TYPE_MONTGOMERY
@ SYMCRYPT_ECURVE_TYPE_SHORT_WEIERSTRASS
#define SYMCRYPT_ECURVE_MAX_COFACTOR_POWER
SYMCRYPT_MODELEMENT * PSYMCRYPT_MODELEMENT
#define SYMCRYPT_SET_MAGIC(p)
#define SYMCRYPT_INTERNAL_ECURVE_VERSION_LATEST
@ SYMCRYPT_INTERNAL_ECURVE_TYPE_SHORT_WEIERSTRASS_AM3
SYMCRYPT_MAGIC_FIELD SYMCRYPT_ECURVE
#define SYMCRYPT_ECURVE_MIN_BITSIZE_FMOD
SYMCRYPT_INT * PSYMCRYPT_INT
#define SYMCRYPT_ECURVE_MIN_BITSIZE_GORD
#define SYMCRYPT_ECURVE_SW_DEF_WINDOW
UINT32 SYMCRYPT_CALL SymCryptIntGetValueLsbits32(_In_ PCSYMCRYPT_INT piSrc)
SYMCRYPT_ERROR SYMCRYPT_CALL SymCryptEcpointSetValue(_In_ PCSYMCRYPT_ECURVE pCurve, _In_reads_bytes_(cbSrc) PCBYTE pbSrc, SIZE_T cbSrc, SYMCRYPT_NUMBER_FORMAT nformat, SYMCRYPT_ECPOINT_FORMAT eformat, _Out_ PSYMCRYPT_ECPOINT poDst, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
UINT32 SYMCRYPT_CALL SymCryptModElementIsEqual(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc1, _In_ PCSYMCRYPT_MODELEMENT peSrc2)
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_FLAG_MODULUS_PRIME
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)
VOID SYMCRYPT_CALL SymCryptModElementSetValueUint32(UINT32 value, _In_ PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
PSYMCRYPT_ECPOINT SYMCRYPT_CALL SymCryptEcpointCreate(_Out_writes_bytes_(cbBuffer) PBYTE pbBuffer, SIZE_T cbBuffer, _In_ PCSYMCRYPT_ECURVE pCurve)
PSYMCRYPT_MODULUS SYMCRYPT_CALL SymCryptModulusCreate(_Out_writes_bytes_(cbBuffer) PBYTE pbBuffer, SIZE_T cbBuffer, UINT32 nDigits)
VOID SYMCRYPT_CALL SymCryptModAdd(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc1, _In_ PCSYMCRYPT_MODELEMENT peSrc2, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
PSYMCRYPT_INT SYMCRYPT_CALL SymCryptIntFromModulus(_In_ PSYMCRYPT_MODULUS pmSrc)
UINT32 SYMCRYPT_CALL SymCryptIntIsEqualUint32(_In_ PCSYMCRYPT_INT piSrc1, _In_ UINT32 u32Src2)
UINT32 SYMCRYPT_CALL SymCryptIntBitsizeOfValue(_In_ PCSYMCRYPT_INT piSrc)
VOID SYMCRYPT_CALL SymCryptIntToModulus(_In_ PCSYMCRYPT_INT piSrc, _Out_ PSYMCRYPT_MODULUS pmDst, UINT32 averageOperations, UINT32 flags, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptModElementSetValueNegUint32(UINT32 value, _In_ PCSYMCRYPT_MODULUS pmMod, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
VOID SYMCRYPT_CALL SymCryptModDivPow2(_In_ PCSYMCRYPT_MODULUS pmMod, _In_ PCSYMCRYPT_MODELEMENT peSrc, UINT32 exp, _Out_ PSYMCRYPT_MODELEMENT peDst, _Out_writes_bytes_(cbScratch) PBYTE pbScratch, SIZE_T cbScratch)
#define SYMCRYPT_FLAG_DATA_PUBLIC
PSYMCRYPT_INT SYMCRYPT_CALL SymCryptIntCreate(_Out_writes_bytes_(cbBuffer) PBYTE pbBuffer, SIZE_T cbBuffer, UINT32 nDigits)