X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5dd5f9ec28f304ca377c42fd7f711d6cf12b90e1..5c19dc3ae3bd8e40a9c028b0deddd50ff337692c:/Security/libsecurity_cryptkit/lib/feeCipherFile.c?ds=inline diff --git a/Security/libsecurity_cryptkit/lib/feeCipherFile.c b/Security/libsecurity_cryptkit/lib/feeCipherFile.c deleted file mode 100644 index 9c79156d..00000000 --- a/Security/libsecurity_cryptkit/lib/feeCipherFile.c +++ /dev/null @@ -1,280 +0,0 @@ -/* Copyright (c) 1998,2011,2014 Apple Inc. All Rights Reserved. - * - * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT - * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE - * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE, INC. AND THE - * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE, - * INC. ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL - * EXPOSE YOU TO LIABILITY. - *************************************************************************** - * - * feeCipherFile.c - general cipherfile support - * - * Revision History - * ---------------- - * 05 Feb 97 at Apple - * Added CFE_FEED and CFE_FEEDExp types. - * 24 Oct 96 at NeXT - * Created. - */ - -#include "feeCipherFile.h" -#include "falloc.h" -#include "feeFEEDExp.h" -#include "feeFEED.h" -#include "feeDebug.h" -#include "CipherFileFEED.h" -#include "CipherFileDES.h" - - -/* - * Create a cipherfile of specified cipherFileEncrType. - */ -feeReturn createCipherFile(feePubKey sendPrivKey, - feePubKey recvPubKey, - cipherFileEncrType encrType, - const unsigned char *plainText, - unsigned plainTextLen, - int genSig, // 1 ==> generate signature - int doEnc64, // 1 ==> perform enc64 - unsigned userData, // for caller's convenience - unsigned char **cipherFileData, // RETURNED - unsigned *cipherFileDataLen) // RETURNED -{ - feeReturn frtn = FR_Success; - feeCipherFile cipherFile = NULL; - unsigned char *cipherData = NULL; - unsigned cipherDataLen; - - /* - * Dispatch to encrType-specific code. - */ - switch(encrType) { - case CFE_RandDES: - frtn = createRandDES(sendPrivKey, - recvPubKey, - plainText, - plainTextLen, - genSig, - userData, - &cipherFile); - break; - case CFE_PublicDES: - frtn = createPubDES(sendPrivKey, - recvPubKey, - plainText, - plainTextLen, - genSig, - userData, - &cipherFile); - break; - case CFE_FEED: - frtn = createFEED(sendPrivKey, - recvPubKey, - plainText, - plainTextLen, - genSig, - userData, - &cipherFile); - break; - case CFE_FEEDExp: - frtn = createFEEDExp(sendPrivKey, - recvPubKey, - plainText, - plainTextLen, - genSig, - userData, - &cipherFile); - break; - default: - frtn = FR_Unimplemented; - break; - } - - if(frtn) { - goto out; - } - - /* - * Common logic for all encrTypes - */ - - /* - * Get the cipherfile's raw data - */ - frtn = feeCFileDataRepresentation(cipherFile, - (const unsigned char **)&cipherData, - &cipherDataLen); - if(frtn) { - goto out; - } - - /* - * Optionally encode in 64-char ASCII - */ - if(doEnc64) { - *cipherFileData = enc64(cipherData, - cipherDataLen, - cipherFileDataLen); - ffree(cipherData); - if(*cipherFileData == NULL) { - frtn = FR_Internal; - ffree(cipherData); - goto out; - } - } - else { - *cipherFileData = cipherData; - *cipherFileDataLen = cipherDataLen; - } -out: - /* free stuff */ - if(cipherFile) { - feeCFileFree(cipherFile); - } - return frtn; -} - -/* - * Parse a cipherfile. - * - * sendPubKey only needed for cipherFileEncrType CFE_RandDES if signature - * is present. If sendPubKey is present, it will be used for signature - * validation rather than the embedded sender's public key. - */ -feeReturn parseCipherFile(feePubKey recvPrivKey, - feePubKey sendPubKey, - const unsigned char *cipherFileData, - unsigned cipherFileDataLen, - int doDec64, // 1 ==> perform dec64 - cipherFileEncrType *encrType, // RETURNED - unsigned char **plainText, // RETURNED - unsigned *plainTextLen, // RETURNED - feeSigStatus *sigStatus, // RETURNED - unsigned *userData) // RETURNED -{ - feeReturn frtn; - unsigned char *cipherData = NULL; - unsigned cipherDataLen; - int freeCipherData = 0; - feeCipherFile cipherFile = NULL; - - *plainText = NULL; - *plainTextLen = 0; - - if(recvPrivKey == NULL) { // always required - frtn = FR_BadPubKey; - goto out; - } - - /* - * First, optional dec64() - */ - if(doDec64) { - cipherData = dec64(cipherFileData, - cipherFileDataLen, - &cipherDataLen); - if(cipherData == NULL) { - frtn = FR_BadEnc64; - goto out; - } - else { - freeCipherData = 1; - } - } - else { - cipherData = (unsigned char *)cipherFileData; - cipherDataLen = cipherFileDataLen; - } - - /* - * Cons up a feeCipherFile object. - */ - frtn = feeCFileNewFromDataRep(cipherData, - cipherDataLen, - &cipherFile); - if(frtn) { - goto out; - } - *encrType = feeCFileEncrType(cipherFile); - *userData = feeCFileUserData(cipherFile); - frtn = decryptCipherFile(cipherFile, - recvPrivKey, - sendPubKey, - plainText, - plainTextLen, - sigStatus); - -out: - /* free stuff */ - - if(cipherData && freeCipherData) { - ffree(cipherData); - } - if(cipherFile) { - feeCFileFree(cipherFile); - } - return frtn; -} - -/* - * Decrypt a feeCipherFile obtained via feeCFileNewFromDataRep(). - * recvPrivKey is required in all cases. If sendPubKey is present, - * sendPubKey - rather than the embedded sender's public key - will be - * used for signature validation. - */ -feeReturn decryptCipherFile(feeCipherFile cipherFile, - feePubKey recvPrivKey, // required - feePubKey sendPubKey, // optional, for signature - unsigned char **plainText, // malloc'd & RETURNED - unsigned *plainTextLen, // RETURNED - feeSigStatus *sigStatus) // RETURNED -{ - cipherFileEncrType encrType = feeCFileEncrType(cipherFile); - feeReturn frtn; - - *plainText = NULL; - *plainTextLen = 0; - - /* - * Dispatch to encrType-specific code. - */ - switch(encrType) { - case CFE_RandDES: - frtn = decryptRandDES(cipherFile, - recvPrivKey, - sendPubKey, - plainText, - plainTextLen, - sigStatus); - break; - case CFE_PublicDES: - frtn = decryptPubDES(cipherFile, - recvPrivKey, - sendPubKey, - plainText, - plainTextLen, - sigStatus); - break; - case CFE_FEED: - frtn = decryptFEED(cipherFile, - recvPrivKey, - sendPubKey, - plainText, - plainTextLen, - sigStatus); - break; - case CFE_FEEDExp: - frtn = decryptFEEDExp(cipherFile, - recvPrivKey, - sendPubKey, - plainText, - plainTextLen, - sigStatus); - break; - default: - frtn = FR_Unimplemented; - break; - } - return frtn; -}