EncryptTransformUtilities.cpp [plain text]
#include "EncryptTransformUtilities.h"
#include "SecEncryptTransform.h"
uint32 ConvertPaddingStringToEnum(CFStringRef paddingStr)
{
uint32 result = -1; if (NULL == paddingStr)
{
return result;
}
if (CFEqual(paddingStr, kSecPaddingNoneKey))
{
result = CSSM_PADDING_NONE;
}
else if (CFEqual(paddingStr, kSecPaddingPKCS1Key))
{
result = CSSM_PADDING_PKCS7; }
else if (CFEqual(paddingStr, kSecPaddingPKCS5Key))
{
result = CSSM_PADDING_PKCS5;
}
else if (CFEqual(paddingStr, kSecPaddingPKCS7Key))
{
result = CSSM_PADDING_PKCS7;
}
return result;
}
CFStringRef ConvertPaddingEnumToString(CSSM_PADDING paddingEnum)
{
CFStringRef result = NULL;
switch (paddingEnum)
{
case CSSM_PADDING_NONE:
result = kSecPaddingNoneKey;
break;
case CSSM_PADDING_PKCS5:
result = kSecPaddingPKCS5Key;
break;
case CSSM_PADDING_PKCS7:
result = kSecPaddingPKCS7Key;
break;
case CSSM_PADDING_PKCS1:
result = kSecPaddingPKCS1Key;
break;
default:
result = NULL;
break;
}
return result;
}
uint32 ConvertEncryptModeStringToEnum(CFStringRef modeStr, Boolean hasPadding)
{
uint32 result = -1;
if (NULL == modeStr)
{
return result;
}
if (CFEqual(modeStr, kSecModeNoneKey))
{
result = (hasPadding) ? CSSM_ALGMODE_ECBPad : CSSM_ALGMODE_ECB;
}
else if (CFEqual(modeStr, kSecModeECBKey))
{
result = (hasPadding) ? CSSM_ALGMODE_ECBPad : CSSM_ALGMODE_ECB;
}
else if (CFEqual(modeStr, kSecModeCBCKey))
{
result = (hasPadding) ? CSSM_ALGMODE_CBCPadIV8 : CSSM_ALGMODE_CBC;
}
else if (CFEqual(modeStr, kSecModeCFBKey))
{
result = (hasPadding) ? CSSM_ALGMODE_CFBPadIV8 : CSSM_ALGMODE_CFB;
}
else if (CFEqual(modeStr, kSecModeOFBKey))
{
result = (hasPadding) ? CSSM_ALGMODE_OFBPadIV8 : CSSM_ALGMODE_OFB;
}
return result;
}
CFStringRef ConvertEncryptModeEnumToString(CSSM_ENCRYPT_MODE paddingEnum)
{
CFStringRef result = NULL;
switch (paddingEnum)
{
case CSSM_ALGMODE_NONE:
default:
result = kSecModeNoneKey;
break;
case CSSM_ALGMODE_ECB:
case CSSM_ALGMODE_ECBPad:
case CSSM_ALGMODE_ECB64:
case CSSM_ALGMODE_ECB128:
case CSSM_ALGMODE_ECB96:
result = kSecModeECBKey;
break;
case CSSM_ALGMODE_CBC:
case CSSM_ALGMODE_CBC_IV8:
case CSSM_ALGMODE_CBCPadIV8:
case CSSM_ALGMODE_CBC64:
case CSSM_ALGMODE_CBC128:
result = kSecModeCBCKey;
break;
case CSSM_ALGMODE_CFB:
case CSSM_ALGMODE_CFB_IV8:
case CSSM_ALGMODE_CFBPadIV8:
case CSSM_ALGMODE_CFB32:
case CSSM_ALGMODE_CFB16:
case CSSM_ALGMODE_CFB8:
result = kSecModeCFBKey;
break;
case CSSM_ALGMODE_OFB:
case CSSM_ALGMODE_OFB_IV8:
case CSSM_ALGMODE_OFBPadIV8:
case CSSM_ALGMODE_OFB64:
result = kSecModeOFBKey;
break;
}
return result;
}