• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/CommonCrypto-60049/lib/

Lines Matching defs:cryptor

277 static inline CCCryptorStatus ccEncryptPad(CCCryptor *cryptor, void *buf, size_t *moved) {
278 if(cryptor->padptr->encrypt_pad(cryptor->ctx[cryptor->op], cryptor->modeDesc, cryptor->symMode[cryptor->op], cryptor->buffptr, cryptor->bufferPos, buf, moved)) return kCCDecodeError;
282 static inline CCCryptorStatus ccDecryptPad(CCCryptor *cryptor, void *buf, size_t *moved) {
283 if(cryptor->padptr->decrypt_pad(cryptor->ctx[cryptor->op], cryptor->modeDesc, cryptor->symMode[cryptor->op], cryptor->buffptr, cryptor->bufferPos, buf, moved)) return kCCDecodeError;
287 static inline size_t ccGetReserve(CCCryptor *cryptor) {
288 return cryptor->padptr->padreserve(cryptor->op == kCCEncrypt, cryptor->modeDesc, cryptor->symMode[cryptor->op]);
291 static inline size_t ccGetPadOutputlen(CCCryptor *cryptor, size_t inputLength, bool final) {
292 size_t totalLen = cryptor->bufferPos + inputLength;
293 return cryptor->padptr->padlen(cryptor->op == kCCEncrypt, cryptor->modeDesc, cryptor->symMode[cryptor->op], totalLen, final);
308 static inline int ccAddBuff(CCCryptor *cryptor, const void *dataIn, size_t dataInLength) {
309 CC_XMEMCPY((char *) cryptor->buffptr + cryptor->bufferPos, dataIn, dataInLength);
310 cryptor->bufferPos += dataInLength;
328 CCCryptor *cryptor = ccCreateCompatCryptorFromData(data, dataLength, dataUsed);
329 if(!cryptor) return kCCBufferTooSmall;
330 CCCryptorStatus err = CCCryptorCreate(op, alg, options, key, keyLength, iv, &cryptor->compat);
331 if(err == kCCSuccess) *cryptorRef = cryptor;
396 CCCryptor *cryptor = ccCreateCompatCryptorFromData(data, dataLength, dataUsed);
397 if(!cryptor) return kCCBufferTooSmall;
398 CCCryptorStatus err = CCCryptorCreateWithMode(op, mode, alg, padding, iv, key, keyLength, tweak, tweakLength, numRounds, options, &cryptor->compat);
399 if(err == kCCSuccess) *cryptorRef = cryptor;
419 CCCryptor *cryptor = NULL;
457 if((cryptor = (CCCryptor *)CC_XMALLOC(DEFAULT_CRYPTOR_MALLOC)) == NULL) {
462 cryptor->compat = NULL;
464 if((retval = ccSetupCryptor(cryptor, alg, mode, op, padding)) != kCCSuccess) {
468 if((retval = ccInitCryptor(cryptor, key, keyLength, tweak, iv)) != kCCSuccess) {
472 *cryptorRef = cryptor;
474 cryptor->active = ACTIVE;
475 CCRandomCopyBytes(kCCRandomDefault, &cryptor->cryptorID, sizeof(cryptor->cryptorID));
482 if(cryptor) {
483 CC_XZEROMEM(cryptor, DEFAULT_CRYPTOR_MALLOC);
484 CC_XFREE(cryptor, DEFAULT_CRYPTOR_MALLOC);
487 // printf("Blocksize = %d mode = %d pad = %d\n", ccGetBlockSize(cryptor), cryptor->mode, padding);
503 CCCryptor *cryptor = getRealCryptor(cryptorRef, 0);
506 if(cryptor) {
507 ccClearCryptor(cryptor);
508 CC_XMEMSET(cryptor, 0, CCCRYPTOR_SIZE);
509 CC_XFREE(cryptor, DEFAULT_CRYPTOR_MALLOC);
517 static CCCryptorStatus ccSimpleUpdate(CCCryptor *cryptor, const void *dataIn, size_t dataInLength, void **dataOut, size_t *dataOutAvailable, size_t *dataOutMoved)
520 if(cryptor->op == kCCEncrypt) {
521 if((retval = ccDoEnCrypt(cryptor, dataIn, dataInLength, *dataOut)) != kCCSuccess) return retval;
523 if((retval = ccDoDeCrypt(cryptor, dataIn, dataInLength, *dataOut)) != kCCSuccess) return retval;
527 cryptor->bytesProcessed += dataInLength;
533 static CCCryptorStatus ccBlockUpdate(CCCryptor *cryptor, const void *dataIn, size_t dataInLength, void *dataOut, size_t *dataOutAvailable, size_t *dataOutMoved)
536 size_t dataCount = cryptor->bufferPos + dataInLength;
537 size_t reserve = ccGetReserve(cryptor);
538 size_t blocksize = ccGetCipherBlockSize(cryptor);
544 if(reserve == 0 && cryptor->bufferPos == 0 && (dataInLength % blocksize) == 0) { // No Padding, not buffering, even blocks
546 return ccSimpleUpdate(cryptor, dataIn, dataInLength, &dataOut, dataOutAvailable, dataOutMoved);
570 if(cryptor->bufferPos == 0) {
573 } else if(cryptor->bufferPos < dataCountToProcess) {
575 movecnt = blocksize - (cryptor->bufferPos % blocksize);
576 ccAddBuff(cryptor, dataIn, movecnt);
579 // printf("CCCryptorUpdate checkpoint 1.1 bufpos = %d\n", (int) cryptor->bufferPos);
580 if((retval = ccSimpleUpdate(cryptor, cryptor->buffptr, cryptor->bufferPos, &dataOut, dataOutAvailable, dataOutMoved)) != kCCSuccess) {
585 dataCountToProcess -= cryptor->bufferPos;
586 cryptor->bufferPos = 0;
587 } else if(cryptor->bufferPos == dataCountToProcess) {
589 if((retval = ccSimpleUpdate(cryptor, cryptor->buffptr, cryptor->bufferPos, &dataOut, dataOutAvailable, dataOutMoved)) != kCCSuccess) {
592 dataCountToProcess -= cryptor->bufferPos;
593 cryptor->bufferPos = 0;
594 } else /* (cryptor->bufferPos > dataCountToProcess) */ {
600 if((retval = ccSimpleUpdate(cryptor, cryptor->buffptr, dataCountToProcess, &dataOut, dataOutAvailable, dataOutMoved)) != kCCSuccess) {
603 cryptor->bufferPos = (uint32_t) (reserve - dataCountToProcess);
604 memmove(cryptor->buffptr, ((uint8_t *) cryptor->buffptr)+ dataCountToProcess, cryptor->bufferPos);
615 if((retval = ccSimpleUpdate(cryptor, dataIn, dataCountToProcess, &dataOut, dataOutAvailable, dataOutMoved)) != kCCSuccess) return retval;
622 movecnt = dataCountToHold - cryptor->bufferPos;
628 ccAddBuff(cryptor, dataIn, movecnt);
640 static inline size_t ccGetOutputLength(CCCryptor *cryptor, size_t inputLength, bool final) {
641 if(ccIsStreaming(cryptor)) return inputLength;
642 return ccGetPadOutputlen(cryptor, inputLength, final);
651 CCCryptor *cryptor = getRealCryptor(cryptorRef, 1);
652 if(cryptor == NULL) return kCCParamError;
653 return ccGetOutputLength(cryptor, inputLength, final);
666 CCCryptor *cryptor = getRealCryptor(cryptorRef, 1);
667 if(!cryptor) return kCCParamError;
671 size_t needed = ccGetOutputLength(cryptor, dataInLength, false);
678 if(ccIsStreaming(cryptor))
679 retval = ccSimpleUpdate(cryptor, dataIn, dataInLength, &dataOut, &dataOutAvailable, dataOutMoved);
681 retval = ccBlockUpdate(cryptor, dataIn, dataInLength, dataOut, &dataOutAvailable, dataOutMoved);
695 CCCryptor *cryptor = getRealCryptor(cryptorRef, 0);
697 if(cryptor == NULL) return kCCSuccess;
701 int encrypting = (cryptor->op == kCCEncrypt);
702 uint32_t blocksize = ccGetCipherBlockSize(cryptor);
709 if(ccIsStreaming(cryptor)) return kCCSuccess;
712 retval = ccEncryptPad(cryptor, tmpbuf, &moved);
721 cryptor->bufferPos = 0;
723 if(ccGetReserve(cryptor) != 0) {
724 retval = ccDecryptPad(cryptor, tmpbuf, &moved);
733 cryptor->bytesProcessed += moved;
734 cryptor->bufferPos = 0;
737 cryptor->bufferPos = 0;
739 cryptor->active = RELEASED;
749 CCCryptor *cryptor = getRealCryptor(cryptorRef, 1);
750 if(!cryptor) return kCCParamError;
758 cryptor->bytesProcessed = cryptor->bufferPos = 0;
762 value. There is now always space for an IV in the cryptor.
766 retval = ccSetIV(cryptor, iv, ccGetCipherBlockSize(cryptor));
768 uint8_t ivzero[ccGetCipherBlockSize(cryptor)];
769 CC_XZEROMEM(ivzero, ccGetCipherBlockSize(cryptor));
770 retval = ccSetIV(cryptor, ivzero, ccGetCipherBlockSize(cryptor));
779 CCCryptor *cryptor = getRealCryptor(cryptorRef, 1);
781 if(!cryptor) return kCCParamError;
783 if(ccIsStreaming(cryptor)) return kCCParamError;
784 size_t blocksize = ccGetCipherBlockSize(cryptor);
785 return ccGetIV(cryptor, iv, &blocksize);
808 CCCryptorRef cryptor = NULL;
812 if(kCCSuccess != (retval = CCCryptorCreate(op, alg, options, key, keyLength, iv, &cryptor))) return retval;
813 size_t needed = CCCryptorGetOutputLength(cryptor, dataInLength, true);
820 if(kCCSuccess != (retval = CCCryptorUpdate(cryptor, dataIn, dataInLength, dataOut, dataOutAvailable, &updateLen))) {
824 retval = CCCryptorFinal(cryptor, dataOut, dataOutAvailable, &finalLen);
827 CCCryptorRelease(cryptor);
839 CCCryptor *cryptor = getRealCryptor(cryptorRef, 1);
840 if(!cryptor) return kCCParamError;
841 if(ccIsStreaming(cryptor)) return kCCParamError;
842 if(!iv) return ccDoEnCrypt(cryptor, dataIn, dataInLength, dataOut);
843 return ccDoEnCryptTweaked(cryptor, dataIn, dataInLength, dataOut, iv);
855 CCCryptor *cryptor = getRealCryptor(cryptorRef, 1);
856 if(!cryptor) return kCCParamError;
857 if(ccIsStreaming(cryptor)) return kCCParamError;
858 if(!iv) return ccDoDeCrypt(cryptor, dataIn, dataInLength, dataOut);
859 return ccDoDeCryptTweaked(cryptor, dataIn, dataInLength, dataOut, iv);