• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/Security-57031.1.35/Security/include/security_cryptkit/

Lines Matching defs:finst

102 	feedInst 		*finst = (feedInst *) fmalloc(sizeof(feedInst));
105 finst->cp = curveParamsCopy(feePubKeyCurveParams(pubKey));
106 finst->plus = new_public_with_key(feePubKeyPlusCurve(pubKey),
107 finst->cp);
108 finst->minus = new_public_with_key(feePubKeyMinusCurve(pubKey),
109 finst->cp);
116 finst->gPriv = newGiant(finst->cp->maxDigits);
117 gtog(privGiant, finst->gPriv);
120 finst->gPriv = NULL;
127 if(finst->cp->primeType == FPT_General) {
128 unsigned blen = bitlen(finst->cp->basePrime);
130 finst->plainBlockSize = blen / 8;
135 finst->plainBlockSize--;
139 finst->plainBlockSize = finst->cp->q / 8;
140 if(((finst->cp->q & 0x7) == 0) && (finst->cp->k > 0)) {
145 finst->plainBlockSize--;
153 finst->cipherBlockSize = (2 * finst->cp->minBytes) + 1;
155 finst->xp = newGiant(finst->cp->maxDigits);
156 finst->xc = newGiant(finst->cp->maxDigits);
157 finst->xq = newGiant(finst->cp->maxDigits);
158 finst->xm = newGiant(finst->cp->maxDigits);
159 finst->xaux = newGiant(finst->cp->maxDigits);
160 finst->rand = NULL;
161 finst->randData = NULL;
162 finst->randFcn = randFcn;
163 finst->randRef = randRef;
164 return finst;
169 feedInst *finst = (feedInst *) feed;
171 free_key(finst->plus);
172 free_key(finst->minus);
173 freeGiant(finst->xc);
174 clearGiant(finst->xp); freeGiant(finst->xp);
175 clearGiant(finst->xq); freeGiant(finst->xq);
176 freeGiant(finst->xm);
177 clearGiant(finst->xaux); freeGiant(finst->xaux);
178 if(finst->gPriv) {
179 clearGiant(finst->gPriv);
180 freeGiant(finst->gPriv);
182 if(finst->rand) {
183 feeRandFree(finst->rand);
185 if(finst->randData) {
186 ffree(finst->randData);
188 if(finst->cp) {
189 freeCurveParams(finst->cp);
191 ffree(finst);
196 feedInst *finst = (feedInst *) feed;
198 return finst->plainBlockSize;
203 feedInst *finst = (feedInst *) feed;
205 return finst->cipherBlockSize;
210 feedInst *finst = (feedInst *) feed;
212 return 2 * finst->cipherBlockSize;
225 feedInst *finst = (feedInst *) feed;
226 unsigned blocks = (plainTextSize + finst->plainBlockSize - 1) /
227 finst->plainBlockSize;
229 if((plainTextSize % finst->plainBlockSize) == 0) {
232 return blocks * finst->cipherBlockSize;
240 feedInst *finst = (feedInst *) feed;
241 unsigned blocks = (cipherTextSize + finst->cipherBlockSize - 1) /
242 finst->cipherBlockSize;
244 return blocks * finst->plainBlockSize;
257 feedInst *finst = (feedInst *) feed;
266 curveParams *cp = finst->cp;
268 if(plainTextLen > finst->plainBlockSize) {
271 else if ((plainTextLen < finst->plainBlockSize) && !finalBlock) {
278 if((finst->randFcn == NULL) && (finst->rand == NULL)) {
279 finst->rand = feeRandAlloc();
281 if(finst->randData == NULL) {
282 finst->randData = (unsigned char*) fmalloc(finst->cp->minBytes);
289 ptext = (unsigned char*) fmalloc(finst->plainBlockSize);
290 bzero(ptext, finst->plainBlockSize);
297 if(plainTextLen < finst->plainBlockSize) {
304 ptext[finst->plainBlockSize - 1] = RESID_ZERO;
307 ptext[finst->plainBlockSize - 1] = plainTextLen;
310 printf("encrypt: resid 0x%x\n", ptext[finst->plainBlockSize - 1]);
316 deserializeGiant(ptext, finst->xp, finst->plainBlockSize);
320 deserializeGiant(plainText, finst->xp, plainTextLen);
324 printf(" xp : "); PRINT_GIANT(finst->xp);
330 index = which_curve(finst->xp, finst->cp);
332 B = finst->plus;
333 x1 = finst->cp->x1Plus;
336 B = finst->minus;
337 x1 = finst->cp->x1Minus;
348 if(finst->randFcn != NULL) {
349 finst->randFcn(finst->randRef, finst->randData, randLen);
352 feeRandBytes(finst->rand, finst->randData, randLen);
354 deserializeGiant(finst->randData, finst->xaux, randLen);
357 if(isZero(finst->xaux)) {
364 lesserX1OrderJustify(finst->xaux, cp);
366 printf(" xaux: "); PRINT_GIANT(finst->xaux);
369 gtog(B->x, finst->xq); // xq = pubB?
370 elliptic_simple(finst->xq, finst->xaux, cp);
373 printf(" r(pubB?): "); PRINT_GIANT(finst->xq);
375 elliptic_add(finst->xp, finst->xq, finst->xm, cp, SIGN_PLUS);
377 gtog(x1, finst->xc);
378 elliptic_simple(finst->xc, finst->xaux, cp);
380 elliptic_add(finst->xm, finst->xq, finst->xaux, cp, SIGN_PLUS);
383 if(gcompg(finst->xaux, finst->xp) == 0) {
390 elliptic_add(finst->xm, finst->xq, finst->xaux, cp, SIGN_MINUS);
391 if(gcompg(finst->xaux, finst->xp)) {
393 printf(" xq : "); PRINT_GIANT(finst->xq);
394 printf(" ell_add(xm, xq, -1) : "); PRINT_GIANT(finst->xaux);
402 serializeGiant(finst->xm, cipherText, cp->minBytes);
404 serializeGiant(finst->xc, cipherText, cp->minBytes);
407 ctextLen = finst->cipherBlockSize;
409 printf(" xm : "); PRINT_GIANT(finst->xm);
410 printf(" xc : "); PRINT_GIANT(finst->xc);
413 if(finalBlock && (plainTextLen == finst->plainBlockSize)) {
452 feedInst *finst = (feedInst *) feed;
456 curveParams *cp = finst->cp;
458 if(finst->gPriv == NULL) {
468 deserializeGiant(cipherText, finst->xm, finst->cp->minBytes);
469 cipherText += finst->cp->minBytes;
470 deserializeGiant(cipherText, finst->xc, finst->cp->minBytes);
471 cipherText += finst->cp->minBytes;
475 printf(" privKey : "); PRINT_GIANT(finst->gPriv);
476 printf(" xm : "); PRINT_GIANT(finst->xm);
477 printf(" xc : "); PRINT_GIANT(finst->xc);
492 elliptic_simple(finst->xc, finst->gPriv, cp);
494 printf(" xc1 : "); PRINT_GIANT(finst->xc);
496 elliptic_add(finst->xm, finst->xc, finst->xp, cp, s);
502 printf(" xp : "); PRINT_GIANT(finst->xp);
510 unsigned char *ptext = (unsigned char*) fmalloc(finst->plainBlockSize);
512 serializeGiant(finst->xp, ptext, finst->plainBlockSize);
513 *plainTextLen = ptext[finst->plainBlockSize - 1];
520 else if(*plainTextLen > (finst->plainBlockSize - 1)) {
530 *plainTextLen = finst->plainBlockSize;
531 serializeGiant(finst->xp, plainText, *plainTextLen);