DES などの他に、 SDK 4.3 だと AES が使える。 SDK 5.X だと AES, Blowfish が使える。
Base SDK を 5.X にして Deploy Target を 4.3 にすると、Blowfish を指定してコンパイルできるが 4.3 の環境では動かないという現象になるので注意。
典型的なコードは以下の通り。
1 2 void 3 X( int p ) 4 {//エラー判定処理 5 } 6 7 NSData* 8 DataEncryptedByAES25 6( NSData* p, NSData* pKey ) 9 { size_t wSize = ( ( p.length + kCCBlockSi zeAES128 - 1 ) / kCCBlockSi zeAES128 ) * kCCBlockSi zeAES128; 10 char v[ wSize ]; 11 X 12 ( CCCrypt 13 ( kCCEncrypt 14 , kCCAlgorit hmAES128 15 , kCCOptionP KCS7Paddin g | kCCOptionE CBMode 16 , pKey.bytes 17 , kCCKeySize AES256 18 , NULL 19 , p.bytes 20 , p.length 21 , v 22 , wSize 23 , &wSize 24 ) 25 ); 26 return [ NSData dataWithBy tes:v length:wSize ]; 27 } 28 29 30 NSData* 31 DataEncryp tedByBlowf ish( NSData* p, NSData* pKey ) 32 { size_t wSize = ( ( p.length + kCCBlockSi zeBlowfish - 1 ) / kCCBlockSi zeBlowfish ) * kCCBlockSi zeBlowfish ; 33 char v[ wSize ]; 34 X 35 ( CCCrypt 36 ( kCCEncrypt 37 , kCCAlgorit hmBlowfish 38 , kCCOptionP KCS7Paddin g | kCCOptionE CBMode 39 , pKey.bytes 40 , pKey.length 41 , NULL 42 , p.bytes 43 , p.length 44 , v 45 , wSize 46 , &wSize 47 ) 48 ); 49 return [ NSData dataWithBy tes:v length:wSize ]; 50 } 51
posted by
Saturn
on Mon 7 May 2012
at 13:13