CCCrypt
DES などの他に、
SDK 4.3 だと AES が使える。
SDK 5.X だと AES, Blowfish が使える。
Base SDK を 5.X にして Deploy Target を 4.3 にすると、Blowfish を指定してコンパイルできるが 4.3 の環境では動かないという現象になるので注意。
典型的なコードは以下の通り。
ruby>>
void
X( int p )
{//エラー判定処理
}
NSData*
DataEncryptedByAES256( NSData* p, NSData* pKey )
{ size_t wSize = ( ( p.length + kCCBlockSizeAES128 - 1 ) / kCCBlockSizeAES128 ) * kCCBlockSizeAES128;
char v[ wSize ];
X
( CCCrypt
( kCCEncrypt
, kCCAlgorithmAES128
, kCCOptionPKCS7Padding | kCCOptionECBMode
, pKey.bytes
, kCCKeySizeAES256
, NULL
, p.bytes
, p.length
, v
, wSize
, &wSize
)
);
return [ NSData dataWithBytes:v length:wSize ];
}
NSData*
DataEncryptedByBlowfish( NSData* p, NSData* pKey )
{ size_t wSize = ( ( p.length + kCCBlockSizeBlowfish - 1 ) / kCCBlockSizeBlowfish ) * kCCBlockSizeBlowfish;
char v[ wSize ];
X
( CCCrypt
( kCCEncrypt
, kCCAlgorithmBlowfish
, kCCOptionPKCS7Padding | kCCOptionECBMode
, pKey.bytes
, pKey.length
, NULL
, p.bytes
, p.length
, v
, wSize
, &wSize
)
);
return [ NSData dataWithBytes:v length:wSize ];
}
<<--